예제 #1
0
        /// <summary>
        /// Fires on Application Start
        /// </summary>
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            MvcHandler.DisableMvcResponseHeader = true;

            FluentValidationModelValidatorProvider.Configure(provider =>
            {
                provider.ValidatorFactory = new ViewModelValidatorFactory();
            });

            // Disable Code First Migrations
            Database.SetInitializer <BrewgrContext>(null);

            // Setup Exception Error Store
            ErrorStore.Setup("Brewgr.com", new SQLErrorStore(ConfigurationManager.ConnectionStrings["Brewgr_ConnectionString"].ConnectionString));
        }
예제 #2
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.Formatters.JsonFormatter
            .SerializerSettings
            .ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

            config.Services.Add(typeof(IExceptionLogger), UnityConfig.Container.Resolve <IExceptionLogger>());
            FluentValidationModelValidatorProvider.Configure(config, x => x.ValidatorFactory = new UnityValidatorFactory(config));
        }
예제 #3
0
        public static void Register(HttpConfiguration config)
        {
            // Configuración y servicios de Web API
            // Configure Web API para usar solo la autenticación de token de portador.
            config.SuppressDefaultHostAuthentication();
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            // Rutas de Web API
            config.MapHttpAttributeRoutes();

            config.EnableCors();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            FluentValidationModelValidatorProvider.Configure(config);
        }
예제 #4
0
        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.DependencyResolver = NinjectHelper.GetNinjectResolver();
            FluentValidationModelValidatorProvider.Configure(config);

            var loggingService = (IRequestLoggingService)NinjectHelper.GetResolveService(typeof(IRequestLoggingService));

            // register global filters
            config.Filters.Add(new RequestLoggingFilter(loggingService));
            config.Filters.Add(new ApiExceptionFilter());
        }
        public static void Register(HttpConfiguration config)
        {
            // Turn on XML seralization for WebApi
            config.Formatters.XmlFormatter.UseXmlSerializer = true;

            // add dependency resolution to the application
            // based on Microsoft.Extensions.DependencyInjection
            var serviceProvider = config.BuildDependencyResolver(services => {
                // add a default memory cache based on Microsoft.Extensions.Caching.Memory
                services.AddMemoryCache();

                // add the client specific services (local project)
                services.AddClientSpecificTransformations();

                // add controllers
                services.AddTransient <ConversionController>();
            });

            // add fluent validation
            FluentValidationModelValidatorProvider.Configure(config, provider =>
            {
                // use a shim validation factory that uses the service provider
                // to obtain validations
                provider.ValidatorFactory = new ValidatorFactory(serviceProvider);
            });

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            // run start up actions
            using (var serviceScope = config.DependencyResolver.BeginScope())
            {
                serviceScope.GetServices(typeof(IHaveStartupActions)).OfType <IHaveStartupActions>().Startup();
            }
        }
예제 #6
0
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            var childContainer = new WindsorContainer();

            container.AddChildContainer(childContainer);

            var accessor = _scopeAccessor ?? typeof(WebRequestScopeAccessor);

            childContainer.Register(
                Component.For <ServiceBusController>()
                .LifestyleScoped(accessor)
                );

            foreach (var assembly in _fromAssemblies)
            {
                childContainer.Register(
                    assembly.BasedOn <IHttpController>().WithServiceSelf()
                    .LifestyleScoped(accessor)
                    );
            }

            if (_useFluentValidation)
            {
                FluentValidationModelValidatorProvider
                .Configure(_configuration, provider =>
                           provider.ValidatorFactory = container.Resolve <IValidatorFactory>());
            }

            _configuration.DependencyResolver =
                new WindsorDependencyResolver(childContainer.Kernel);

            ConfigureSwagger();

            if (_useGlobalExceptionLogging)
            {
                var logger = container.Resolve <ILogger>();
                _configuration.Services.Add(typeof(IExceptionLogger), new ServiceBusExceptionLogger(logger));
            }

            _configuration.EnsureInitialized();
        }
예제 #7
0
        public static void Start()
        {
            FluentValidationModelValidatorProvider.Configure();
            ValidatorOptions.DisplayNameResolver = (type, memberInfo, LambdaExpression) =>
            {
                string propName    = type.Name + memberInfo.Name + "DisplayName";
                string displayName = WebMessage.ResourceManager.GetString(propName);
                return(displayName);
            };
            ValidatorOptions.PropertyNameResolver = (type, memberInfo, LambdaExpression) =>
            {
                string propName    = type.Name + memberInfo.Name + "ErrorText";
                string displayName = WebMessage.ResourceManager.GetString(propName);
                return(displayName);
            };

            //替换MVC的元数据提供者
            ModelMetadataProviders.Current = new CustomModelMetadataProvider();
            //DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
            //ModelValidatorProviders.Providers.Insert(0, new FluentValidationModelValidatorProvider());
        }
예제 #8
0
        private static void Register(HttpConfiguration config)
        {
            // Configure routes
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            // Configure Json formatter
            var jsonFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().First();

            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            // elimina el formateo en XML de las respuestas
            config.Formatters.Remove(config.Formatters.XmlFormatter);

            // Configure FluentValidation
            FluentValidationModelValidatorProvider.Configure(config);
        }
        protected void Application_Start()
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ModelBinders.Binders.Add(typeof(string), new TrimStringModelBinder());

            AntiForgeryConfig.UniqueClaimTypeIdentifier = DasClaimTypes.Name;

            var container = StructuremapMvc.StructureMapDependencyScope.Container;

            FluentValidationModelValidatorProvider.Configure(x => x.ValidatorFactory = new StructureMapValidatorFactory(container));

            TelemetryConfiguration.Active.InstrumentationKey = ConfigurationManager.AppSettings["InstrumentationKey"];

            Logger.Info("Starting up");
        }
예제 #10
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            log4net.Config.XmlConfigurator.Configure(new FileInfo(Path.Combine("log4net.config")));
            ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory(
                                                               new BusinessModule(),
                                                               new DependencyResolverMvc()
                                                               ));
            FluentValidationModelValidatorProvider.Configure(provider =>
            {
                provider.ValidatorFactory = new NinjectValidationFactory(new ValidationModule());
            });

            #region Data Annotation iptal edlip fluent validation devreye girer.
            ModelValidatorProviders.Providers.Remove(
                ModelValidatorProviders.Providers.OfType <DataAnnotationsModelValidatorProvider>().First());
            #endregion
        }
예제 #11
0
        protected void Application_Start()
        {
            EngineContext.Initialize(false);

            IContainer container = EngineContext.Current.Container;

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            //注入自定义的FluentValidation类型提供工厂
            FluentValidationModelValidatorProvider.Configure(x =>
                                                             x.ValidatorFactory = container.Resolve <IValidatorFactory>());

            //初始化EF的DbContext
            DbContextInitConfig.DbContextInit(this);

            AreaRegistration.RegisterAllAreas();
            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
예제 #12
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            var validatorFactory = new ODataWithOnionCQRS.MyODataApi.App_Start.FluentValidatorFactory();

            FluentValidationModelValidatorProvider.Configure(config, provider => provider.ValidatorFactory = validatorFactory);

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.MapODataServiceRoute(
                routeName: "ODataRoute",
                routePrefix: null,
                model: GetEdmModel());
        }
예제 #13
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new RazorViewEngine());

            ControllerBuilder.Current.SetControllerFactory(new DefaultControllerFactory());

            ModelBinders.Binders.DefaultBinder = new TrimModelBinder();
            FluentValidationModelValidatorProvider.Configure(provider =>
            {
                provider.AddImplicitRequiredValidator = false;
                provider.Add(typeof(EqualValidator),
                             (metadata, context, description, validator) =>
                             new EqualToValueFluentValidationPropertyValidator(metadata, context, description, validator));
            });
        }
예제 #14
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
            FluentValidationModelValidatorProvider.Configure(provider =>
            {
                provider.ValidatorFactory             = new NinjectValidatorFactory();
                provider.AddImplicitRequiredValidator = false;
            });
            Mapper.Initialize(mapping =>
            {
                mapping.CreateMap <Urunler, UrunlerVM>().ReverseMap();
                mapping.CreateMap <Yorumlar, YorumlarVM>().ReverseMap();
                mapping.CreateMap <Kuponlar, KuponlarVM>().ReverseMap();
                mapping.CreateMap <Uyeler, UyeOl>().ReverseMap();
            });
        }
예제 #15
0
        protected void Application_Start()
        {
            //System.Web.Http.GlobalConfiguration.Configure((config) =>
            // {
            //     GlobalConfiguration.Configuration = config;
            //     WebApiConfig.Register(config);
            // });

            // Create the container as usual.
            var container = new Container();

            RegisterIoCContainer(container);

            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            FluentValidationModelValidatorProvider.Configure();
        }
예제 #16
0
        /// <summary>Integrates Unity when the application starts.</summary>
        public static void Start()
        {
            // create an empty container
            DIContainer = new UnityContainer();

            // register all your components with the container here
            ModuleLoader.LoadModulesFromAssemblies(new UnityModuleRegistrar(DIContainer), AppDomain.CurrentDomain.BaseDirectory, SettingsManager.ModulesPath);

            //Configure Model Validation to use FluentValidation, with Unity as resolver
            FluentValidationModelValidatorProvider.Configure(GlobalConfiguration.Configuration, c => c.ValidatorFactory = new UnityValidatorFactory(DIContainer));

            //Register all public Validators from this assembly
            AssemblyScanner.FindValidatorsInAssembly(Assembly.GetExecutingAssembly())
            .ForEach(validator => DIContainer.RegisterType(validator.InterfaceType, validator.ValidatorType));

            // point the WebAPI to use the container
            GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(DIContainer);

            //explicite injection of the SecurityService to the AuthenticatedAttribute [we cant use regular DI within attribute]
            AuthenticatedAttribute._securityService = DIContainer.Resolve(typeof(ISecurity)) as ISecurity;
        }
예제 #17
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            FluentValidationModelValidatorProvider.Configure();

            Database.SetInitializer(new MigrateDatabaseToLatestVersion <ApplicationDbContext, Configuration>());

            DependencyResolver.SetResolver(
                new StructureMapResolver(() => Container ?? ObjectFactory.Container));

            ObjectFactory.Configure(cfg =>
            {
                cfg.AddRegistry(new StandardRegistry());
                cfg.AddRegistry(new ControllerRegistry());
                cfg.AddRegistry(new ActionFilterRegistry(
                                    () => Container ?? ObjectFactory.Container));
                cfg.AddRegistry(new MvcRegistry(() => Container ?? ObjectFactory.Container));
                cfg.AddRegistry(new TaskRegistry());
                cfg.AddRegistry(new ModelMetadataRegistry());
                cfg.AddRegistry(new MediatorRegistry(() => Container ?? ObjectFactory.Container));
            });


            using (IContainer container = ObjectFactory.Container.GetNestedContainer())
            {
                foreach (IRunAtInit task in container.GetAllInstances <IRunAtInit>())
                {
                    task.Execute();
                }

                foreach (IRunAtStartup task in container.GetAllInstances <IRunAtStartup>())
                {
                    task.Execute();
                }
            }
        }
예제 #18
0
        protected void Application_Start()
        {
            // Automatic migration

            Database.SetInitializer(new MigrateDatabaseToLatestVersion <Service.Data.SMSDb, Aurora.SMS.Web.Migrations.Configuration>());
            var dbMigrator = new DbMigrator(new Aurora.SMS.Web.Migrations.Configuration());

            if (dbMigrator.GetPendingMigrations().Any())
            {
                dbMigrator.Update();
            }

            Database.SetInitializer(new MigrateDatabaseToLatestVersion <InsuranceDb, Aurora.Insurance.Services.Migrations.Configuration>());
            var dbMigrator2 = new DbMigrator(new Aurora.Insurance.Services.Migrations.Configuration());

            if (dbMigrator2.GetPendingMigrations().Any())
            {
                dbMigrator2.Update();
            }

            // Register Web API routing support before anything else

            GlobalConfiguration.Configure(WebApiConfig.Register);


            Mapper.Initialize(cfg =>
            {
                cfg.AddProfile <AutoMapperWebProfile>();
                cfg.AddProfile <AutoMapperApiProfile>();
            });



            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            FluentValidationModelValidatorProvider.Configure();
        }
예제 #19
0
        public static void Register(HttpConfiguration config)
        {
            IKernel kernel = (IKernel)config.DependencyResolver.GetService(typeof(IKernel));

            // Конфигурация и службы веб-API
            FluentValidationModelValidatorProvider.Configure(config,
                                                             cfg => cfg.ValidatorFactory = new NinjectValidationFactory(kernel));

            AssemblyScanner.FindValidatorsInAssemblyContaining <CourseWeb>()
            .ForEach(result => kernel.Bind(result.InterfaceType)
                     .To(result.ValidatorType));

            // Маршруты веб-API
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }

                );
        }
예제 #20
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            config.Filters.Add(new ValidateModelStateFilter());
            config.Filters.Add(new ExceptionFilter());
            config.MessageHandlers.Add(new ResponseWrappingHandler());

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            FluentValidationModelValidatorProvider.Configure(config);

            var jsonFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().First();

            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
예제 #21
0
        private static void AutofacBootstrap()
        {
            var builder = new ContainerBuilder();

            builder.RegisterControllers(typeof(MvcApplication).Assembly);
            builder.RegisterModule <AutofacFluentValidationModule>();
            builder.RegisterFilterProvider();

            // Don't call this multiple times as it will result to multiple registrations
            builder.AddMediatR(typeof(ICommand).Assembly, typeof(IHandler).Assembly);

            var container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            FluentValidationModelValidatorProvider.Configure(
                provider =>
            {
                provider.ValidatorFactory =
                    new AutofacValidatorFactory(container);
            });
        }
예제 #22
0
        /// <summary>
        /// Creates the kernel that will manage your application.
        /// </summary>
        /// <returns>The created kernel.</returns>
        private static IKernel CreateKernel()
        {
            var kernel = new StandardKernel();

            try
            {
                kernel.Bind <Func <IKernel> >().ToMethod(ctx => () => new Bootstrapper().Kernel);
                kernel.Bind <IHttpModule>().To <HttpApplicationInitializationHttpModule>();
                RegisterServices(kernel);

                var ninjectValidatorFactory = new NinjectValidatorFactory(kernel);
                FluentValidationModelValidatorProvider.Configure(x => x.ValidatorFactory        = ninjectValidatorFactory);
                DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

                return(kernel);
            }
            catch
            {
                kernel.Dispose();
                throw;
            }
        }
예제 #23
0
파일: Startup.cs 프로젝트: DEFRA/prsd-weee
        public void Configuration(IAppBuilder app)
        {
            var configuration = new ConfigurationService();

            var builder = new ContainerBuilder();

            builder.Register(c => configuration).As <ConfigurationService>().SingleInstance();
            builder.Register(c => configuration.CurrentConfiguration).As <IAppConfiguration>().SingleInstance();
            builder.Register(c => HttpContext.Current.GetOwinContext().Authentication).InstancePerRequest();

            var container = AutofacBootstrapper.Initialize(builder);

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            // Must register Autofac middleware FIRST!
            app.UseAutofacMiddleware(container);
            app.UseAutofacMvc();

            ConfigureAuth(app, configuration.CurrentConfiguration);

            AntiForgeryConfig.UniqueClaimTypeIdentifier = JwtClaimTypes.Subject;
            AntiForgeryConfig.RequireSsl = true;
            AntiForgeryConfig.CookieName = Prsd.Core.Web.Constants.CookiePrefix + Constants.AntiForgeryCookieName;

            MvcHandler.DisableMvcResponseHeader = true;

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters, configuration.CurrentConfiguration);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            ModelBinders.Binders.DefaultBinder = new TrimModelBinder();
            DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(RequiredAttribute), typeof(WeeeRequiredAttributeAdapter));

            ApplicationVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();

            FluentValidationModelValidatorProvider.Configure();

            System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
        }
        public IWindsorContainer Configure(IAppBuilder app)
        {
            var container = new WindsorContainer();

            container.Register(Component.For <IAppBuilder>().Instance(app));

            container.Install(FromAssembly.This(new WindsorBootstrap()))
            .Install(FromAssembly.Containing <Framework.Config.Installers.ExceptionTranslatorInstaller>())          //install Framwork
            .Install(FromAssembly.Containing <SearchEngine.Config.Installers.ApiControllerInstaller>(new WindsorBootstrap()));

            CreateDbIndex x = container.Resolve <CreateDbIndex>();

            x.Start(HttpRuntime.AppDomainAppPath + @"App_Data\idx");


            FluentValidationModelValidatorProvider
            .Configure(GlobalConfiguration.Configuration, provider => provider.ValidatorFactory = new WindsorValidatorFactory(container));

            GlobalConfiguration.Configuration.Services.Replace(typeof(IHttpControllerActivator), new WindsorCompositionRoot(container));
            //config.DependencyResolver = new WindsorResolver(container);
            return(container);
        }
예제 #25
0
        public void Configuration(IAppBuilder appBuilder)
        {
            HttpConfiguration config = new HttpConfiguration();

            //Microsoft.Owin.Cors.CorsOptions corsOptions = new Microsoft.Owin.Cors.CorsOptions();
            //CorsExtensions.UseCors(appBuilder, corsOptions);
            config.EnableCors();
            //For Dependency Injection
            Register(config);

            //For JWT Security Token
            ConfigureAuthApp(appBuilder);

            //For Creating Custom Response Header
            config.MessageHandlers.Add(new ResponseWrappingHandler());

            //For Model Validation
            config.Filters.Add(new ValidateModelStateFilter());

            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
            config.Services.Add(typeof(IExceptionLogger), new GlobalErrorLogger());

            config.MapHttpAttributeRoutes();
            config.EnableCors();
            //For Route Mechanism
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );



            //Invoke fluent validation
            FluentValidationModelValidatorProvider.Configure(config);
            appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

            appBuilder.UseWebApi(config);
        }
예제 #26
0
        /// <summary>
        /// Creates the kernel that will manage your application.
        /// </summary>
        /// <returns>The created kernel.</returns>
        private static IKernel CreateKernel()
        {
            var kernel = new StandardKernel();

            try
            {
                kernel.Bind <Func <IKernel> >().ToMethod(ctx => () => new Bootstrapper().Kernel);
                kernel.Bind <IHttpModule>().To <HttpApplicationInitializationHttpModule>();

                FluentValidationModelValidatorProvider.
                Configure(GlobalConfiguration.Configuration, provider => provider.ValidatorFactory =
                              new NinjectValidatorFactory(kernel));

                RegisterServices(kernel);
                return(kernel);
            }
            catch
            {
                kernel.Dispose();
                throw;
            }
        }
예제 #27
0
        public static void Register(HttpConfiguration config)
        {
            var container = new UnityContainer();

            MongoClientSettings settings = MongoClientSettings
                                           .FromUrl(new MongoUrl(ConfigurationManager.ConnectionStrings["AniHoDb"].ConnectionString));

            settings.SslSettings = new SslSettings()
            {
                EnabledSslProtocols = SslProtocols.Tls12
            };
            var mongoClient = new MongoClient(settings);

            container.RegisterSingleton <IUserRepository, DbUserRepository>();
            container.RegisterSingleton <IPlaceRepository, DbPlaceRepository>();
            container.RegisterSingleton <IAuthentificator, DbAuthentificator>();
            container.RegisterInstance <IMongoClient>(mongoClient);

            config.DependencyResolver = new UnityResolver(container);
            // Attribute routing
            config.MapHttpAttributeRoutes();

            // Redirect root to Swagger UI
            config.Routes.MapHttpRoute(
                name: "Swagger UI",
                routeTemplate: "",
                defaults: null,
                constraints: null,
                handler: new RedirectHandler(SwaggerDocsConfig.DefaultRootUrlResolver, "swagger/ui/index"));

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
            FluentValidationModelValidatorProvider.Configure(config);
            config.EnableCors();
        }
        public GeolocationControllerFixture()
        {
            dbFixture = new MongoDbFixture();
            GeolocationsCollection = dbFixture.Collection;

            var builder = new ContainerBuilder();

            var config = GlobalConfiguration.Configuration;

            FluentValidationModelValidatorProvider.Configure(config);

            builder.RegisterType <GeolocationController>().AsSelf().SingleInstance();
            // register services
            builder.RegisterType <GeolocationService>().As <IGeolocationService>();
            builder.Register(_ => dbFixture.MongoDbSettings).As <ILocationDbSettings>().SingleInstance();
            builder.Register(_ => dbFixture.MongoClient).As <IMongoClient>().SingleInstance();

            //register mappings
            builder.Register(_ => new MapperConfiguration(cfg => {
                cfg.AddProfile <GeolocationViewModelMappingProfile>();
            }))
            .As <IConfigurationProvider>()
            .SingleInstance();
            builder.Register(c => c.Resolve <IConfigurationProvider>().CreateMapper())
            .As <IMapper>();
            var container = builder.Build();

            scope = container.BeginLifetimeScope();
            try
            {
                Controller = scope.Resolve <GeolocationController>();
            }
            catch (Exception)
            {
                Dispose();
                throw;
            }
        }
예제 #29
0
        protected List <SimpleError> InvokeTest <T>(string input, string contentType = "application/x-www-form-urlencoded")
        {
            const string baseAddress = "http://dummyname/";

            string className = typeof(T).Name;

            // Server
            HttpConfiguration config = new HttpConfiguration();

            config.Routes.MapHttpRoute("Default", "api/{controller}/{action}/{id}", new { id = RouteParameter.Optional });
            config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
            FluentValidationModelValidatorProvider.Configure(config);

            HttpServer server = new HttpServer(config);

            // Client
            HttpMessageInvoker messageInvoker = new HttpMessageInvoker(new InMemoryHttpContentSerializationHandler(server));

            //order to be created
            //			Order requestOrder = new Order() { OrderId = "A101", OrderValue = 125.00, OrderedDate = DateTime.Now.ToUniversalTime(), ShippedDate = DateTime.Now.AddDays(2).ToUniversalTime() };

            HttpRequestMessage request = new HttpRequestMessage();

            request.Content    = new StringContent(input, Encoding.UTF8, contentType);          /* JsonContent(@"{
                                                                                                 * SomeBool:'false',
                                                                                                 * Id:0}");
                                                                                                 */
            request.RequestUri = new Uri(baseAddress + "api/Test/" + className);
            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
            request.Method = HttpMethod.Post;

            CancellationTokenSource cts = new CancellationTokenSource();

            using (HttpResponseMessage response = messageInvoker.SendAsync(request, cts.Token).Result) {
                var errors = response.Content.ReadAsAsync <List <SimpleError> >().Result;
                return(errors);
            }
        }
예제 #30
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();
            config.EnableSystemDiagnosticsTracing();


            config.Routes.MapHttpRoute(
                name: "API Default",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );


            GlobalConfiguration.Configuration.Services.RemoveAll(
                typeof(System.Web.Http.Validation.ModelValidatorProvider),
                v => v is InvalidModelValidatorProvider);

            var json = config.Formatters.JsonFormatter;

            json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
            config.Formatters.Remove(config.Formatters.XmlFormatter);

            config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling      = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
            config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;

            config.Filters.Add(new ValidateModelStateFilter());

            FluentValidationModelValidatorProvider.Configure();
        }