Skip to content

Instantly share code, notes, and snippets.

View pwelter34's full-sized avatar

Paul Welter pwelter34

View GitHub Profile
@pwelter34
pwelter34 / GenerateULID.sql
Created July 23, 2025 15:29
SQL Server ULID Implementation
CREATE FUNCTION [dbo].[GenerateULID]
(
@random AS BINARY(10),
@timestamp AS DATETIME2 = NULL
)
RETURNS VARCHAR(26)
AS
BEGIN
-- Crockford's base32 alphabet
DECLARE @alphabet VARCHAR(32) = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'
@pwelter34
pwelter34 / backup.sql
Created July 23, 2025 15:21
SQL Server Backup All Locale Databases
DECLARE @name NVARCHAR(256)
DECLARE @path NVARCHAR(512)
DECLARE @fileName NVARCHAR(512)
DECLARE @fileDate NVARCHAR(40)
-- specify database backup directory
SET @path = 'D:\Backup\Database\'
-- specify filename format
SELECT @fileDate = CONVERT(NVARCHAR(20),GETDATE(),112)
@pwelter34
pwelter34 / gist:b41d590d600ea952655ddc2067367063
Last active January 15, 2025 16:16
Regex Replacement for FluentAssertions
([\w._]+)\.Should\(\)\.NotBeNull\(\)
Assert.NotNull($1)
([\w._]+)\.Should\(\)\.NotBeEmpty\(\)
Assert.NotEmpty($1)
([\w.!_]+)\.Should\(\)\.Be\(([\w.!_" ]+)\)
Assert.Equal($2, $1)
([\w._]+)\.Should\(\)\.BeTrue\(\)
@pwelter34
pwelter34 / BenchmarkSwitch.cs
Last active May 22, 2024 18:27
TypeSwitch - Switch on runtime type
[MemoryDiagnoser]
public class BenchmarkSwitch
{
[Params(typeof(int), typeof(DateTimeOffset), typeof(TimeSpan))]
public Type TargetType { get; set; } = typeof(int);
[Benchmark(Baseline = true)]
public int BaseLineBenchmark()
{
if (TargetType == typeof(string))
@pwelter34
pwelter34 / ConcurrencyToken.cs
Last active November 28, 2022 14:50
ConcurrencyToken
public readonly struct ConcurrencyToken : IEquatable<ConcurrencyToken>
{
public static readonly ConcurrencyToken None = new(Array.Empty<byte>());
public byte[] Value { get; }
public ConcurrencyToken(byte[] value)
{
Value = value ?? Array.Empty<byte>();
}
@pwelter34
pwelter34 / Program.cs
Last active December 14, 2021 03:27
Serilog with azure
public static class Program
{
public static int Main(string[] args)
{
// azure home directory
var homeDirectory = Environment.GetEnvironmentVariable("HOME") ?? ".";
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
@pwelter34
pwelter34 / HostDebuggerMiddleware.cs
Last active December 1, 2021 16:10
Middleware to debug configuration and routes
using System.Text;
using System.Text.Json;
using Microsoft.AspNetCore.Mvc.Infrastructure;
namespace Demo.Middleware;
public class HostDebuggerOptions
{
public string RouteDebuggerPath { get; set; } = "/route-debugger";
@pwelter34
pwelter34 / setup.sh
Created November 10, 2021 06:49
Test Internet Speed using Speedtest-cli from Alpine OS Docker Image
apk add --no-cache python3 py3-pip
wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod +x speedtest-cli
python3 speedtest-cli
@pwelter34
pwelter34 / azure-pipelines.yml
Created October 29, 2021 17:16
Standard web project with database
trigger:
- main
- develop
- releases/*
variables:
major: 1
minor: 0
name: $(major).$(minor).$(Rev:r)
@pwelter34
pwelter34 / AssemblyMetadata.cs
Last active August 9, 2023 19:06
Assembly Metadata
public static class AssemblyMetadata
{
private static readonly Lazy<string> _fileVersion = new(() =>
{
var assembly = typeof(AssemblyMetadata).Assembly;
var attribute = assembly.GetCustomAttribute<AssemblyFileVersionAttribute>();
return attribute?.Version;
});
private static readonly Lazy<string> _assemblyVersion = new(() =>