Beispiel #1
0
        public static void ConfigureApi(this IServiceCollection services,
                                        FluentValidationOptions fluentValidationOptions, Action <MvcOptions> configureMvc = null,
                                        Action <MvcJsonOptions> configureJson = null)
        {
            /*************************
            * IConfiguration is not available yet
            *************************/

            services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");

            services.AddRouting(options =>
            {
                options.LowercaseUrls         = true;
                options.LowercaseQueryStrings = true;
            });

            services.AddApiVersioning(options =>
            {
                options.AssumeDefaultVersionWhenUnspecified = true;
                options.DefaultApiVersion = new ApiVersion(1, 0);
                options.ReportApiVersions = true;
                options.UseApiBehavior    = false;
            });

            var mvcBuilder = services.AddMvcCore(o =>
            {
                o.Filters.AddService(typeof(GlobalExceptionFilter));
                o.ModelValidatorProviders.Clear();

                configureMvc?.Invoke(o);
            })
                             .AddAuthorization()
                             .AddJsonFormatters()
                             .AddJsonOptions(options =>
            {
                var settings = options.SerializerSettings;

                var camelCasePropertyNamesContractResolver = new CamelCasePropertyNamesContractResolver();

                settings.ContractResolver = camelCasePropertyNamesContractResolver;
                settings.Converters.Add(new IsoDateTimeConverter());
                settings.Converters.Add(new StringEnumConverter(new DefaultNamingStrategy()));

                configureJson?.Invoke(options);
            });

            services.AddVersionedApiExplorer(options =>
            {
                options.GroupNameFormat           = "VVV";
                options.SubstituteApiVersionInUrl = true;
            });

            if (fluentValidationOptions.Enabled)
            {
                mvcBuilder.AddFluentValidation(
                    configuration => fluentValidationOptions.Configure?.Invoke(configuration));
            }
        }
        public static void DisplayMember_ReturnsExpectedValue()
        {
            var propertyInfo = typeof(FluentValidationOptionsTests).GetProperty(
                nameof(TestProperty),
                BindingFlags.Static | BindingFlags.NonPublic);

            var displayName = FluentValidationOptions.DisplayNameResolver(null, propertyInfo, null);

            displayName.Should().Be(nameof(TestProperty));
        }
 public static void ConfigureApi(this IServiceCollection services, FluentValidationOptions fluentValidationOptions, Action <MvcOptions> configureMvc = null !, Action <MvcNewtonsoftJsonOptions> configureJson = null !, Action <IMvcBuilder> configureMvcBuilder = null !)
        public static void DisplayMember_NullMemberInfo_ReturnsNull()
        {
            var displayName = FluentValidationOptions.DisplayNameResolver(null, null, null);

            displayName.Should().BeNull();
        }