Skip to content

Instantly share code, notes, and snippets.

View JerryNixon's full-sized avatar
🤔
Trying to make a living.

Jerry Nixon JerryNixon

🤔
Trying to make a living.
View GitHub Profile
@JerryNixon
JerryNixon / ReturningJson.sql
Last active April 10, 2024 19:57
Sending and returning JSON to accommodate complex types.
BEGIN TRANSACTION
GO
CREATE PROCEDURE FetchObjectsWithMetadata
@SortBy NVARCHAR(50),
@PageSize INT = 10,
@PageNumber INT,
@NameFilter NVARCHAR(256)
AS
BEGIN
@JerryNixon
JerryNixon / foreign_key.sql
Created February 29, 2024 17:01
Demonstrating a FK does not require a PK in SQL
begin transaction;
create table Location
(
Id int primary key,
City varchar(255),
[State] char(2),
Zip char(5) unique,
);
@JerryNixon
JerryNixon / UnitTest1.cs
Created February 2, 2024 01:06
Database Unit Test
using Microsoft.Data.SqlClient;
namespace database_test_runner
{
public class SQL : IDisposable
{
private readonly SqlConnection _connection;
public SQL()
{
@JerryNixon
JerryNixon / ApiApp_Program.cs
Last active January 18, 2024 22:13
Call an ASP.NET Minimal API from a Blazor WebAssembly App
// Change this to your project namespace
using Sample.Shared;
var CorsPolicyName = "MyCorsApiPolicy";
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCors(options =>
{
options.AddPolicy(name: CorsPolicyName, policy =>
{
@JerryNixon
JerryNixon / XunitTestWithData.cs
Last active October 18, 2023 20:06
Using complex data types as InlineData for Xunit tests.
using System.Collections.Generic;
using System.Linq;
using Xunit;
namespace PlaygroundXunit
{
public class UnitTest1
{
[Theory]
@JerryNixon
JerryNixon / Snake.cs
Last active September 8, 2023 16:01
The simple Snake game in C# for the Windows Console
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Threading;
namespace Snake
{
public enum Direction { Stop, Up, Down, Left, Right }
@JerryNixon
JerryNixon / ConnectionString.sql
Created July 20, 2023 15:33
Build a connection string
DROP FUNCTION IF EXISTS ConnectionString;
GO
CREATE FUNCTION ConnectionString(@includeProperties bit = 1)
RETURNS nvarchar(1000)
AS
BEGIN
-- Retrieve server name
DECLARE @hostName nvarchar(128);
SET @hostName = CAST(host_name() AS nvarchar(128));
@JerryNixon
JerryNixon / Benchmark.cs
Created July 10, 2023 21:35
Testing parameter types: IEnumerable<string> versus List<string>
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Engines;
using BenchmarkDotNet.Running;
_ = BenchmarkRunner.Run<TestParamType>();
[MemoryDiagnoser]
public class TestParamType
{
private List<string> list = new();
@JerryNixon
JerryNixon / ProcedureInfo.sql
Last active May 19, 2023 18:12
Get Parameters and Columns of Stored Procedure in SQL Server
;WITH types AS
(
SELECT system_type_id,
CASE
WHEN system_type_id IN (34, 35, 99, 173, 165, 167, 175, 231, 239) THEN 'string'
WHEN system_type_id IN (36, 189) THEN 'Guid'
WHEN system_type_id IN (48) THEN 'byte'
WHEN system_type_id IN (52) THEN 'short'
WHEN system_type_id IN (56) THEN 'int'
WHEN system_type_id IN (58, 61) THEN 'DateTime'
@JerryNixon
JerryNixon / SqlUtilities.GetDotnetType.cs
Last active April 24, 2023 17:22
Convert SQL Type to .NET Type
using Microsoft.SqlServer.TransactSql.ScriptDom;
public static class SqlUtilities
{
public static string GetDotnetType(this SqlDataTypeOption sqlDataType, bool isNullable = false)
{
if (IsUnsupportedType())
{
return string.Empty;
}