internal static void Register(HttpConfiguration config) { var container = new UnityContainer(); config.DependencyResolver = new UnityResolver(container); Resolver resolver = new Resolver(); resolver.RegisterTypes(container); config.MapHttpAttributeRoutes(); config.Filters.Add(new GenericExceptionFilterAttribute()); config.Filters.Add(new LogAttribute("SignboardApi", 500)); }
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."); }