Skip to content

Instantly share code, notes, and snippets.

View DamianEdwards's full-sized avatar
🏠
Working from home

Damian Edwards DamianEdwards

🏠
Working from home
View GitHub Profile
@DamianEdwards
DamianEdwards / Program.cs
Last active August 24, 2023 17:31
Auto-sized number parsing with System.Text.Json
using System.Numerics;
using System.Text;
using System.Text.Json;
using System.Text.Unicode;
var json = """
{
"anInt": 123,
"negativeInt": -123,
"biggerInt": 1234567890,
@DamianEdwards
DamianEdwards / Microsoft.PowerShell_profile.ps1
Last active August 24, 2023 17:27
PowerShell Profile & oh-my-posh theme
function Get-ProgramFiles32() {
if (${env:ProgramFiles(x86)} -ne $null) {
return ${env:ProgramFiles(x86)}
}
return $env:ProgramFiles
}
function Get-VsInstallLocation() {
$programFiles = Get-ProgramFiles32
$vswhere = "$programFiles\Microsoft Visual Studio\Installer\vswhere.exe"
@DamianEdwards
DamianEdwards / craver-vs.omp.json
Last active July 13, 2023 00:23
My oh-my-posh profile
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "left",
"segments": [
{
"foreground": "#f1184c",
"properties": {
"template": " \uf0e7 "
@DamianEdwards
DamianEdwards / json-in-markdown.md
Last active June 2, 2023 17:20
JSON comments on GH

What happens if you tell GitHub it's JSON

{
  "hello": "world" // I want my comments!
}

Just tell GitHub it's JavaScript

{
@DamianEdwards
DamianEdwards / Output.txt
Created January 4, 2023 01:22
PathGenerator utility for ASP.NET Core that generates URL paths (e.g. for links) using patterns that follow usual route syntax and provided values.
** Value Objects **
/user/123/posts?page=2&f=&q=test%20with%20spaces
/user/123/posts/?page=2&f=&q=test%20with%20spaces
user/123/posts?page=2
user/123/entity%20with%20spaces?page=2
/user/123?page=2
/user/123/posts?page=2
** Ordinal **
/user/123/posts?page=2
@DamianEdwards
DamianEdwards / Program.cs
Created August 6, 2022 00:32
Some SwashBuckling with .NET 7 rc.1
using System.Buffers.Text;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
@DamianEdwards
DamianEdwards / EndpointRoutingBuilders.md
Last active November 22, 2022 19:24
ASP.NET Core middleware & endpoint routing type & extension hierarchy
  • IApplicationBuilder Used to configure the application middleware pipeline
    • Map() -> IApplicationBuilder
    • MapWhen() -> IApplicationBuilder
    • Run() -> void
    • Use() -> IApplicationBuilder
    • UseMiddleware() -> IApplicationBuilder
    • UsePathBase() -> IApplicationBuilder
    • UseRouting() -> IApplicationBuilder
    • UseRouter(Action<IRouteBuilder> action) -> IApplicationBuilder
    • UseEndpointPoints() -> IApplicationBuilder
@DamianEdwards
DamianEdwards / Index.cshtml
Last active November 19, 2022 00:10
Example ASP.NET Core Razor Page in C# that calls a quotes REST API with fallback to offline quotes in case of failure
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
<div class="card">
<div class="card-body">
@await Model.GetInspirationalQuote()
</div>
<div class="card-footer">
@DamianEdwards
DamianEdwards / Program.cs
Created November 5, 2022 04:02
GZip a string and base64 encode the result in C# (.NET 7)
using System.Buffers;
using System.Buffers.Text;
using System.Diagnostics;
using System.IO.Compression;
using System.Security.Cryptography;
using System.Text;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
BenchmarkRunner.Run<Benchmarks>();