//algorithm method - writing modified data to DB private bool SendModifiedDataToDB() { //create instance of modifying class SavedLanguagesModifier modifier = new SavedLanguagesModifier(_realmProvider); bool dataSavedSuccessfully = true; foreach (var item in Languages) { AlarmLanguageDefinition definition = _originalLanguagesList.Single(x => x.Identity == item.Identity); //if there is async difference beetween original and actual text, send new data to DB if (definition.LanguageText != item.LanguageText || definition.LanguageEnabled != item.Enabled || definition.LanguageSelected != item.Selected) { //check if modification was saved into db properly if (!modifier.ModifyLanguageText(item.Identity, item.LanguageText, item.Enabled, item.Selected)) { dataSavedSuccessfully = false; } } } return(dataSavedSuccessfully); }
//public method for changing definition of a language in DB public bool ModifyLanguageText(int langID, string newText, bool langEnabled, bool langSelected) { _logger.Info($"Modification of existing language definition method fired."); if (CheckLagIDConditions(langID)) { try { //read from DB the languge that is modified AlarmLanguageDefinition alarmDef = _realm.All <AlarmLanguageDefinition>().Single(x => x.Identity == langID); //assign new values to properties of AlarmLanguageDefinition object using (var trans = _realm.BeginWrite()) { alarmDef.LanguageText = newText; alarmDef.LanguageEnabled = langEnabled; alarmDef.LanguageSelected = langSelected; //commint changes trans.Commit(); } _logger.Info($"Modification of existing language successful. ID = {langID}, new language text = {newText}"); return(true); } catch (Exception ex) { _logger.Error($"Error while trying to modify existing language text: {ex.Message}."); return(false); } } else { return(false); } }