Пример #1
0
        public static KaspAppBuilder UseRequestLocalization(this KaspAppBuilder app, Action <KaspRequestLocalizationOptions> optionsAction = null)
        {
            var localizationOptions = app.ApplicationBuilder.ApplicationServices.GetService <IOptions <RequestLocalizationOptions> >().Value;

            var options = new KaspRequestLocalizationOptions(app.ApplicationBuilder.ApplicationServices, localizationOptions);

            optionsAction?.Invoke(options);

            app.ApplicationBuilder.UseRequestLocalization(localizationOptions);
            return(app);
        }
Пример #2
0
        public static void UseDb(this KaspRequestLocalizationOptions builder)
        {
            var langRepository = builder.ServiceProvider.CreateScope().ServiceProvider.GetService <ILangRepository>();

            var dbCultures = langRepository.ListAsync().Result.ToArray();

            foreach (var dbCulture in dbCultures)
            {
                var cultureInfo = new CultureInfo(dbCulture.Id);
                builder.LocalizationOptions.SupportedCultures.Add(cultureInfo);
                builder.LocalizationOptions.SupportedUICultures.Add(cultureInfo);
            }

            var newsLangs = builder.LocalizationOptions.SupportedCultures.Select(x => x.Name).Except(dbCultures.Select(x => x.Id)).ToArray();

            langRepository.AddAsync(newsLangs.Select(x => new Lang {
                Id = x, Enable = true
            })).Wait();
        }