public bool SaveSetup() { try { foreach (TranslationMapping mapping in this.TranslationMappings) { TranslationMappingModel model = new TranslationMappingModel { TranslationMappingId = mapping.TranslationMappingId, LanguageId = this.SelectedLanguage.LanguageId, EnglishLanguage = mapping.EnglishLanguage.ZipFile(), OtherLanguage = mapping.OtherLanguage.ZipFile() }; mapping.TranslationMappingId = BiblesData.Database.InsertTranslation(model); } foreach (int mappingId in this.deletedMappings) { BiblesData.Database.DeleteTranslationMapping(mappingId); } return(true); } catch (Exception err) { ErrorLog.ShowError(err); return(false); } }
internal static bool LoadFile(string path) { try { string translationFileName = Path.GetFileNameWithoutExtension(path); string[] fileNameSplit = translationFileName.Split(new char[] { '_' }); LanguageSetupModel language = BiblesData.Database.GetLanguage(fileNameSplit[0]); if (language == null) { language = new LanguageSetupModel { Language = fileNameSplit[0] }; language.LanguageId = BiblesData.Database.InsertLanguage(language); } List <TranslationMappingModel> existingMappings = BiblesData.Database.GetTranslationMapping(language.LanguageId); List <string> fileValuesList = new List <string>(); fileValuesList.AddRange(File.ReadAllLines(path)); foreach (string item in fileValuesList) { TranslationMapping mapping = JsonConvert.DeserializeObject(item, typeof(TranslationMapping)).To <TranslationMapping>(); if (!existingMappings.Any(m => m.EnglishLanguage.UnzipFile().ParseToString() == mapping.EnglishLanguage)) { TranslationMappingModel mappingModel = new TranslationMappingModel { LanguageId = language.LanguageId, TranslationMappingId = 0, EnglishLanguage = mapping.EnglishLanguage.ZipFile(), OtherLanguage = mapping.OtherLanguage.ZipFile() }; BiblesData.Database.InsertTranslation(mappingModel); } } } catch { throw; } return(true); }
public int InsertTranslation(TranslationMappingModel translation) { Task <TranslationMappingModel> exiting = BiblesData.database .Table <TranslationMappingModel>() .FirstOrDefaultAsync(tr => tr.TranslationMappingId == translation.TranslationMappingId); if (exiting.Result == null) { Task <int> response = BiblesData.database.InsertAsync(translation); int responseValue = response.Result; return(translation.TranslationMappingId); } exiting.Result.EnglishLanguage = translation.EnglishLanguage; exiting.Result.OtherLanguage = translation.OtherLanguage; BiblesData.database.UpdateAsync(exiting.Result); return(exiting.Result.TranslationMappingId); }