示例#1
0
        public static KaspServiceBuilder AddLocalization(this KaspServiceBuilder builder, Action <KaspLocalizationOptionBuilder> optionsAction)
        {
            var options = new KaspLocalizationOptionBuilder(builder.Services)
            {
                LocalizationOptions = new KaspLocalizationOptions()
            };

            optionsAction?.Invoke(options);

            builder.Services.AddLocalization(localizationOptions => localizationOptions.ResourcesPath       = options.LocalizationOptions.ResourcesPath);
            builder.MvcBuilder.AddViewLocalization(localizationOptions => localizationOptions.ResourcesPath = options.LocalizationOptions.ResourcesPath);
//			builder.MvcBuilder.AddDataAnnotationsLocalization(options => options.)

            builder.Services.AddMemoryCache();

            if (options.LocalizationOptions.StringLocalizerFactory != null)
            {
                builder.Services.AddSingleton(typeof(IStringLocalizerFactory), options.LocalizationOptions.StringLocalizerFactory);
            }

            if (options.LocalizationOptions.StringLocalizerFactory != null)
            {
                builder.Services.AddSingleton(typeof(IStringLocalizer), options.LocalizationOptions.StringLocalizer);
            }


            builder.Services.Configure <RequestLocalizationOptions>(localizationOptions => {
                localizationOptions.AddSupportedCultures(options.SupportedCultures.ToArray());
                localizationOptions.AddSupportedUICultures(options.SupportedCultures.ToArray());
                localizationOptions.SetDefaultCulture(options.DefaultCulture);
            });

            return(builder);
        }
示例#2
0
        private static KaspDbServiceBuilder _AddDatabase <TDbContext>(KaspServiceBuilder builder) where TDbContext : DbContext
        {
//			builder.Services.AddScoped<DbContext, TDbContext>();
            return(new KaspDbServiceBuilder(builder.Services, builder.Configuration, builder.MvcBuilder));
        }
示例#3
0
 public static KaspDbServiceBuilder AddDataBase <TDbContext>(this KaspServiceBuilder builder, Action <DbContextOptionsBuilder> optionsAction, ServiceLifetime lifetime = ServiceLifetime.Scoped)
     where TDbContext : DbContext
 {
     builder.Services.AddDbContext <TDbContext>(optionsAction, lifetime);
     return(_AddDatabase <TDbContext>(builder));
 }
示例#4
0
 public static KaspDbServiceBuilder AddDataBasePool <TDbContext>(this KaspServiceBuilder builder, Action <DbContextOptionsBuilder> optionsAction) where TDbContext : DbContext
 {
     builder.Services.AddDbContextPool <TDbContext>(optionsAction);
     return(_AddDatabase <TDbContext>(builder));
 }