Files
InventoryTracker/InventoryTraker.Web/App_Start/StructureMapConfig.cs
T
2016-08-08 14:47:35 -04:00

52 lines
1.8 KiB
C#

using System.Data.Entity;
using System.Web;
using Heroic.Web.IoC;
using System.Web.Http;
using System.Web.Mvc;
using InventoryTraker.Web.Core;
using InventoryTraker.Web.Data;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using StructureMap.Graph;
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(InventoryTraker.Web.StructureMapConfig), "Configure")]
namespace InventoryTraker.Web
{
public static class StructureMapConfig
{
public static void Configure()
{
IoC.Container.Configure(cfg =>
{
cfg.Scan(scan =>
{
scan.TheCallingAssembly();
scan.WithDefaultConventions();
});
cfg.AddRegistry(new ControllerRegistry());
cfg.AddRegistry(new MvcRegistry());
cfg.AddRegistry(new ActionFilterRegistry(namespacePrefix: "InventoryTraker.Web"));
//Are you using ASP.NET Identity? If so, you'll probably need to configure some additional services:
//1) Make IUserStore injectable. Replace 'ApplicationUser' with whatever your Identity user type is.
cfg.For<IUserStore<User>>().Use<UserStore<User>>();
//2) Change AppDbContext to your application's Entity Framework context.
cfg.For<DbContext>().Use<AppDbContext>();
//3) This will allow you to inject the IAuthenticationManager. You may not need this, but you will if you
// used the default ASP.NET MVC project template as a starting point!
cfg.For<IAuthenticationManager>().Use(ctx => ctx.GetInstance<HttpRequestBase>().GetOwinContext().Authentication);
//TODO: Add other registries and configure your container (if needed)
});
var resolver = new StructureMapDependencyResolver();
DependencyResolver.SetResolver(resolver);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
}
}
}