Skip to content

Instantly share code, notes, and snippets.

🏠
Working from home

Vince Panuccio vincpa

🏠
Working from home
Block or report user

Report or block vincpa

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@vincpa
vincpa / ClassGenerator.sql
Created May 11, 2018 — forked from ernado-x/ClassGenerator.sql
Generate C# class from database table
View ClassGenerator.sql
--from SO: http://stackoverflow.com/questions/5873170/generate-class-from-database-table
declare @TableName sysname = 'TableName'
declare @Result varchar(max) = 'public class ' + @TableName + '
{'
select @Result = @Result + '
public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
'
from
@vincpa
vincpa / dupfinder.ps1
Last active Jun 7, 2019
Use ReSharper command line tool dupFinder to produce a report of duplicated C# code
View dupfinder.ps1
$reportFileName = 'dupfinder.html'
$dupFindLocation = 'C:\dev\tools\ReSharperCliTools\dupfinder.exe'
if (-not (Test-Path $dupFindLocation)) {
Write-Host "dupfinder.exe not found in path $dupFindLocation"
Write-Host "Download tools from https://www.jetbrains.com/help/resharper/2017.1/ReSharper_Command_Line_Tools.html"
exit
}
$xsl = '<?xml version="1.0" encoding="utf-8"?>
@vincpa
vincpa / Enable-CSharp-WarningsAsErrors.ps1
Last active Jun 15, 2017
Recursively processes all csproj files in a directory and adds/updates a node for both Release and Debug configurations to treat the specified C# warnings as errors
View Enable-CSharp-WarningsAsErrors.ps1
# Warnings to treat as errors
# See end of script for descriptions
$cSharpWarnings = '162,168,169,219,1717,0067,649,618,183,184,1060,1058,809,672,612,1522,465,1998'
$formatting = ',1570,1574'
$interopWarnings = ',626,684,824'
$casWarnings = ',688'
$warnings = $cSharpWarnings + $formatting + $interopWarnings + $casWarnings
Get-ChildItem *.csproj -Recurse | % {
@vincpa
vincpa / json-pretty
Created Jul 29, 2014
A compact JSON beautifier
View json-pretty
// Highly compact JSON beautifier/formatter. Not very efficient and could definitely be improved. The main issue is with
// the number of allocations and memory presure being placed on the heap and garbage collector if the input is large.
// It is the shortest in terms of code size though.
// Source: http://stackoverflow.com/questions/4580397/json-formatter-in-c/24782322#24782322
private const string INDENT_STRING = " ";
static string FormatJson(string json) {
int indentation = 0;
View NotNull
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Reflection;
namespace Bleroy.Helpers {
public static class NotNull {
public static TProp Get<TSource, TProp>(this TSource source, Expression<Func<TSource, TProp>> property) where TSource : class {
if (source == null) return default(TProp);
var current = property.Body;
@vincpa
vincpa / SelectMany God
Last active Aug 29, 2015
Using the SelectMany() God function.
View SelectMany God
void Main()
{
// An implementation of the Where method using the SelectMany() method.
TestWhere();
// An implementation of Join using the SelectMany() method.
TestJoin();
}
public static IEnumerable<T> Where<T>(IEnumerable<T> stuffs, Func<T, bool> predicate)
@vincpa
vincpa / gist:9618765
Last active Aug 29, 2015
Use LINQ query expressions without requiring IEnumerables, to compose functions.
View gist:9618765
// Full credit goes to Wes Dyer http://blogs.msdn.com/b/wesdyer/archive/2008/01/11/the-marvels-of-monads.aspx
// Explanation of how query expressions are translated in to extension method syntax.
public class Identity<T>
{
public T Value { get; private set; }
public Identity(T value) { this.Value = value; }
public static implicit operator Identity<T>(T value) {
return new Identity<T>(value);
View RateLimit.cs
// Only let input Observable fire every 'n' seconds at most
// but unlike Throttle, items fire immediately when they aren't
// rate-limited.
public IObservable<T> RateLimit<T>(this IObservable<T> This, TimeSpan interval, IScheduler scheduler)
{
var slot = default(IObservable<Unit>);
var input = This.Publish().RefCount();
return input.Window(input, _ => {
if (slot != null) return slot;
@vincpa
vincpa / gist:5972009
Last active Dec 19, 2015
A LINQ extension method which eagerly finds an item or items with the lowest value in the collection.
View gist:5972009
[Test]
public void TestEmpty()
{
CollectionAssert.AreEqual(
new int[0].MinsBy(i => i),
new int[0]);
}
[Test]
public void TestPreserveOrderAndValue()
View TestHelper.cs
public static class TestHelpers
{
public static void ShouldEqualWithDiff(this string actualValue, string expectedValue)
{
ShouldEqualWithDiff(actualValue, expectedValue, DiffStyle.Full, Console.Out);
}
public static void ShouldEqualWithDiff(this string actualValue, string expectedValue, DiffStyle diffStyle)
{
ShouldEqualWithDiff(actualValue, expectedValue, diffStyle, Console.Out);
You can’t perform that action at this time.