Skip to content

Instantly share code, notes, and snippets.

View JamesRandall's full-sized avatar

James Randall JamesRandall

View GitHub Profile
@JamesRandall
JamesRandall / HttpEventListener.cs
Last active August 16, 2023 10:32
Http Tracing in .net
using System;
using System.Collections.Concurrent;
using System.Diagnostics;
using System.Diagnostics.Tracing;
using System.Globalization;
namespace HttpTracing
{
public class HttpEventListener : EventListener
{
@JamesRandall
JamesRandall / RedirectNewtonsoftJson.ps1
Last active May 2, 2023 13:39
Powershell binding redirection
# Load your target version of the assembly
$newtonsoft = [System.Reflection.Assembly]::LoadFrom("$PSScriptRoot\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll")
$onAssemblyResolveEventHandler = [System.ResolveEventHandler] {
param($sender, $e)
# You can make this condition more or less version specific as suits your requirements
if ($e.Name.StartsWith("Newtonsoft.Json")) {
return $newtonsoft
}
foreach($assembly in [System.AppDomain]::CurrentDomain.GetAssemblies()) {
if ($assembly.FullName -eq $e.Name) {
@JamesRandall
JamesRandall / RedBlackTree.cs
Last active December 3, 2022 19:45
Red-Black Tree Implementation in C#
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
namespace OpinionatedCode.Collections
{
public sealed class RedBlackTree<TKey, TValue>
{
private readonly RedBlackTreeNode<TKey, TValue> _leaf = RedBlackTreeNode<TKey, TValue>.CreateLeaf();
@JamesRandall
JamesRandall / BlobStorageMultipartStreamProvider.cs
Last active March 19, 2020 23:12
Azure Blob Container Web API Image Upload
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AzureFromTheTrenches.Commanding;
using AzureFromTheTrenches.Commanding.Abstractions;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
@JamesRandall
JamesRandall / FunctionAppConfiguration.cs
Created August 6, 2018 16:45
Environment variable example
public class FunctionAppConfiguration : IFunctionAppConfiguration
{
public void Build(IFunctionHostBuilder builder)
{
builder
.Setup((serviceCollection, commandRegistry) =>
{
serviceCollection
.AddCosmosRepository(Environment.GetEnvironmentVariable("cosmosConnectionString", EnvironmentVariableTarget.Process));
// rest of registration
@JamesRandall
JamesRandall / BearerTokenValidator.cs
Created June 16, 2018 07:49
Sample ITokenValidator implementation for FunctionMonkey
public class BearerTokenValidator : ITokenValidator
{
private static readonly IConfigurationManager<OpenIdConnectConfiguration> ConfigurationManager;
static BearerTokenValidator()
{
string domain = Environment.GetEnvironmentVariable("domain");
string wellKnownEndpoint = $"https://{domain}/.well-known/openid-configuration";
var documentRetriever = new HttpDocumentRetriever { RequireHttps = wellKnownEndpoint.StartsWith("https://") };
@JamesRandall
JamesRandall / getUmbracoPropertyContent.sql
Created March 18, 2018 11:23
Gets the values for a property from an Umbraco database
select cpd.* from cmsPropertyData cpd
inner join cmsPropertyType cpt
on cpt.id = cpd.propertytypeid
and cpt.Alias='%propname%'
@JamesRandall
JamesRandall / gitChangeStatsByDay.ps1
Last active March 13, 2018 19:04
Script that runs through the git commit log and gets the number of additions and deletions made by date. Run the script in the folder of a git repository. See sampleoutput.csv for, errr, sample output
# Not the best written script in the world but it does a job.
Param(
[string]$path="stats.csv"
)
$commitHashes = git log --pretty=format:"%h"
$commitDates = git log --pretty=format:"%ad" --date=short
$deletions = @()
$additions = @()
$changesOverTime = @()
@JamesRandall
JamesRandall / gist:87c31114ebde542f82cbb9c2fe2ae7c6
Created February 14, 2018 13:36
Reworked code as part of fix
/*
Nuget packages included:
- AzureFromTheTrenches.Commanding 6.1.0
- AzureFromTheTrenches.Commanding.MicrosoftDependencyInjection 6.1.0
- Microsoft.Extensions.DependencyInjection 2.0.0
*/
using System;
using System.Threading.Tasks;
using AzureFromTheTrenches.Commanding;