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); }
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(); }