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