Ejemplo n.º 1
0
        public static void Register(HttpConfiguration config)
        {
            // attribute routing
            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("idorcurrent", typeof(IdOrCurrentConstraint));
            constraintResolver.ConstraintMap.Add("deviceGuid", typeof(DeviceGuidConstraint));
            config.MapHttpAttributeRoutes(constraintResolver);

            // use JSON by default
            var xmlMediaTypes = config.Formatters.XmlFormatter.SupportedMediaTypes;
            xmlMediaTypes.Remove(xmlMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml"));

            // set proper JSON formatting
            var jsonFormatter = config.Formatters.JsonFormatter;
            jsonFormatter.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-ddTHH:mm:ss.ffffff" });

            // message handlers
            var kernel = (IKernel)config.DependencyResolver.GetService(typeof(IKernel));
            config.MessageHandlers.Add(kernel.Get<XHttpMethodDelegatingHandler>());

            // action selector which handles options method
            config.Services.Replace(typeof(IHttpActionSelector), kernel.Get<ActionSelector>());

            // global filters
            config.Filters.Add(kernel.Get<HandleExceptionAttribute>());
            config.Filters.Add(kernel.Get<AuthenticationFilter>());
            config.Filters.Add(kernel.Get<AllowCrossDomainOrigin>());
        }
 private static void ConfigRouting(HttpConfiguration config)
 {
     var constraintsResolver = new DefaultInlineConstraintResolver();
     constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof (ApiVersionConstraint));
     config.MapHttpAttributeRoutes(constraintsResolver);
     config.Services.Replace(typeof (IHttpControllerSelector), new NamespaceHttpControllerSelector(config));
 }
Ejemplo n.º 3
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            // Configure Web API to use only bearer token authentication.
            config.SuppressDefaultHostAuthentication();
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
            config.Filters.Add(new NotImplExceptionFilterAttribute());
            config.Filters.Add(new ValidateModelAttribute());

            // Web API routes
            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("nonezero", typeof(NoneZeroConstraint));
            config.MapHttpAttributeRoutes(constraintResolver);

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

            config.Formatters.Add(new ProductCsvFormatter());
            config.EnableQuerySupport();

            //var provider = new SimpleModelBinderProvider(typeof(Product), new ProductModelBinder());
            //config.Services.Insert(typeof(ModelBinderProvider), 0, provider);

            DtoMapperConfig.CreateMaps();
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            var constraintsResolver = new DefaultInlineConstraintResolver();
            constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof(ApiVersionConstraint));
            config.MapHttpAttributeRoutes(constraintsResolver);
            config.Services.Replace(typeof(IHttpControllerSelector),new NamespaceHttpControllerSelector(config));

            //config.EnableSystemDiagnosticsTracing();
            config.Services.Replace(typeof(ITraceWriter),new SimpleTraceWriter(WebContainerManager.Get<ILogManager>()));
            config.Services.Add(typeof(IExceptionLogger),new SimpleExceptionLogger(WebContainerManager.Get<ILogManager>()));
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());





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

            //config.Routes.MapHttpRoute(
            //    name: "DefaultApi",
            //    routeTemplate: "api/{controller}/{id}",
            //    defaults: new { id = RouteParameter.Optional }
            //);
        }
 private static decimal GetPrecedence(string attributeRouteTemplate)
 {
     DefaultInlineConstraintResolver resolver = new DefaultInlineConstraintResolver();
     HttpRouteValueDictionary defaults = new HttpRouteValueDictionary();
     HttpRouteValueDictionary constraints = new HttpRouteValueDictionary();
     string standardRouteTemplate = InlineRouteTemplateParser.ParseRouteTemplate(attributeRouteTemplate,
         defaults, constraints, new DefaultInlineConstraintResolver());
     HttpParsedRoute parsedRoute = HttpRouteParser.Parse(standardRouteTemplate);
     return parsedRoute.GetPrecedence(constraints);
 }
        public MonitoringTestExecutionForAttributedRoutedTests()
        {
            configuration = new HttpConfiguration();
            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("among", typeof (AmongConstraint));
            configuration.MapHttpAttributeRoutes(constraintResolver);
            configuration.MapTestRoutes();
            configuration.EnsureInitialized();

            var server = new HttpServer(configuration);
            apiClient = new HttpClient(server);
        }
Ejemplo n.º 7
0
        public static void Register(HttpConfiguration config)
        {
            config.EnableSystemDiagnosticsTracing();
            //config.Services.Replace(typeof(ITraceWriter),new SimpleTraceWriter());

            var constraintsResolver = new DefaultInlineConstraintResolver();
            constraintsResolver.ConstraintMap.Add("apiVersionConstraint",
                                        typeof(ApiVersionConstraint));

            config.MapHttpAttributeRoutes(constraintsResolver);

            config.Services.Replace(typeof(IHttpControllerSelector),
                                    new NamespaceHttpControllerSelector(config));
        }
        public Metadata Generate()
        {
            var httpConfiguration = new HttpConfiguration();

            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("idorcurrent", typeof(IdOrCurrentConstraint));
            constraintResolver.ConstraintMap.Add("deviceGuid", typeof(DeviceGuidConstraint));
            httpConfiguration.MapHttpAttributeRoutes(constraintResolver);

            httpConfiguration.EnsureInitialized();

            var apiExplorer = httpConfiguration.Services.GetApiExplorer();
            var metadata = new Metadata
            {
                Resources = apiExplorer.ApiDescriptions
                    .OrderBy(d => d.ActionDescriptor.ControllerDescriptor.ControllerName)
                    .Select(d => new { Resource = GetResourceInfo(d), Method = d })
                    .Where(d => d.Resource != null)
                    .GroupBy(d => d.Resource, d => d.Method)
                    .Select(g => new
                    {
                        Resource = g.Key,
                        Methods = g.GroupBy(m =>
                            GetMethodName((ReflectedHttpActionDescriptor)m.ActionDescriptor)).Select(m => m.First()).ToList(),
                    })
                    .Select(cd => new MetadataResource
                    {
                        Name = cd.Resource.Name,
                        Documentation = cd.Resource.Description,
                        Properties = cd.Resource.Type == null ? null : _helper.GetTypeParameters(cd.Resource.Type),
                        Methods = cd.Methods
                            .Where(m => GetMethodName((ReflectedHttpActionDescriptor)m.ActionDescriptor) != null)
                            .Select(m => new MetadataMethod
                            {
                                Name = GetMethodName((ReflectedHttpActionDescriptor)m.ActionDescriptor),
                                Documentation = GetMethodDocumentation((ReflectedHttpActionDescriptor)m.ActionDescriptor),
                                Verb = m.HttpMethod.Method,
                                Uri = "/" + m.RelativePath,
                                UriParameters = GetUrlParameters(m),
                                Authorization = GetAuthorization(m.ActionDescriptor),
                                RequestDocumentation = GetRequestDocumentation((ReflectedHttpActionDescriptor)m.ActionDescriptor),
                                RequestParameters = GetRequestParameters((ReflectedHttpActionDescriptor)m.ActionDescriptor),
                                ResponseDocumentation = GetResponseDocumentation((ReflectedHttpActionDescriptor)m.ActionDescriptor),
                                ResponseParameters = GetResponseParameters((ReflectedHttpActionDescriptor)m.ActionDescriptor),
                            }).ToArray(),
                    }).ToArray(),
            };

            return metadata;
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            DefaultInlineConstraintResolver constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("culture", typeof(CultureRouteConstraint));
            config.MapHttpAttributeRoutes(constraintResolver);

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
Ejemplo n.º 10
0
 public static void Register(HttpConfiguration config)
 {
     //config.EnableSystemDiagnosticsTracing(); // replaced by custom writer
     var constraintsResolver = new DefaultInlineConstraintResolver();
     constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof
     (ApiVersionConstraint));
     config.MapHttpAttributeRoutes(constraintsResolver);
     config.Services.Replace(typeof(IHttpControllerSelector),
     new NamespaceHttpControllerSelector(config));
     config.Services.Replace(typeof(ITraceWriter), new SimpleTraceWriter(
         WebContainerManager.Get<ILogManager>()));
     config.Services.Add(typeof(IExceptionLogger),new SimpleExceptionLogger(
         WebContainerManager.Get<ILogManager>()));
     config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
 }
Ejemplo n.º 11
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Register the SegmentPrefixConstraint for matching an exact segment prefix.
            DefaultInlineConstraintResolver constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("SegmentPrefix", typeof(SegmentPrefixConstraint));

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

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

            config.Routes.MapHttpRoute(
                name: "ServicePathApi3",
                routeTemplate: "api/{object1}/{id1}/{object2}/{id2}/{object3}/{id3}/{controller}"
            );

            config.Routes.MapHttpRoute(
                name: "ServicePathApi2",
                routeTemplate: "api/{object1}/{id1}/{object2}/{id2}/{controller}"
            );

            config.Routes.MapHttpRoute(
                name: "ServicePathApi1",
                routeTemplate: "api/{object1}/{id1}/{controller}"
            );

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

            config.MessageHandlers.Add(new MethodOverrideHandler());

            config.Services.Replace(typeof(IHttpControllerTypeResolver), new ServiceProviderHttpControllerTypeResolver());

            FieldInfo suffix = typeof(DefaultHttpControllerSelector).GetField("ControllerSuffix", BindingFlags.Static | BindingFlags.Public);
            if (suffix != null) suffix.SetValue(null, "Provider");

            // Replace the default controller selector with a custom one which recognises matrix parameters.
            config.Services.Replace(typeof(IHttpControllerSelector), new ServiceProviderHttpControllerSelector(config));
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            // Register the SegmentPrefixConstraint for matching an exact segment prefix.
            DefaultInlineConstraintResolver constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("SegmentPrefix", typeof(SegmentPrefixConstraint));

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

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Registers routes for Web API.
        /// </summary>
        public static void RegisterApiRoutes(HttpConfiguration config)
        {
            webApiRoute.DefaultInlineConstraintResolver constraintsResolver = new webApiRoute.DefaultInlineConstraintResolver();

              Dictionary<string, Type> foundConstraintTypes = GetConstraintTypes();
              foreach (string name in foundConstraintTypes.Keys)
            constraintsResolver.ConstraintMap.Add(name, foundConstraintTypes[name]);

              config.MapHttpAttributeRoutes(constraintsResolver);

              config.Routes.MapHttpRoute(
              name: "DefaultApi",
              routeTemplate: "api/{controller}/{id}",
              defaults: new { id = RouteParameter.Optional }
              );
        }
Ejemplo n.º 14
0
        private static HttpResponseMessage ReqestTestsHtml(string testUiScript = null)
        {
            configuration = new HttpConfiguration();
            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("among", typeof(AmongConstraint));
            configuration.MapHttpAttributeRoutes(constraintResolver);
            configuration.MapTestRoutes(testUiScriptUrl: testUiScript);
            configuration.EnsureInitialized();

            var server = new HttpServer(configuration);
            apiClient = new HttpClient(server);
            
            var request = new HttpRequestMessage(HttpMethod.Get, "http://blammo.com/tests/");
            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("text/html"));
            var response = apiClient.SendAsync(request).Result;
            return response;
        }
Ejemplo n.º 15
0
        public static void Register(HttpConfiguration config)
        {
            //            // Web API configuration and services
            //            // Configure Web API to use only bearer token authentication.
            //            config.SuppressDefaultHostAuthentication();
            //            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            var constraintsResolver = new DefaultInlineConstraintResolver();
            constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof(ApiVersionConstraint));
            config.MapHttpAttributeRoutes(constraintsResolver);

            config.Services.Replace(typeof(IHttpControllerSelector), new NamespaceHttpControllerSelector(config));
            config.EnableSystemDiagnosticsTracing();

            config.Services.Add(typeof(IExceptionLogger), new SimpleExceptionLogger(WebContainerManager.Get<ILogManager>()));
            config.Services.Replace(typeof(ITraceWriter), new SimpleTraceWriter(WebContainerManager.Get<ILogManager>()));
            config.Services.Replace(typeof (IExceptionHandler), new GlobalExceptionHandler());
        }
Ejemplo n.º 16
0
        internal static void Register(HttpConfiguration config)
        {
            // IOC container
            var container = new UnityContainer();
            config.DependencyResolver = new UnityResolver(container);

            // IOC resolution
            Resolver resolver = new Resolver();
            resolver.RegisterTypes(container);

            // Logger
            var logger = container.Resolve<ILoggingComponent>();
            logger.LogInfo(MethodBase.GetCurrentMethod(), "Web Api configuration started.");

            //var cors = new EnableCorsAttribute("localhost:50937,localhost:80", "*", "*");
            var cors = new EnableCorsAttribute("*", "*", "*");
            config.EnableCors(cors);

            // Ignore any authentication which happens before the Web API pipeline (by ISS or OWIN).  This restricts the API to only authenticate using bearer tokens.
            config.SuppressDefaultHostAuthentication();

            // Enable authentication using bearer tokens
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            // Custom route constraints
            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("deviceState", typeof(DeviceStateRouteConstraint));
            constraintResolver.ConstraintMap.Add("companyId", typeof(CompanyIdRouteConstraint));
            constraintResolver.ConstraintMap.Add("macAddress", typeof(MacAddressRouteConstraint));

            // API attribute routing
            config.MapHttpAttributeRoutes(constraintResolver);

            // API action filters
            config.Filters.Add(new LogAttribute("PortalApi", 200));
            config.Filters.Add(new ValidateModelStateAttribute());
            config.Filters.Add(new GlobalExceptionFilterAttribute(logger));

            // API formatters
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());

            logger.LogInfo(MethodBase.GetCurrentMethod(), "Web Api configuration complete.");
        }
Ejemplo n.º 17
0
        private static void ConfigureRouting(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "legacyRoute",
                routeTemplate: "TeamTaskService.asmx",
                defaults: null,
                constraints: null,
                handler: new LegacyAuthenticationMessageHandler(WebContainerManager.Get<ILogManager>())
                {
                    InnerHandler = new LegacyMessageHandler {InnerHandler = new HttpControllerDispatcher(config)}
                });

            var constraintsResolver = new DefaultInlineConstraintResolver();
            constraintsResolver.ConstraintMap.Add("apiVersionConstraint", typeof (ApiVersionConstraint));
            config.MapHttpAttributeRoutes(constraintsResolver);

            config.Services.Replace(typeof (IHttpControllerSelector),
                new NamespaceHttpControllerSelector(config));
        }
Ejemplo n.º 18
0
        public static void Register(HttpConfiguration config)
        {
            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("apiVersionConstraint", typeof(ApiVersionConstraint));

            config.EnableCors();

            config.MapHttpAttributeRoutes(constraintResolver);

            // Register custom implementations with the framework
            config.Services.Replace(
                typeof(IHttpControllerSelector),
                new NamespaceHttpControllerSelector(config));
            config.Services.Replace(
                typeof(ITraceWriter),
                new SimpleTraceWriter(WebContainerManager.Get<ILogManager>()));
            config.Services.Replace(
                typeof(IExceptionLogger),
                new SimpleExceptionLogger(WebContainerManager.Get<ILogManager>()));
            config.Services.Replace(
                typeof(IExceptionHandler),
                new GlobalExceptionHandler());
        }
Ejemplo n.º 19
0
        public void Configuration(IAppBuilder appBuilder)
        {
            var config = new HttpConfiguration();

            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("email", typeof(EmailRouteConstraint));
            config.MapHttpAttributeRoutes(constraintResolver);

            config.Routes.MapHttpRoute(
                name: "Email",
                routeTemplate: "{controller}/email/{text}",
                constraints: new { text = new EmailRouteConstraint() },
                defaults: null
            );

            config.Routes.MapHttpRoute(
                name: "Alpha",
                routeTemplate: "{controller}/alpha/{text}",
                constraints: new { text = new AlphaRouteConstraint() },
                defaults: null
            );

            appBuilder.UseWebApi(config);
        }
        public void ResolveConstraint_DecimalConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("decimal");

            Assert.IsType <DecimalHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_DateTimeConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("datetime");

            Assert.IsType <DateTimeHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_GuidConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("guid");

            Assert.IsType <GuidHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_DoubleConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("double");

            Assert.IsType <DoubleHttpRouteConstraint>(constraint);
        }
Ejemplo n.º 24
0
        public static void BuildWithContainer(IAppBuilder app, Container container, bool registerExceptionlessClient = true) {
            if (container == null)
                throw new ArgumentNullException("container");

            // if enabled, auto upgrade the database
            if (Settings.Current.ShouldAutoUpgradeDatabase) {
                var url = new MongoUrl(Settings.Current.MongoConnectionString);
                string databaseName = url.DatabaseName;
                if (Settings.Current.AppendMachineNameToDatabase)
                    databaseName += String.Concat("-", Environment.MachineName.ToLower());

                MongoMigrationChecker.EnsureLatest(Settings.Current.MongoConnectionString, databaseName);
            }

            Config = new HttpConfiguration();
            Config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
            Config.Formatters.Remove(Config.Formatters.XmlFormatter);
            Config.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
            Config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new LowerCaseUnderscorePropertyNamesContractResolver();

            var constraintResolver = new DefaultInlineConstraintResolver();
            constraintResolver.ConstraintMap.Add("objectid", typeof(ObjectIdRouteConstraint));
            constraintResolver.ConstraintMap.Add("objectids", typeof(ObjectIdsRouteConstraint));
            Config.MapHttpAttributeRoutes(constraintResolver);
            //config.EnableSystemDiagnosticsTracing();

            container.RegisterSingle<JsonSerializer>(JsonSerializer.Create(new JsonSerializerSettings { ContractResolver = new SignalRContractResolver() }));
            container.RegisterWebApiFilterProvider(Config);

            try {
                container.Verify();
            } catch (Exception ex) {
                var tempEx = ex;
                while (!(tempEx is ReflectionTypeLoadException)) {
                    if (tempEx.InnerException == null)
                        break;
                    tempEx = tempEx.InnerException;
                }

                var typeLoadException = tempEx as ReflectionTypeLoadException;
                if (typeLoadException != null) {
                    foreach (var loaderEx in typeLoadException.LoaderExceptions)
                        Debug.WriteLine(loaderEx.Message);
                }

                Debug.WriteLine(ex.Message);
                throw;
            }

            Config.MessageHandlers.Add(container.GetInstance<XHttpMethodOverrideDelegatingHandler>());
            Config.MessageHandlers.Add(container.GetInstance<EncodingDelegatingHandler>());
            Config.MessageHandlers.Add(container.GetInstance<AuthTokenMessageHandler>());

            // Throttle api calls to X every 15 minutes by IP address.
            Config.MessageHandlers.Add(container.GetInstance<ThrottlingHandler>());

            // Reject event posts in orgs over their max event limits.
            Config.MessageHandlers.Add(container.GetInstance<OverageHandler>());

            app.UseCors(CorsOptions.AllowAll);

            app.CreatePerContext<Lazy<User>>("User", ctx => new Lazy<User>(() => {
                if (ctx.Request.User == null || ctx.Request.User.Identity == null || !ctx.Request.User.Identity.IsAuthenticated)
                    return null;

                string userId = ctx.Request.User.GetUserId();
                if (String.IsNullOrEmpty(userId))
                    return null;

                var userRepository = container.GetInstance<IUserRepository>();
                return userRepository.GetById(userId, true);
            }));

            app.CreatePerContext<Lazy<Project>>("DefaultProject", ctx => new Lazy<Project>(() => {
                if (ctx.Request.User == null || ctx.Request.User.Identity == null || !ctx.Request.User.Identity.IsAuthenticated)
                    return null;

                string projectId = ctx.Request.User.GetDefaultProjectId();
                var projectRepository = container.GetInstance<IProjectRepository>();

                if (String.IsNullOrEmpty(projectId))
                    return projectRepository.GetByOrganizationIds(ctx.Request.User.GetOrganizationIds(), useCache: true).FirstOrDefault();

                return projectRepository.GetById(projectId, true);
            }));

            if (registerExceptionlessClient) {
                ExceptionlessClient.Default.RegisterWebApi(Config);
                Config.Services.Add(typeof(IExceptionLogger), new ExceptionlessExceptionLogger());
            }

            app.UseWebApi(Config);
            app.MapSignalR("/api/v2/push", new HubConfiguration { Resolver = new SimpleInjectorSignalRDependencyResolver(container) });

            PhysicalFileSystem fileSystem = null;
            var root = AppDomain.CurrentDomain.BaseDirectory;
            if (Directory.Exists(Path.Combine(root, "./Content")))
                fileSystem = new PhysicalFileSystem(Path.Combine(root, "./Content"));
            if (Directory.Exists(Path.Combine(root, "./bin/Content")))
                fileSystem = new PhysicalFileSystem(Path.Combine(root, "./bin/Content"));

            if (fileSystem != null)
                app.UseFileServer(new FileServerOptions { FileSystem = fileSystem });

            Mapper.Configuration.ConstructServicesUsing(container.GetInstance);

            // TODO: Figure out what data we want to create when the db is empty in production mode.
            if (Settings.Current.WebsiteMode == WebsiteMode.Dev)
                EnsureSampleData(container);

            var context = new OwinContext(app.Properties);
            var token = context.Get<CancellationToken>("host.OnAppDisposing");

            if (Settings.Current.EnableJobsModule) {
                Run.InBackground(t => container.GetInstance<ProcessEventPostsJob>().Run(token), token);
                Run.InBackground(t => container.GetInstance<ProcessEventUserDescriptionsJob>().Run(token), token);
                Run.InBackground(t => container.GetInstance<ProcessMailMessageJob>().Run(token), token);
                Run.InBackground(t => container.GetInstance<DailyNotificationJob>().Run(token), token);
                Run.InBackground(t => container.GetInstance<EnforceRetentionLimitsJob>().Run(token), token);
                Run.InBackground(t => container.GetInstance<RemoveStaleAccountsJob>().Run(token), token);
            }
        }
        public void ResolveConstraint_IntConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("int");

            Assert.IsType <IntHttpRouteConstraint>(constraint);
        }
Ejemplo n.º 26
0
 private static void SetupRouteConstraints(HttpConfiguration config) {
     var constraintResolver = new DefaultInlineConstraintResolver();
     constraintResolver.ConstraintMap.Add("objectid", typeof(ObjectIdRouteConstraint));
     constraintResolver.ConstraintMap.Add("objectids", typeof(ObjectIdsRouteConstraint));
     constraintResolver.ConstraintMap.Add("token", typeof(TokenRouteConstraint));
     constraintResolver.ConstraintMap.Add("tokens", typeof(TokensRouteConstraint));
     config.MapHttpAttributeRoutes(constraintResolver);
 }
 public HttpRouteFactory(string prefix = "api")
 {
     var constraintResolver = new DefaultInlineConstraintResolver();
     List<HttpActionDescriptor> actionDescriptors = new List<HttpActionDescriptor>();
     _routeFactoryContext = new DirectRouteFactoryContext(prefix, actionDescriptors, constraintResolver, false);
 }
        protected virtual HttpConfiguration ConfigureWebApi()
        {
            var config = new HttpConfiguration();

            config.Formatters.Clear();
            config.Formatters.Add(JsonFormat.Formatter);

            config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.LocalOnly;
            config.Filters.Add(new ApiExceptionFilter());

            ConfigureRoutes(config.Routes);

            // Use Attribute routing
            var resolver = new DefaultInlineConstraintResolver();
            ConfigureAttributeRouting(resolver);
            config.MapHttpAttributeRoutes(resolver);

#if DEBUG
            config.Services.Replace(
                typeof(IHttpActionInvoker),
                new DebugActionInvoker(config.Services.GetActionInvoker()));

            config.Services.Replace(
                typeof(IHttpActionSelector),
                new DebugActionSelector(config.Services.GetActionSelector()));

            config.Services.Replace(
                typeof(IHttpControllerSelector),
                new DebugControllerSelector(config.Services.GetHttpControllerSelector()));
#endif

            return config;
        }
        public void ResolveConstraint_DecimalConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("decimal");

            Assert.IsType<DecimalHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_DoubleConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("double");

            Assert.IsType<DoubleHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_GuidConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("guid");

            Assert.IsType<GuidHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_IntConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("int");

            Assert.IsType<IntHttpRouteConstraint>(constraint);
        }
Ejemplo n.º 33
0
 protected override void ConfigureAttributeRouting(DefaultInlineConstraintResolver resolver)
 {
     base.ConfigureAttributeRouting(resolver);
     resolver.ConstraintMap.Add("invocationListCriteria", typeof(EnumConstraint<InvocationListCriteria>));
 }
 protected virtual void ConfigureAttributeRouting(DefaultInlineConstraintResolver resolver)
 {
 }
        public void ResolveConstraint_BoolConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("bool");

            Assert.IsType <BoolHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_LongRangeConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("long");

            Assert.IsType <LongHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_AlphaConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("alpha");

            Assert.IsType <AlphaHttpRouteConstraint>(constraint);
        }
        public void ResolveConstraint_LengthConstraint()
        {
            IHttpRouteConstraint constraint = new DefaultInlineConstraintResolver().ResolveConstraint("length(5)");

            Assert.IsType<LengthHttpRouteConstraint>(constraint);
            Assert.Equal(5, ((LengthHttpRouteConstraint)constraint).Length);
        }