public static void Register(HttpConfiguration config)
        {
            AutoMapperConfiguration.Configure();
            // Web API configuration and services
            var builder = new ContainerBuilder();

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            builder.RegisterType <Context>().InstancePerLifetimeScope();

            builder.RegisterType <LinkRepository>().As <ILinkRepository>().InstancePerLifetimeScope();
            builder.RegisterType <DomainRepository>().As <IDomainRepository>().InstancePerLifetimeScope();
            builder.RegisterType <MediaServiceRepository>().As <IMediaServiceRepository>().InstancePerLifetimeScope();

            builder.RegisterType <StorageService>().As <IStorage>().InstancePerLifetimeScope();

            builder.RegisterType <CreateLinkCommand>().As <ICommand <LinkModel, CreateLinkArgument> >().SingleInstance();
            builder.RegisterType <UpdateLinkCommand>().As <ICommand <ExtendedLinkModel, UpdateLinkArgument> >().SingleInstance();
            builder.RegisterType <GetLinkCommand>().As <ICommand <ExtendedLinkModel, GetLinkArgument> >().SingleInstance();
            builder.RegisterType <DeleteLinkCommand>().As <ICommand <DeleteLinkArgument> >().SingleInstance();

            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            // Web API routes
            config.MapHttpAttributeRoutes();

            Database.SetInitializer(new MigrateDatabaseToLatestVersion <Context, Repository.Entities.Migrations.Configuration>());

            config.Formatters.Clear();
            config.Formatters.Add(new JsonMediaTypeFormatter());
            config.Formatters.JsonFormatter.SupportedMediaTypes.Clear();
            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());
            config.Formatters.JsonFormatter.UseDataContractJsonSerializer = false;
            config.Formatters.JsonFormatter.Indent = true;

            config.EnsureInitialized();
        }
示例#2
0
 /// <summary>
 /// Configurations the specified application.
 /// </summary>
 /// <param name="app">The application.</param>
 public void Configuration(IAppBuilder app)
 {
     AutoMapperConfiguration.Configure();
     this.ConfigureAuth(app);
 }