Пример #1
0
        public static HttpConfiguration ConfigureWebApi(this HttpConfiguration httpConfiguration, IContainer container)
        {
            httpConfiguration.Services.Replace(typeof(IHttpControllerTypeResolver), new WebApiControllerTypeResolver());
            httpConfiguration.MapHttpAttributeRoutes(new RouteProvider());
            httpConfiguration.Routes.Add("NotFoundApi", new HttpRoute("api/{*url}", new HttpRouteValueDictionary(new
            {
                controller = "Error",
                action     = "NotFound"
            })));
            httpConfiguration.EnableCors(new EnableCorsAttribute("*", "*", "*"));
            httpConfiguration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
            httpConfiguration.Formatters.JsonFormatter.SerializerSettings.ContractResolver  = new CamelCasePropertyNamesContractResolver();
            httpConfiguration.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            var factory            = container.Resolve <IValidatorFactory>();
            var validationPipeline = new ValidationPipeline(factory);
            var validationFilter   = new FluentValidationWebApiValidationAttribute(validationPipeline);

            httpConfiguration.Filters.Add(validationFilter);
            var modelValidationServices = httpConfiguration.Services.GetServices(typeof(ModelValidatorProvider));

            foreach (var modelValidationService in modelValidationServices)
            {
                httpConfiguration.Services.Remove(typeof(ModelValidatorProvider), modelValidationService);
            }
            return(httpConfiguration);
        }
Пример #2
0
        public async Task Pipeline_should_fail_if_request_is_not_valid(
            Request request,
            Mock <IValidator <Request> > validator)
        {
            validator.Setup(v => v.ValidateAsync(request, default))
            .ReturnsAsync(
                new ValidationResult(
                    new List <ValidationFailure>()
            {
                new ValidationFailure("", "")
            }));

            var handler = new ValidationPipeline <Request, Response>(validator.Object);

            Func <Task <Response> > test = () =>
                                           handler.Handle(request, default, Next);