Пример #1
0
        public static IMvcBuilder AddCrazyPriceValidation(this IMvcBuilder mvcBuilder)
        {
            mvcBuilder.AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining <SearchCriteriaValidator>());
            mvcBuilder.AddJsonOptions(opts =>
            {
                opts.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
                opts.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
            });

            mvcBuilder.Services.Configure <ApiBehaviorOptions>(options =>
            {
                options.InvalidModelStateResponseFactory = context =>
                {
                    var(key, value) =
                        context.ModelState.First(e => e.Value.ValidationState == ModelValidationState.Invalid);

                    var error = value.Errors[0].ErrorMessage;

                    #region ForPrimitiveType
                    // Needed if the controller gets a primitive type like string or int etc.
                    if (error.Contains("''"))
                    {
                        error = error.Replace("''", $"'{key}'");
                    }
                    #endregion

                    return(new BadRequestObjectResult(error));
                };
            });

            return(mvcBuilder);
        }
Пример #2
0
        /// <summary>
        /// 添加FluentValidation
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="services"></param>
        /// <returns></returns>
        public static IMvcBuilder AddValidation(this IMvcBuilder builder, IServiceCollection services)
        {
            builder.AddFluentValidation();

            services.AddTransient <IValidator <SysUser>, UserValidator>();
            return(builder);
        }
Пример #3
0
 public static IMvcBuilder AddValidation(this IMvcBuilder builder)
 {
     builder
     .AddFluentValidation(configuration =>
                          configuration.RegisterValidatorsFromAssembly(Assembly.GetExecutingAssembly()));
     return(builder);
 }
Пример #4
0
 public static void AddValidationDependencies(this IMvcBuilder mvcBuilder)
 {
     mvcBuilder.AddFluentValidation(opt =>
     {
         opt.RegisterValidatorsFromAssemblyContaining <ProductCreateDtoValidator>();
     });
 }
 /// <summary>
 /// Adds and configures FluentValidation for Mvc.
 /// </summary>
 public static IMvcBuilder AddAndConfigureFluentValidation(this IMvcBuilder mvcBuilder)
 {
     return(mvcBuilder.AddFluentValidation(configuration => {
         GetReferencedAssemblies().ToList()
         .ForEach(a => configuration.RegisterValidatorsFromAssembly(a));
     }));
 }
 public static IMvcBuilder UseCityApiFluentValidation(this IMvcBuilder mvcBuilder)
 {
     mvcBuilder.AddFluentValidation(x => {
         x.ImplicitlyValidateChildProperties = true;
     });
     return(mvcBuilder);
 }
        public static IMvcBuilder ConfigureFluentValidation(this IMvcBuilder mvcBuilder)
        {
            mvcBuilder.AddFluentValidation(fv =>
                                           fv.RegisterValidatorsFromAssemblyContaining <AddDepartmentCommandValidation>());

            return(mvcBuilder);
        }
 public static void AddFluentValidationServices(this IMvcBuilder mvcBuilder)
 {
     mvcBuilder.AddFluentValidation(fv =>
     {
         fv.RegisterValidatorsFromAssemblyContaining <CreateProductValidator>();
     });
 }
 public static void AddValidationDependencies(this IMvcBuilder mvcBuilder)
 {
     mvcBuilder.AddFluentValidation(opt =>
     {
         opt.RegisterValidatorsFromAssemblyContaining <LoginViewModel>();
     });
 }
        public static IServiceCollection AddValidation(this IServiceCollection services, IMvcBuilder mvcBuilder)
        {
            mvcBuilder.AddFluentValidation(
                cfg =>
            {
                cfg.ConfigureClientsideValidation(x =>
                {
                    x.Add(typeof(GreaterThanOrEqualValidator), (context, rule, validator) =>
                          new GreatherThanOrEqualPropertyValidator(rule, validator));

                    x.Add(typeof(GreaterThanValidator), (context, rule, validator) =>
                          new GreatherThanPropertyValidator(rule, validator));

                    x.Add(typeof(LessThanValidator), (context, rule, validator) =>
                          new LessThanPropertyValidator(rule, validator));

                    x.Add(typeof(LessThanOrEqualValidator), (context, rule, validator) =>
                          new LessThanOrEqualPropertyValidator(rule, validator));
                });
                cfg.RegisterValidatorsFromAssemblyContaining <Startup>();
            }
                );

            return(services);
        }
Пример #11
0
 private static IMvcBuilder RegisterValidators(this IMvcBuilder builder) => builder.AddFluentValidation(fv => fv
                                                                                                        .RegisterValidatorsFromAssemblyContaining <RegisterRequestValidator>()
                                                                                                        .RegisterValidatorsFromAssemblyContaining <LoginRequestValidator>()
                                                                                                        .RegisterValidatorsFromAssemblyContaining <QueryStringParamsValidator <QueryStringParams> >()
                                                                                                        .RegisterValidatorsFromAssemblyContaining <ResourceSaveRequestValidator>()
                                                                                                        .RegisterValidatorsFromAssemblyContaining <OperationRequestValidator>()
                                                                                                        .RegisterValidatorsFromAssemblyContaining <CyclicOperationRequestValidator>()
                                                                                                        .RegisterValidatorsFromAssemblyContaining <OperationCategoriesRequestValidator>());
Пример #12
0
 public static IMvcBuilder AddContractValidators(this IMvcBuilder builder)
 {
     return(builder.AddFluentValidation(opt =>
     {
         opt.ImplicitlyValidateChildProperties = true;
         opt.RegisterValidatorsFromAssembly(Assembly.GetExecutingAssembly());
     }));
 }
 public static IMvcBuilder ConfigureFluentValidation(this IMvcBuilder mvcBuilder)
 {
     return(mvcBuilder.AddFluentValidation(options =>
     {
         options.RegisterValidatorsFromAssemblyContaining <LoginModelValidation>();
         options.RunDefaultMvcValidationAfterFluentValidationExecutes = false;
     }));
 }
 public static IMvcBuilder AddFluentValidation(this IMvcBuilder builder)
 {
     return(builder.AddFluentValidation(fv =>
     {
         fv.RegisterValidatorsFromAssemblyContaining <RegisterCaretakerRequestValidator>();
         fv.RegisterValidatorsFromAssemblyContaining <RegisterCaretakerDto>();
     }));
 }
Пример #15
0
        public static IMvcBuilder AddDtoValidation(this IMvcBuilder builder, Type startupType)
        {
            builder.AddFluentValidation(fvc =>
                                        fvc.RegisterValidatorsFromAssemblyContaining(startupType));


            return(builder);
        }
 public static void AddFluentValidation(this IMvcBuilder builder)
 {
     builder.AddFluentValidation(x =>
     {
         x.RegisterValidatorsFromAssemblyContaining <Startup>();
         x.RunDefaultMvcValidationAfterFluentValidationExecutes = false;
     });
 }
Пример #17
0
 public static IMvcBuilder AddDefaultFluentValidation(this IMvcBuilder mvcBuilder, IEnumerable <Assembly> assemblies,
                                                      ServiceLifetime serviceLifetime = ServiceLifetime.Scoped)
 {
     return(mvcBuilder.AddFluentValidation(opt =>
     {
         ConfigureFluentValidationMvc(opt, assemblies, serviceLifetime);
     }));
 }
        public static IMvcBuilder AddNegocioFluentValidation(this IMvcBuilder builder)
        {
            builder.AddFluentValidation(config => {
                config.RegisterValidatorsFromAssembly(Assembly.GetExecutingAssembly());
            });

            return(builder);
        }
Пример #19
0
 public static IMvcBuilder UseIdentitiyApiFluentValidation(this IMvcBuilder mvcBuilder)
 {
     mvcBuilder.AddFluentValidation(x => {
         x.RegisterValidatorsFromAssemblyContaining <Startup>();
         x.ImplicitlyValidateChildProperties = true;
     });
     return(mvcBuilder);
 }
        public static IMvcBuilder AddValidation(this IMvcBuilder services)
        {
            services
            .AddFluentValidation(x =>
                                 x.RegisterValidatorsFromAssemblyContaining <TaxScheduleCreateDtoEnumerableValidator>());

            return(services);
        }
        public static IMvcBuilder AddDefaultValidation(this IMvcBuilder builder)
        {
            builder.AddFluentValidation(config => config.RegisterValidatorsFromAssemblyContaining <Startup>());

            builder.Services.AddSingleton <IConfigureOptions <ApiBehaviorOptions>, ProblemJsonApiBehaviourOptionsSetup>();

            return(builder);
        }
Пример #22
0
 /// <summary>
 /// configuration fluent validation
 /// </summary>
 /// <param name="mvcBuilder"></param>
 public static IMvcBuilder ConfigFluentValidation(this IMvcBuilder mvcBuilder)
 {
     mvcBuilder.AddFluentValidation(fv =>
     {
         fv.RegisterValidatorsFromAssemblyContaining <TodoModelValidation>();
     });
     return(mvcBuilder);
 }
        public static void AddFluentValidators(this IMvcBuilder builder)
        {
            // 通过RegisterValidatorsFromAssemblies来自动注册程序集内的所有验证器
            builder.AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblies(ReflectionUtil.GetAssemblies()));

            // 验证模式设置为遇错即终止
            ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure;
        }
Пример #24
0
        public static IMvcBuilder ConfigureFluentValidation(this IMvcBuilder mvcBuilder)
        => mvcBuilder.AddFluentValidation(v =>
        {
            v.RegisterValidatorsFromAssemblyContaining <SignInRequest>();
            v.RegisterValidatorsFromAssemblyContaining <SignInWithExternalProviderRequest>();
            v.RegisterValidatorsFromAssemblyContaining <SignUpRequest>();
            v.RegisterValidatorsFromAssemblyContaining <ConfirmAccountRequest>();
            v.RegisterValidatorsFromAssemblyContaining <ResetPasswordRequest>();
            v.RegisterValidatorsFromAssemblyContaining <SendResetPasswordCallbackRequest>();

            v.RegisterValidatorsFromAssemblyContaining <GetOfferRequest>();
            v.RegisterValidatorsFromAssemblyContaining <GetOfferToUpdateRequest>();
            v.RegisterValidatorsFromAssemblyContaining <AddOfferRequest>();
            v.RegisterValidatorsFromAssemblyContaining <UpdateOfferRequest>();
            v.RegisterValidatorsFromAssemblyContaining <DeleteOfferRequest>();
            v.RegisterValidatorsFromAssemblyContaining <LikeOfferRequest>();

            v.RegisterValidatorsFromAssemblyContaining <GetUserRequest>();
            v.RegisterValidatorsFromAssemblyContaining <ChangePasswordRequest>();
            v.RegisterValidatorsFromAssemblyContaining <ChangeEmailRequest>();
            v.RegisterValidatorsFromAssemblyContaining <ChangeUsernameRequest>();
            v.RegisterValidatorsFromAssemblyContaining <ChangePhoneNumberRequest>();
            v.RegisterValidatorsFromAssemblyContaining <SetAvatarRequest>();
            v.RegisterValidatorsFromAssemblyContaining <SendChangeEmailCallbackRequest>();
            v.RegisterValidatorsFromAssemblyContaining <FollowUserRequest>();

            v.RegisterValidatorsFromAssemblyContaining <AddOpinionRequest>();
            v.RegisterValidatorsFromAssemblyContaining <DeleteOpinionRequest>();

            v.RegisterValidatorsFromAssemblyContaining <MarkAsReadNotificationRequest>();
            v.RegisterValidatorsFromAssemblyContaining <RemoveNotificationRequest>();

            v.RegisterValidatorsFromAssemblyContaining <GetMessagesThreadRequest>();
            v.RegisterValidatorsFromAssemblyContaining <SendMessageRequest>();
            v.RegisterValidatorsFromAssemblyContaining <LikeMessageRequest>();
            v.RegisterValidatorsFromAssemblyContaining <DeleteMessageRequest>();
            v.RegisterValidatorsFromAssemblyContaining <ReadMessageRequest>();

            v.RegisterValidatorsFromAssemblyContaining <CreateOfferAuctionRequest>();
            v.RegisterValidatorsFromAssemblyContaining <AcceptOfferAuctionRequest>();
            v.RegisterValidatorsFromAssemblyContaining <DenyOfferAuctionRequest>();

            v.RegisterValidatorsFromAssemblyContaining <AddToCartRequest>();
            v.RegisterValidatorsFromAssemblyContaining <RemoveCartItemRequest>();

            v.RegisterValidatorsFromAssemblyContaining <PurchaseOrderRequest>();

            v.RegisterValidatorsFromAssemblyContaining <DeleteOfferPhotoRequest>();

            v.RegisterValidatorsFromAssemblyContaining <StartConnectionRequest>();
            v.RegisterValidatorsFromAssemblyContaining <CloseConnectionRequest>();

            v.RegisterValidatorsFromAssemblyContaining <GetLogsRequest>();

            v.RegisterValidatorsFromAssemblyContaining <ToggleBlockAccountRequest>();

            v.ImplicitlyValidateRootCollectionElements = true;
        });
Пример #25
0
        /// <summary>
        /// 注册MVC服务
        /// </summary>
        /// <param name="services"></param>
        private void AddGobalMvc(IServiceCollection services)
        {
            IMvcBuilder mvcBuilder = services.AddMvc();
            //Csv
            var csvFormatterOptions = new CsvFormatterOptions();

            mvcBuilder.AddMvcOptions(options =>
            {
                options.Filters.AddService(typeof(HandlerExceptionFilter));
                options.InputFormatters.Add(new CsvInputFormatter(csvFormatterOptions));
                options.OutputFormatters.Add(new CsvOutputFormatter(csvFormatterOptions));
                options.FormatterMappings.SetMediaTypeMappingForFormat("csv", MediaTypeHeaderValue.Parse("text/csv"));

                options.RespectBrowserAcceptHeader = true;
                options.InputFormatters.Add(new XmlSerializerInputFormatter());
                options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
            });
            // Force Camel Case to JSON
            mvcBuilder.AddJsonOptions(opts =>
            {
                opts.SerializerSettings.ContractResolver     = new BaseContractResolver();
                opts.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
                opts.SerializerSettings.NullValueHandling    = NullValueHandling.Ignore;
                opts.SerializerSettings.Converters.Add(new TimeSpanConverter());
                opts.SerializerSettings.Converters.Add(new GuidConverter());
                opts.SerializerSettings.Formatting = Formatting.None;
            });
            //foreach (var module in ExtensionManager.Modules)
            //    // Register controller from modules
            //    mvcBuilder.AddApplicationPart(module.Assembly);

            mvcBuilder.AddRazorOptions(
                o =>
            {
                foreach (Assembly assembly in ExtensionManager.Assemblies)
                {
                    o.FileProviders.Add(new EmbeddedFileProvider(assembly, assembly.GetName().Name));
                }
                foreach (var module in ExtensionManager.Modules)
                {
                    o.AdditionalCompilationReferences.Add(MetadataReference.CreateFromFile(module.Assembly.Location));
                }
            }
                ).AddViewLocalization()
            .AddDataAnnotationsLocalization();

            foreach (Action <IMvcBuilder> prioritizedAddMvcAction in GetPrioritizedAddMvcActions())
            {
                this.logger.LogInformation("Executing prioritized AddMvc action '{0}' of {1}", GetActionMethodInfo(prioritizedAddMvcAction));
                prioritizedAddMvcAction(mvcBuilder);
            }

            //注册模块FluentValidation验证
            foreach (ModuleInfo moduleInfo in ExtensionManager.Modules)
            {
                mvcBuilder.AddFluentValidation(fv => fv.RegisterValidatorsFromAssembly(moduleInfo.Assembly));
            }
        }
Пример #26
0
 public static IMvcBuilder AddCustomFluentValidation <TStartup>(this IMvcBuilder builder)
 {
     return(builder.AddFluentValidation(
                config =>
     {
         config.RegisterValidatorsFromAssemblyContaining <TStartup>();
         config.RunDefaultMvcValidationAfterFluentValidationExecutes = false;
     }));
 }
Пример #27
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            IMvcBuilder builder = services.AddControllers();

            builder.AddFluentValidation(fvc =>
            {
                fvc.RegisterValidatorsFromAssemblyContaining <PersonDtoValidator>();
            });
        }
        public static IServiceCollection ConfigureValidation(this IMvcBuilder builder, IServiceCollection services,
                                                             Assembly assembly)
        {
            builder.AddFluentValidation(fv => { fv.RegisterValidatorsFromAssembly(assembly); });

            services.Configure <ApiBehaviorOptions>(options => { options.SuppressModelStateInvalidFilter = true; });

            return(services);
        }
Пример #29
0
        public static IMvcBuilder AddValidation(this IMvcBuilder mvcBuilder)
        {
            mvcBuilder.AddFluentValidation(configuration =>
            {
                configuration.RegisterValidatorsFromAssembly(typeof(Application.Common.Interfaces.IApplicationDbContext).Assembly);
            });

            return(mvcBuilder);
        }
Пример #30
0
        public static IMvcBuilder AddCustomFluentValidation(this IMvcBuilder builder)
        {
            return(builder.AddFluentValidation(fv =>
            {
                fv.RunDefaultMvcValidationAfterFluentValidationExecutes = false;

                fv.RegisterValidatorsFromAssemblyContaining <UserDtoValidator>();
            }));
        }