Skip to content

Instantly share code, notes, and snippets.

View davybrion's full-sized avatar

Davy Brion davybrion

  • That Extra Mile
  • Belgium
View GitHub Profile
@davybrion
davybrion / s1.cs
Created September 3, 2012 18:40
code snippets for "Introduction To IOC With Castle Windsor" post, part I
private readonly IOrderDataAccessor _accessor;
public OrderRepository(IOrderDataAccessor accessor)
{
_accessor = accessor;
}
@davybrion
davybrion / s11.cs
Created September 3, 2012 18:41
code snippets for "Introduction To IOC With Castle Windsor" post, part II
_container.AddComponent<IOrderDataAccessor, XmlOrderDataAccessor>();
@davybrion
davybrion / s1.cs
Created September 3, 2012 18:50
code snippets for "Testing Exceptions" post
public class Order
{
public IEnumerable<OrderLine> OrderLines { get; set; }
public Customer Customer { get; set; }
public Order() : this(null, null) {}
public Order(Customer customer) : this(customer, null) {}
public Order(Customer customer, IEnumerable<OrderLine> orderLines)
@davybrion
davybrion / s1.cs
Created September 3, 2012 19:00
code snippets for "Adding behavior without modifying existing code with Windsor" post
public class LoggingInterceptor : Castle.Core.Interceptor.IInterceptor
{
private readonly ILogger logger;
public LoggingInterceptor(ILogger logger)
{
this.logger = logger;
}
public void Intercept(IInvocation invocation)
@davybrion
davybrion / s1.cs
Created September 3, 2012 19:04
code snippets for "Easy Non-Blocking Locking" post
public struct TimedLock : IDisposable
{
private readonly object target;
private TimedLock(object o)
{
target = o;
}
public void Dispose()
@davybrion
davybrion / s1.cs
Created September 3, 2012 19:07
code snippets for "How A Simple Foreach Statement Can Waste An Afternoon" post
public void ProcessGroupsAndTheirMembers(ActiveDirectoryConfiguration adConfig)
{
List<GroupPrincipal> groupPrincipals = GetABunchOfGroupsFromActiveDirectory(adConfig);
foreach (var groupPrincipal in groupPrincipals)
{
HandleGroup(groupPrincipal);
DealWithMembers(groupPrincipal.Members);
}
}
@davybrion
davybrion / s1.cs
Created September 6, 2012 12:46
code snippets for "Storing data in the HttpSession" post
IEnumerable<OrderView> outstandingOrders
= orderManagementServiceProxy.GetOverviewOfAllOutstandingOrders();
Session["outstandingOrders"] = outstandingOrders;
@davybrion
davybrion / s1.cs
Created September 6, 2012 13:07
code snippets for "The Circuit Breaker" post
public abstract class CircuitBreakerState
{
protected readonly CircuitBreaker circuitBreaker;
protected CircuitBreakerState(CircuitBreaker circuitBreaker)
{
this.circuitBreaker = circuitBreaker;
}
public virtual void ProtectedCodeIsAboutToBeCalled() { }
@davybrion
davybrion / s1.cs
Created September 6, 2012 13:27
code snippets for "Disposing of the IDisposable implementation" post
public abstract class Disposable : IDisposable
{
private bool disposed;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
@davybrion
davybrion / s1.cs
Created September 8, 2012 14:00
Code snippets for "How To Write Testable ASP.NET WebForms" post, part I
public interface IView
{
bool IsPostBack { get; }
bool IsValid { get; }
void DataBind();
void DisplayErrorMessage(string message);
}