Skip to content

Instantly share code, notes, and snippets.

View thefringeninja's full-sized avatar
🍿

João Bragança thefringeninja

🍿
View GitHub Profile
private List GetCostAnalysisList()
{
var lists = Sharepoint.LoadQuery(
Sharepoint.Web.Lists.Where(list => list.Title == "cost-analysis-worksheets"));
Sharepoint.ExecuteQuery();
return lists.FirstOrDefault();
}
@thefringeninja
thefringeninja / gist:3789614
Created September 26, 2012 18:14
Method Dependencies w/ Cross Cutting Concerns
// j oliver's event store will dispatch commits when you build it up, BEFORE you had a chance to register anything.
// So it needs to be lazily evaluated. I don't want to see Lazy<T> in my repo implementation or the application layer.
// Don't care if I see it in registration.
// this really confusing code allows us to do something like
// [Logged]
// public void Handle(TestMessage message, IRepository<TestAggregate> repository) {}
//
// var repository = new Lazy<IRepository<TestAggregate>>(() => new EventStoreRepository(Wireup...Build()));
// bus.Register<TestMessage, IRepository<TestAggregate>>(applicationLayer.Handle, () => repository.Value));
@thefringeninja
thefringeninja / Probability.cs
Created October 5, 2012 19:13
Greg Young Probability Kata - Simple Testing Style
public class Probability : IEquatable<Probability>
{
#region Equality members
public bool Equals(Probability other)
{
return EqualsWithin(other, 5);
}
public override bool Equals(object obj)
public class Item {
public ReactiveCommand Remove{ get; protected set; }
}
public class MyModel {
public ObservableCollection<Item> Items { get; protected set; }
}
MyModel model = new MyModel{Items = { new Item(), new Item() }};
this.Items = model.Items.CreateDerivedCollection(projectFunction);
// how to wire existing Item's RemoveIt command here?
@thefringeninja
thefringeninja / gist:5701817
Created June 3, 2013 21:57
When you know you've taken it too far..
bus.Register(new LoggedAttribute().Apply<SendEmail>(message =>
{
using (var client = new SmtpClient())
{
client.Send(message);
}
}));
public interface ICheckRequests
{
bool IsLocal();
}
public class ProductionRequestChecker : ICheckRequests
{
public bool IsLocal()
{
return HttpContext.Current.Request.IsLocal;
public class CassetteBundleConfiguration : IConfiguration<BundleCollection>
{
public void Configure(BundleCollection bundles)
{
bundles.Add<StylesheetBundle>("content/bootstrap/metro-bootstrap", new[] {"metro-bootstrap.less"});
bundles.Add<StylesheetBundle>("content/bootstrap", new[] {"bootstrap.less"});
bundles.Add<StylesheetBundle>("content/css/app", new[] {"main.less"});
bundles.AddPerIndividualFile<StylesheetBundle>("content/css/lib", new FileSearch
{
public class ClaimsModuleSpecifications
{
public Specification list_of_existing_claims()
{
return new ModuleSpecification<ClaimsModule>
{
Bootstrap = bootstrapper => { },
When = () => UserAgent.Get("/claims"),
Expect =
{
public static class CriteriaExtensions
{
public static string IsEqualTo(this string criteria)
{
return String.Format("= '{0}'", criteria ?? string.Empty);
}
}
public class CommandBinder : IModelBinder
{
private readonly IEnumerable<ITypeConverter> typeConverters;
private readonly IEnumerable<IBodyDeserializer> bodyDeserializers;
private readonly IFieldNameConverter fieldNameConverter;
private readonly BindingDefaults defaults;
public CommandBinder(
IEnumerable<ITypeConverter> typeConverters, IEnumerable<IBodyDeserializer> bodyDeserializers,
IFieldNameConverter fieldNameConverter, BindingDefaults defaults)