public static SettingsModel LoadFromDb(AppRepository repository) { SettingsDbModel settingInDb = repository.GetSettingsAsync(1).Result; if (settingInDb == null) { var cc = CrossMultilingual.Current.CurrentCultureInfo; var lang = TranslationManager.GetLangByCulture(cc); settingInDb = new SettingsDbModel() { Id = 1, SettingsJson = JsonConvert.SerializeObject(new SettingsModel() { Language = lang }) }; repository.SetSettingsAsync(settingInDb); } var res = new SettingsModel(); var settings = JsonConvert.DeserializeObject <SettingsModel>(settingInDb.SettingsJson); res.Language = settings.Language; res.ShowDocsOnWifiOnly = settings.ShowDocsOnWifiOnly; res.ShowMsgUpdates = settings.ShowMsgUpdates; res.FontIndex = settings.FontIndex; switch (res.Language) { case SmeLanguage.Bulgarian: Properties.Resources.Culture = new CultureInfo("bg"); break; case SmeLanguage.English: Properties.Resources.Culture = new CultureInfo("en-US"); break; case SmeLanguage.Italian: Properties.Resources.Culture = new CultureInfo("it"); break; case SmeLanguage.German: Properties.Resources.Culture = new CultureInfo("de"); break; case SmeLanguage.French: Properties.Resources.Culture = new CultureInfo("fr"); break; default: break; } CrossMultilingual.Current.CurrentCultureInfo = Properties.Resources.Culture; return(res); }
public async Task <int> SetSettingsAsync(SettingsDbModel item) { if ((await this.db.Table <SettingsDbModel>().FirstOrDefaultAsync(x => x.Id == item.Id)) == null) { return(await this.db.InsertAsync(item).ConfigureAwait(false)); } else { return(await this.db.UpdateAsync(item).ConfigureAwait(false)); } }
public long Handle(AddOrUpdateSettingsCommand command) { var groupSettings = _context.Settings.FirstOrDefault(model => model.Id == command.GroupId); var toUpdate = true; if (groupSettings == null) { groupSettings = new SettingsDbModel(); toUpdate = false; } var jsSerializator = new JavaScriptSerializer(); var geoOptionsJson = jsSerializator.Serialize(command.GeoOptions); var friendOptionsJson = jsSerializator.Serialize(command.FriendsOptions); var messageOptionsJson = jsSerializator.Serialize(command.MessageOptions); var limitsOptionsJson = jsSerializator.Serialize(command.LimitsOptions); var communityOptionsJson = jsSerializator.Serialize(command.CommunityOptions); var deleteFriendsOptionsJson = jsSerializator.Serialize(command.DeleteFriendsOptions); var winkFriendsOptionsJson = jsSerializator.Serialize(command.WinkFriendsOptions); groupSettings.Id = command.GroupId; groupSettings.GeoOptions = geoOptionsJson; groupSettings.FriendsOptions = friendOptionsJson; groupSettings.MessageOptions = messageOptionsJson; groupSettings.LimitsOptions = limitsOptionsJson; groupSettings.CommunityOptions = communityOptionsJson; groupSettings.DeleteFriendsOptions = deleteFriendsOptionsJson; groupSettings.WinkFriendsOptions = winkFriendsOptionsJson; if (toUpdate) { _context.Settings.AddOrUpdate(groupSettings); } else { _context.Settings.Add(groupSettings); } _context.SaveChanges(); return groupSettings.Id; }