コード例 #1
0
        public static IMvcBuilder AddCsvSerializerFormatters( this IMvcBuilder builder, CsvFormatterOptions csvFormatterOptions)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            builder.AddFormatterMappings(m => m.SetMediaTypeMappingForFormat("csv", new MediaTypeHeaderValue("text/csv")));

            if (csvFormatterOptions == null)
            {
                csvFormatterOptions = new CsvFormatterOptions();
            }

            if (string.IsNullOrWhiteSpace(csvFormatterOptions.CsvDelimiter))
            {
                throw new ArgumentException("CsvDelimiter cannot be empty");
            }

            builder.AddMvcOptions(options => options.InputFormatters.Add(new CsvInputFormatter(csvFormatterOptions)));
            builder.AddMvcOptions(options => options.OutputFormatters.Add(new CsvOutputFormatter(csvFormatterOptions)));


            return builder;
        }
コード例 #2
0
 public static IMvcBuilder AddJsonApi(this IMvcBuilder builder)
 {
     return builder.AddMvcOptions(options =>
     {
         options.OutputFormatters.Insert(0, new JsonApiOutputFormatter());
     });
 }
 public static IMvcBuilder AddPlainTextOutputFormatter(this IMvcBuilder builder, PlainTextFormatterOptions formatterOptions)
 {
     if (builder == null) throw new ArgumentNullException(nameof(builder));
     return builder.AddMvcOptions(opts =>
     {
         opts.OutputFormatters.RemoveType<StringOutputFormatter>();
         opts.OutputFormatters.Add(new PlainTextOutputFormatter(formatterOptions));
     });
 }
コード例 #4
0
ファイル: MvcBuilderExtensions.cs プロジェクト: qbikez/Odachi
        public static IMvcBuilder AddMvcPages(this IMvcBuilder mvcBuilder)
        {
			mvcBuilder
				.AddMvcOptions(o =>
                {
                    o.Conventions.Add(new PagesApplicationModelConvention());
                })
                .AddRazorOptions(o =>
                {
                    o.ViewLocationExpanders.Add(new PagesViewLocationExpander());
                });

            return mvcBuilder;
        }
コード例 #5
0
        public static IMvcBuilder AddFluentValidation(this IMvcBuilder mvcBuilder)
        {
            var serviceCollection = mvcBuilder.Services;
            //services.AddCors();
            mvcBuilder.AddMvcOptions(
                options =>
                    {
                        options.ModelValidatorProviders.Add(serviceCollection.BuildServiceProvider().GetRequiredService<IModelValidatorProvider>());
                    });

            var assembly = typeof(FluentValidationMVCBuilderExtensions).GetTypeInfo().Assembly;
            var exportedTypes = assembly.GetExportedTypes();
            var validatorTypes = exportedTypes.Where(a=>a.GetInterfaces().Any(x =>x.IsConstructedGenericType && x.GetGenericTypeDefinition() == typeof(IValidator<>)));
            foreach (var type in validatorTypes)
            {
                //var genericType = type.GetInterfaces().SingleOrDefault(x => x.IsConstructedGenericType && x.GetGenericTypeDefinition() == typeof(IValidator<>));
                //services.AddTransient(type,genericType);
            }
            serviceCollection.AddTransient<IValidator<CharacterCreate>, CharacterCreateValidator>();

            // Add application services.
            serviceCollection.AddTransient<IModelValidatorProvider, FluentValidationModelValidatorProvider>();
            return mvcBuilder;
        }
 public static IMvcBuilder AddPlainTextInputFormatter(this IMvcBuilder builder, PlainTextFormatterOptions formatterOptions)
 {
     if (builder == null) throw new ArgumentNullException(nameof(builder));
     return builder.AddMvcOptions(opts => opts.InputFormatters.Add(new PlainTextInputFormatter(formatterOptions)));
 }
 public static IMvcBuilder AddQueryableDataBroker(this IMvcBuilder builder)
 {
     builder.AddMvcOptions(o => o.OutputFormatters.Add(new QuerySummaryFormatter()));
     return builder;
 }