Skip to content

Instantly share code, notes, and snippets.

@deejaygraham
deejaygraham / PaddedText.cs
Last active August 29, 2015 13:57
Diamond Pattern Kata worked example from cyber-dojo
using System.Text;
public class PaddedText
{
public PaddedText()
{
this.SpaceCharacter = ' ';
}
public char SpaceCharacter { get; set; }
@deejaygraham
deejaygraham / StringCalculator.cs
Last active August 29, 2015 14:00
StringCalculator Kata worked example
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class NegativesNotAllowedException : Exception
{
}
/// <summary>
@deejaygraham
deejaygraham / xUnitTraits.cs
Last active August 29, 2015 14:00
xUnit test categorisation using traits
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class InMemoryTestAttribute : TraitAttribute
{
public InMemoryTestAttribute()
: base("Category", "Fast")
{
}
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
@deejaygraham
deejaygraham / clean.rb
Created May 6, 2014 12:19
Clean a folder of empty sub-folders
Dir['**/*'] \
.select { |d| File.directory?(d) } \
.select { |d| (Dir.entries(d) - %w[ . .. ]).empty? } \
.each { |d| Dir.rmdir d }
@deejaygraham
deejaygraham / ITaskItemExtensions.cs
Created May 7, 2014 15:44
Extension methods for MsBuild ITaskItem
using System;
using System.IO;
using System.Text;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
public static class ITaskItemExtensions
{
public static void EnsureFolderExists(this ITaskItem folder)
{
@deejaygraham
deejaygraham / Transpng.cs
Created May 19, 2014 12:44
Change b&w image to transparent background PNG
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
namespace transpng
{
class Program
{
static int Main(string[] args)
{
@deejaygraham
deejaygraham / OwinServer.cs
Created May 20, 2014 12:11
Self-Hosted WebServer using Owin
using Microsoft.Owin;
using Microsoft.Owin.FileSystems;
using Microsoft.Owin.Hosting;
using Microsoft.Owin.StaticFiles;
using Owin;
using System;
#if DEBUG
[assembly: OwinStartup(typeof(OwinTestApp.DebugStartup))]
#else
@deejaygraham
deejaygraham / OrderByDescendingExample.cs
Created May 27, 2014 11:13
Example use of OrderByDescending.
var list = new List<Uri>();
list.Add(new Uri("http://www.madeup.com/1/"));
list.Add(new Uri("http://www.madeup.com/1/2/"));
list.Add(new Uri("http://www.madeup.com/1/2/3/4/5/6/7/8"));
list.Add(new Uri("http://www.madeup.com/1/2/3/4/"));
list.Add(new Uri("http://www.madeup.com/1/2/3"));
list.Add(new Uri("http://www.madeup.com/1/3/5/7/"));
list.Add(new Uri("http://www.madeup.com/1/4/6/8/10"));
list.Add(new Uri("http://www.madeup.com/1/3/5/7/9"));
@deejaygraham
deejaygraham / HyperLinkEventArgs.cs
Created May 29, 2014 12:07
Hyper link found event
public class HyperLinkEventArgs : EventArgs
{
public HtmlDocument Document { get; set; }
public string FilePath { get; set; }
public string Link { get; set; }
public int Line { get; set; }
@deejaygraham
deejaygraham / HtmlFinder.cs
Created May 29, 2014 12:05
Lists htm-like files in a directory
public class HtmlFileFinder
{
public IEnumerable<string> Find(string folder)
{
var htmlList = new List<string>();
foreach (var html in Directory.EnumerateFiles(folder, "*.htm?", SearchOption.AllDirectories))
{
htmlList.Add(html);
}