Skip to content

Instantly share code, notes, and snippets.

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

Ian Wold IanWold

🏠
Working from home
View GitHub Profile
public class DatabaseQueryResult<T>
{
private enum ResultType
{
Found,
Empty,
ClientError,
ServerError
}
public class Encryption(IJSRuntime jsRuntime)
{
public async Task<string> GetEncryptionKeyAsync() =>
await jsRuntime.InvokeAsync<string>("getEncryptionKey") ?? string.Empty;
public async Task<string> EncryptAsync(string value) =>
await jsRuntime.InvokeAsync<string>("encrypt", value) ?? string.Empty;
public async Task<string> DecryptAsync(string value) =>
await jsRuntime.InvokeAsync<string>("decrypt", value) ?? string.Empty;
public static class DatabaseMigrator
{
static NpgsqlCommand GetCommand(string query, NpgsqlConnection connection, NpgsqlTransaction? transaction)
{
var command = connection.CreateCommand();
command.Connection = connection;
command.CommandText = query;
if (transaction is not null)
public class JSONValue {}
public class JSONObject : JSONValue
{
public Dictionary<string, JSONValue> Pairs { get; set; }
public JSONObject(IEnumerable<KeyValuePair<string, JSONValue>> pairs)
{
Pairs = new Dictionary<string, JSONValue>();
@IanWold
IanWold / SwitchExtensions.cs
Created January 24, 2020 16:05
I get ticked about not having inline switch in c#
public static class SwitchExtensions
{
public static TReturn Switch<TInput, TReturn>(this TInput input, params (Predicate<TInput> check, Func<TInput, TReturn> value)[] cases) =>
Switch(input, c => default, cases);
public static TReturn Switch<TInput, TReturn>(this TInput input, Func<TInput, TReturn> defaultCase, params (Predicate<TInput> check, Func<TInput, TReturn> value)[] cases) =>
cases
.Concat(new (Predicate<TInput> check, Func<TInput, TReturn> value)[] { (c => true, defaultCase) })
.First(c => c.check(input))
.value(input);
This is a test cla
public static class ClaimsExtensions
{
public static string GetClaimValue(this HttpContext context, string type)
{
if (context.User.Identity is ClaimsIdentity id)
{
if (id.Claims.FirstOrDefault(c => c.Type == type) is Claim claim)
{
return claim.Value;
}
public static class ClaimsExtensions
{
public static string GetClaimValue(this HttpContext context, string type)
{
if (context.User.Claims.FirstOrDefault(c => c.Type == type) is Claim claim)
{
return claim.Value;
}
else throw new ArgumentException(type + " is not found in claims.");
}
<html>
<body>
<table cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td width="100%" height="100%" valign="center">
<center>
<img src="image.png"/>
</center>
</td>
</tr>
//in Parse.cs
public static Parser<U> EnumerateInput<T, U>(IEnumerable<T> input, Func<T, Parser<U>> parser)
{
if (input == null) throw new ArgumentNullException("input");
if (parser == null) throw new ArgumentNullException("parser");
return EnumerateInput(input.ToArray(), parser);
}
public static Parser<U> EnumerateInput<T, U>(T[] input, Func<T, Parser<U>> parser)