Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
I may be slow to respond as I'm super busy with bill paying client work!

James Randall JamesRandall

💭
I may be slow to respond as I'm super busy with bill paying client work!
View GitHub Profile
View AspNetCoreFmSample.cs
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;
View FunctionAppConfiguration.cs
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 Jun 16, 2018
Sample ITokenValidator implementation for FunctionMonkey
View BearerTokenValidator.cs
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 Mar 18, 2018
Gets the values for a property from an Umbraco database
View getUmbracoPropertyContent.sql
select cpd.* from cmsPropertyData cpd
inner join cmsPropertyType cpt
on cpt.id = cpd.propertytypeid
and cpt.Alias='%propname%'
@JamesRandall
JamesRandall / gitChangeStatsByDay.ps1
Last active Mar 13, 2018
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
View gitChangeStatsByDay.ps1
# 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 / RedBlackTree.cs
Last active May 15, 2021
Red-Black Tree Implementation in C#
View RedBlackTree.cs
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();
View gist:87c31114ebde542f82cbb9c2fe2ae7c6
/*
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;
@JamesRandall
JamesRandall / MapAppServiceDomain.cs
Last active Mar 25, 2017
Demonstrates how to map a domain name to an Azure website programmatically
View MapAppServiceDomain.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Newtonsoft.Json.Linq;
static class DomainMapper
@JamesRandall
JamesRandall / routeProfileRenderer.js
Last active Feb 20, 2017
3d GPS Route Profile Rendering
View routeProfileRenderer.js
// When given a set of GPS points and a container DOM element the code below will render a 3d profile of your GPS route.
// It requires three.js and that libraries associated Orbit Controls to run.
// The gpsPoints parameter should be an array with the following structure:
// [{latitude:0.323234,longitude:56.23244,altitude:1.8},...]
// To use in most browers compile with Babel as it uses a smattering of ES2015
export default function attachRenderer(container, gpsPoints) {
const THREE = window.THREE
// haversine formula calcuates the distance in km between two points of lon,lat
function haversineDistanceKm(lon1,lat1,lon2,lat2) {
function toRad(deg) {
@JamesRandall
JamesRandall / RedirectRootToSwagger.cs
Created Aug 13, 2016
Redirect the root path of an Owin hosted application to the swagger end point
View RedirectRootToSwagger.cs
using System.Net;
using Owin;
namespace MyApplication.Api.Extensions
{
// ReSharper disable once InconsistentNaming
public static class IAppBuilderExtensions
{
public static IAppBuilder RedirectRootToSwagger(this IAppBuilder app)
{