Skip to content

Instantly share code, notes, and snippets.

@LeeCampbell
LeeCampbell / csharp.xslt
Created October 9, 2012 13:39
Protobuf-Net xslt file to produce Nullable Properties
<!--
In conjunction with the patch for issue 72
https://code.google.com/p/protobuf-net/issues/detail?id=72
This file can make the current implementation of the Protobuf-net tools useful. Without these however protobuf-net is full of surprises like:
* Requiring you to specify if it should detect missing values (why is this not always on?)
* Not being able to identify between not specified (null in every other computer system) and the default value
* Not being able to compile if an Enum is optional but does not specify a default value?!
* Happily serializing invalid messages i.e. where required values are missing
@LeeCampbell
LeeCampbell / MyPermissionRepo.cs
Created October 5, 2012 14:42
Asynchronous cache of values
void Main()
{
var repo = new MyPermissionRepo();
//These will all get batched up and sent together
repo.IsPermissioned("Marcus").Dump("Marcus");
repo.IsPermissioned("Lee").Dump("Lee");
repo.IsPermissioned("Merc").Dump("Merc");
repo.IsPermissioned("Si").Dump("Si");
@LeeCampbell
LeeCampbell / Logger.cs
Created October 2, 2012 08:20
Logging implementation with Rx features
using System;
using System.Diagnostics;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Reactive.Concurrency;
using Microsoft.Practices.Prism.Logging;
using log4net;
using log4net.Core;
//From ResSharper --> Options --> Code Inspection --> Code Annotations -->Copy default implementation to clipboard
@LeeCampbell
LeeCampbell / ObservableAPMExtensions.cs
Created February 13, 2012 16:33
Extension methods to help with converting APM pattern to Observable.
public static class ObservableAPMExtensions
{
public static IObservable<byte> ToObservable(this FileStream source)
{
return source.ToObservable(4096, Scheduler.CurrentThread);
}
public static IObservable<byte> ToObservable(this FileStream source, int buffersize, IScheduler scheduler)
{
@LeeCampbell
LeeCampbell / TestsToEnglish.linq
Created February 13, 2012 10:47
LinqPad Query to query the Given/When/Then list of tests
void Main()
{
//I want to have it format like:
//-------------------------------
// Given a new strategy
// When the name is modified
// Then raise property changed
// When trade added
// The DeltaCashSum equals Trade DeltaCash
// When invalid trade added
@LeeCampbell
LeeCampbell / INotifyPropertyChangedExtensions.cs
Created February 9, 2012 15:19
Extension methods to help with INotifyPropertyChanged interface (and ObservableCollection<T>)
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
//TODO: Allow the ability to provide multiple properties to WhenPropertyChanges
@LeeCampbell
LeeCampbell / StubRegionManager
Created September 7, 2011 10:39
Prebuilt Stub RegionManager to enable friction-free testing of the IRegionManager Prism interface
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.ServiceLocation;
using Moq;
using System.Collections.ObjectModel;
namespace ArtemisWest.Prism.Testing