Skip to content

Instantly share code, notes, and snippets.

Randy Burden randyburden

Block or report user

Report or block randyburden

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@randyburden
randyburden / ConnectionStringHelper.cs
Created Mar 21, 2018
C# Connection String helper that can inject a custom application name pattern into a connection string. Custom application format is: <AssemblyName>, Version=X.X.X.X, BuildDate=MM/DD/YYYY 12:00 PM
View ConnectionStringHelper.cs
using System;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
namespace Utilities
{
/// <summary>
@randyburden
randyburden / RegisterWindowsScheduledTasks.ps1
Created Nov 8, 2017
Registers Windows Scheduled Tasks. Taken from a working example I created that ran as a post-deployment step. It also cleans up old deployment directories.
View RegisterWindowsScheduledTasks.ps1
##########################################
### Registers Windows Scheduled Tasks ###
##########################################
<###############################################################################################################
Notes:
- This example was from a working solution I created where this script was run as a post-deploy step for a
console application that served as the entry point for multiple scheduled tasks that could be executed
by supplying the task name.
@randyburden
randyburden / OracleOptionalDateRangeQuery.sql
Created Nov 6, 2017
Oracle PL/SQL example of a query with an optional date range
View OracleOptionalDateRangeQuery.sql
/* Oracle PL/SQL example of a query with an optional date range */
SET SERVEROUTPUT ON;
DECLARE
StartDate DATE := NULL;
EndDate DATE := NULL;
--StartDate DATE := TO_DATE ('01/01/2017', 'mm/dd/yyyy');
--EndDate DATE := TO_DATE ('02/01/2017', 'mm/dd/yyyy');
RecordCount NUMBER;
BEGIN
SELECT COUNT(*)
@randyburden
randyburden / ValidateOrderByClause.cs
Created Oct 19, 2017
C# method to validate a string-based OrderBy clause to be used in a dynamic LINQ statement
View ValidateOrderByClause.cs
internal void ValidateOrderByClause(string orderBy, string[] supportedOrderByFields)
{
if (!string.IsNullOrWhiteSpace(orderBy))
{
var orderBys = orderBy.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
foreach (var orderByClause in orderBys)
{
var orderByClauseParts = orderByClause.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
var orderByClauseField = orderByClauseParts[0];
@randyburden
randyburden / ConfigurationManagerOptionsProvider.cs
Last active Sep 29, 2017
C# strongly named application settings/options implementation. Can be used with Dependency Injection or with static helper method AppSettingsOptionsProvider<T>.Bind();.
View ConfigurationManagerOptionsProvider.cs
using System;
using System.Configuration;
using System.Reflection;
namespace Utilities.Options
{
/// <summary>
/// Uses <see cref="ConfigurationManager"/> to populate options.
/// Finds setting names/keys by <see cref="OptionNameAttribute"/>, {PropertyName}, or {ClassName}.{PropertyName}.
/// </summary>
@randyburden
randyburden / ConsoleColorExtensions.cs
Created Sep 20, 2017
C# extension/helper class for writing colored output to the console. This is sort-of a workaround of not being able to extend the static Console class.
View ConsoleColorExtensions.cs
using System;
namespace Utilities.Extensions
{
public static class ConsoleColorExtensions
{
/// <summary>
/// Writes the specified string value, followed by the current line terminator, to the standard output stream.
/// </summary>
/// <example>
@randyburden
randyburden / EntityFrameworkMigrationTests.cs
Created Sep 11, 2017
C# test class with 2 Entity Framework-related tests intended to verify that there are no pending migrations and no migrations that need to be created.
View EntityFrameworkMigrationTests.cs
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Design;
using System.Diagnostics;
using System.Linq;
namespace YabbaDabbaDoo
{
[TestClass]
public class EntityFrameworkMigrationTests
@randyburden
randyburden / TFS_Compare_Filter_Criteria.txt
Created Sep 6, 2017
Filter criteria for the Compare feature in Visual Studio's Source Control Explorer for TFS TF Version Control
View TFS_Compare_Filter_Criteria.txt
!*.csproj.user;!UpgradeLog.htm;!*.vspscc;!packages\;!bin\;!bld\;!ClientBin\;!Debug\;!obj\;!AppPackages\;!Release\;!TestResults\;!*.*~!*.appx!*.appxrecipe;!*.cache!*.cer!*.dbmdl!*.dll!*.docstates!*.docstates.suo;!*.err!*.exe!*.ilk!*.ipch!*.lastbuildstate!*.lce!*.ldf!*.lib!*.log!*.mdf!*.msscci!*.ncb!*.obj!*.opensdf!*.pch!*.pdb!*.pri!*.res!*.resources!*.sdf!*.suo!*.swp!*.temp!*.tfOrig*!*.tlog!*.tmp!*.trx!*.user!*.unsuccessfulbuild!*.v11.suo!*.vcxproj.user!*.vsix!*.vsmdi!*.vspscc!*.vssettings!*.vssscc!*.wrn!*.xap;!.metadata\
@randyburden
randyburden / SqlServerAuditColumns.sql
Created Aug 17, 2017
Standard set of SQL Server audit columns with default constraints
View SqlServerAuditColumns.sql
CREATE TABLE TableName
(
TableNameId INT NOT NULL IDENTITY(1,1),
/* Other columns */
CreatedDate DATETIME2 NOT NULL CONSTRAINT [DF_TableName_CreatedDate] DEFAULT (GETDATE()),
CreatedBy VARCHAR(100) NOT NULL CONSTRAINT [DF_TableName_CreatedBy] DEFAULT (SUSER_SNAME()),
CreatedByHostName VARCHAR(100) NOT NULL CONSTRAINT [DF_TableName_CreatedByHostName] DEFAULT (HOST_NAME()),
ModifiedDate DATETIME2 NOT NULL CONSTRAINT [DF_TableName_ModifiedDate] DEFAULT (GETDATE()),
ModifiedBy VARCHAR(100) NOT NULL CONSTRAINT [DF_TableName_ModifiedBy] DEFAULT (SUSER_SNAME()),
ModifiedByHostName VARCHAR(100) NOT NULL CONSTRAINT [DF_TableName_ModifiedByHostName] DEFAULT (HOST_NAME())
@randyburden
randyburden / InsertWithOracleArrayBinding.cs
Last active Aug 15, 2017
Insert list into a database table using Oracle array binding (a type of bulk insert)
View InsertWithOracleArrayBinding.cs
/// <summary>
/// Insert list into a database table using Oracle array binding (a type of bulk insert).
/// </summary>
/// <typeparam name="T">Type of data in list.</typeparam>
/// <param name="listOfData">List to insert.</param>
/// <param name="tableName">Table name.</param>
/// <returns>Rows affected.</returns>
public int Insert<T>(List<T> listOfData, string tableName) where T : class, new()
{
try
You can’t perform that action at this time.