Skip to content

Instantly share code, notes, and snippets.

View kvnallen's full-sized avatar
:octocat:
Working from home

Kevin Allen kvnallen

:octocat:
Working from home
View GitHub Profile
@kvnallen
kvnallen / distancer.go
Created December 20, 2021 14:17
distancer
package distancer
import (
"fmt"
)
type CalculatorType string
const maxMatchesCanOccur = 4
@kvnallen
kvnallen / postgres_queries_and_commands.sql
Last active June 18, 2021 01:58 — forked from rgreenjr/postgres_queries_and_commands.sql
Useful PostgreSQL Queries and Commands
-- show running queries (pre 9.2)
SELECT procpid, age(clock_timestamp(), query_start), usename, current_query
FROM pg_stat_activity
WHERE current_query != '<IDLE>' AND current_query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc;
-- show running queries (9.2)
SELECT pid, age(clock_timestamp(), query_start), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
@kvnallen
kvnallen / IConsumerService.cs
Created December 19, 2020 14:49
Kafka Helpers (C#)
public interface IConsumerService<T>
{
Task Parse(Message<string, T> message);
string GetTopic();
string GetConsumerGroup();
}
@kvnallen
kvnallen / to-dictionary.js
Created April 14, 2020 15:01
Transform a object into an dictionary
const toDictionary = ({ list = [], prop }) => Object.fromEntries(list.map(x => [x[prop], x]))
@kvnallen
kvnallen / RelationalConventions.cs
Created December 11, 2019 20:02
EF Core - Relational Conventions
// 2.1 <
foreach (var item in modelBuilder.Model.GetEntityTypes())
{
item.Relational().TableName = item.Relational().TableName.ToSnakeCase();
foreach (var property in item.GetProperties())
{
property.Relational().ColumnName = property.Relational().ColumnName.ToSnakeCase();
}
}
{
"acrylicOpacity": 0.75,
"closeOnExit": true,
"colorScheme": "Campbell",
"commandline": "bash.exe",
"cursorColor": "#FFFFFF",
"cursorShape": "bar",
"fontFace": "Fira Code",
"fontSize": 10,
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6102}",
@kvnallen
kvnallen / autorollback.cs
Created May 9, 2019 18:32
xunit autorollback
/// <summary>
/// Apply this attribute to your test method to automatically create a <see cref="TransactionScope"/>
/// that is rolled back when the test is finished.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class AutoRollbackAttribute : BeforeAfterTestAttribute
{
TransactionScope scope;
/// <summary>
@kvnallen
kvnallen / EFCoreExtensions.cs
Last active May 8, 2019 20:53
EF Core Extensions
public static class EFCoreExtensions
{
public static string ToUnderscoreCase(this string str)
{
return string.Concat(str.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())).ToLower();
}
public static IEnumerable<IMutableEntityType> EntityTypes(this ModelBuilder builder)
{
return builder.Model.GetEntityTypes();
@kvnallen
kvnallen / EntityValidationErrors.cs
Last active September 8, 2017 15:58
Entity Helpers
public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (DbEntityValidationException ex)
{
// Retrieve the error messages as a list of strings.
@kvnallen
kvnallen / MockDbSet.cs
Created July 13, 2017 20:05
Code base for mock EF 6
public static Mock<DbSet<T>> GetMockDbSet<T>( IQueryable<T> entities ) where T : class
{
var mockSet = new Mock<DbSet<T>>();
mockSet.As<IQueryable<T>>().Setup( m => m.Provider ).Returns( entities.Provider );
mockSet.As<IQueryable<T>>().Setup( m => m.Expression ).Returns( entities.Expression );
mockSet.As<IQueryable<T>>().Setup( m => m.ElementType ).Returns( entities.ElementType );
mockSet.As<IQueryable<T>>().Setup( m => m.GetEnumerator() ).Returns( entities.GetEnumerator );
return mockSet;
}