protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
// Simple Injection Setup
var container = new Container();
// SI Controllers Dependency Injection
container.Register<IUserHelper, UserHelper>(Lifestyle.Singleton);
container.Register<IConfigurationHelper, ConfigurationHelper>(Lifestyle.Singleton);
container.Register<IErrorSignaler, ErrorSignaler>(Lifestyle.Singleton);
container.Register<IAddressResource, AddressResource>(Lifestyle.Singleton);
container.Register<IHobbyResource, HobbyResource>(Lifestyle.Singleton);
container.Register<IEducationResource, EducationResource>(Lifestyle.Singleton);
container.Register<IUsersResource, UsersResource>(Lifestyle.Singleton);
container.Register<IMediaResource, MediaResource>(Lifestyle.Singleton);
container.Register<INotificationResource, NotificationResource>(Lifestyle.Singleton);
// SI Token Identity Registers
container.Register<IdentityDbContext<BlogUser>, BlogIdentityDbContext>(Lifestyle.Singleton);
container.Register<IUserStore<BlogUser>, BlogUserStore>(Lifestyle.Singleton);
container.Register<IBlogDbRepository, BlogDbRepository>(Lifestyle.Singleton);
container.Register<BlogUserManager, BlogUserManager>(Lifestyle.Singleton);
// SI Registrations
container.RegisterMvcControllers(System.Reflection.Assembly.GetExecutingAssembly());
container.RegisterMvcIntegratedFilterProvider();
container.Verify();
// Register the dependency resolver.
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
}