private static ChildKernel CreateAuthKernel(IResolutionRoot parent)
        {
            var kernel = new ChildKernel(parent, new ServerModule(), new AuthServerModule());

            kernel.Rebind <IPacketCodeTable>().To <AuthPacketCodeTableV75>().InSingletonScope();
            kernel.Rebind <IAuthenticator>().To <StubAuthenticator>().InSingletonScope();
            kernel.Rebind <IAccountProvider>().To <StubAccountProvider>().InSingletonScope();
            return(kernel);
        }
示例#2
0
        public virtual IChildKernel GetChildKernel(IKernel parentKernel, IList <Type> excludedTypes = null)
        {
            var kernel = new ChildKernel(parentKernel);

            ApplyAutoBindings(kernel, excludedTypes);
            kernel.Rebind <IKernelFactory>().ToConstant(this);
            return(kernel);
        }
示例#3
0
        private void ConfigureWebApi(IAppBuilder app, IResolutionRoot resolutionRoot)
        {
            var config = new HttpConfiguration();

            var kernel = new ChildKernel(resolutionRoot);

            kernel.Rebind <HttpConfiguration>().ToConstant(config);
            kernel.Bind <DefaultModelValidatorProviders>().ToConstant(new DefaultModelValidatorProviders(config.Services.GetServices(typeof(ModelValidatorProvider)).Cast <ModelValidatorProvider>()));
            kernel.Bind <DefaultFilterProviders>().ToConstant(new DefaultFilterProviders(config.Services.GetServices(typeof(IFilterProvider)).Cast <IFilterProvider>()));

            var dependencyResolver = new NinjectDependencyResolver(kernel);

            config.DependencyResolver = dependencyResolver;

            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.Remove(config.Formatters.XmlFormatter);

            config.EnableCors(new EnableCorsAttribute("http://localhost:8081", "*", "*", "Cookie")
            {
                SupportsCredentials = true
            });

            var constraintResolver = new DefaultInlineConstraintResolver();

            constraintResolver.ConstraintMap.Add("situation", typeof(SituationConstraint));

            config.MapHttpAttributeRoutes(constraintResolver);

            config.Routes.MapHttpRoute("Default", "{controller}/{id}");

            config.EnableSwagger(c =>
            {
                var baseDirectory    = AppDomain.CurrentDomain.BaseDirectory;
                var commentsFileName = Assembly.GetExecutingAssembly().GetName().Name + ".XML";
                var commentsFile     = Path.Combine(baseDirectory, "bin", commentsFileName);

                c.IncludeXmlComments(commentsFile);
                c.RootUrl(h => $"{h.RequestUri.Scheme}://{h.RequestUri.Host}:{h.RequestUri.Port}/api");
                c.SingleApiVersion("v1", "Michael's Place SPA API.");
            })
            .EnableSwaggerUi();

            app.Map("/api", webApi =>
            {
                webApi.UseWebApi(config);
            });
        }