private void SetDependencyResolver()
{
var builder = new ContainerBuilder();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
builder
.RegisterAssemblyTypes(
Assembly.GetAssembly(typeof (IIdentifiable)),
Assembly.GetExecutingAssembly())
.AsImplementedInterfaces();
builder.RegisterType<AppContext>().As<IAppContext>().SingleInstance();
//builder.RegisterType<EfRepository>().As<IRepository>().InstancePerHttpRequest();
builder.Register(c => new MultitenantRepository(new EfRepository(), c.Resolve<IAppContext>())).
As<IRepository>().InstancePerHttpRequest();
builder.Register(c=>TestAppConfiguration.GetTestConfiguration()).As<IConfiguration>();
builder.RegisterType<AeEmailClient>().As<IEmailClient>().SingleInstance();
builder.RegisterType<MailMessageParserFactory>().As<IMailMessageParserFactory>();
//// builder.RegisterType<MailMessagePersister>();
builder.Register(
c =>
new MailMessagePersister(new EfRepository(), c.Resolve<IEmailClient>(),
c.Resolve<IInquiryFactory>(), c.Resolve<IMailMessageParserFactory>())).ExternallyOwned();
//new MailMessagePersister(new MultitenantRepository(new EfRepository(), c.Resolve<IAppContext>()), c.Resolve<IEmailClient>(),
// c.Resolve<IInquiryFactory>(), c.Resolve<IMailMessageParserFactory>())).SingleInstance();
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly(),
Assembly.GetAssembly(typeof(Client)),
Assembly.GetAssembly(typeof(RestClient)))
.AsImplementedInterfaces().AsSelf();
DependencyResolver.SetResolver(new AutofacDependencyResolver(builder.Build()));
}