Skip to content

Instantly share code, notes, and snippets.

View nootn's full-sized avatar

Andrew Newton nootn

View GitHub Profile
@nootn
nootn / ConfigureIocAndAop.cs
Created February 5, 2013 11:58
MiniProfiler.Windows IOC and AOP #1
private static void ConfigureIocAndAop()
{
var builder = new ContainerBuilder();
//If using an IOC container, it is a handy to be able to us an IProfiler to
//wrap mini profiler calls just to remove that dependency for unit testing
builder.RegisterType<MiniProfilerWrapper>().AsImplementedInterfaces();
//We want some classes that do some work, but we don't want to have to wrap profiler steps
//around each method call, so use AOP to do it for us!
@nootn
nootn / ProfileMethodAttribute.cs
Created February 5, 2013 11:59
MiniProfiler.Windows IOC and AOP #2
using Snap;
namespace ConsoleApplicationWithIocAndAop.AOP
{
public class ProfileMethodAttribute : MethodInterceptAttribute
{
}
}
@nootn
nootn / ProfileMethodInterceptor.cs
Created February 5, 2013 11:59
MiniProfiler.Windows IOC and AOP #3
using System;
using System.Reflection;
using Castle.DynamicProxy;
using Snap;
using StackExchange.Profiling;
namespace ConsoleApplicationWithIocAndAop.AOP
{
public class ProfileMethodInterceptor : MethodInterceptor
{
@nootn
nootn / Program.cs
Created February 5, 2013 12:01
MiniProfiler.Windows IOC and AOP #4
private static void Main(string[] args)
{
//Configure building blocks
ConfigureIocAndAop();
//Start profiling
ConsoleProfiling.Start();
//Run the application, the log is all behind the IConsoleApplication's Run method so it can be easily unit tested
var app = _container.Resolve<IConsoleApplication>();
@nootn
nootn / Model.cs
Last active August 29, 2015 13:58
Yet another email validation mechanism
public class Model : IValidatableObject
{
[Display(Name = "Send to (email)")]
[Required(ErrorMessage = "'{0}' must be supplied")]
[RegularExpression(@".+\@.", ErrorMessage = "{0}' must be an email address")]
public override string ToEmailAddress { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
ValidationResult emailInvalidError = null;