private bool ModifySingleS7AlarmInDB(AlarmS7UImodel alarm)
        {
            _logger.Info($"Procedure of updating definition and texts of one  S7 alarm, started. Updated alarm ID: {alarm.Identity}");

            try
            {
                //divide alarm definition into two objects
                (S7AlarmDefinition alarmDefinition, AlarmLanguagesDefinition alarmTexts) = AlarmS7UImodelDivider.DivideToDifferentObjects(alarm);

                bool definitionModified = ModifyAlarmDefinition(alarmDefinition);
                bool textsModified;
                if (definitionModified)
                {
                    textsModified = ModifyAlarmTexts(alarmTexts);
                    if (textsModified)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                _logger.Error($"Error while trying to update S7 alarm in DB. Alarm Identity: {alarm.Identity}. Error: {ex.Message}.");
                return(false);
            }
        }
Esempio n. 2
0
        private bool DeleteSingleAlarm(AlarmS7UImodel alarm)
        {
            bool definitionDeleted = DeleteSingleAlarmFromDB(alarm);
            bool textsDeleted      = DeleteSingleAlarmTextsFromDB(alarm);

            return(definitionDeleted && textsDeleted);
        }
Esempio n. 3
0
        private bool DeleteSingleAlarmFromDB(AlarmS7UImodel alarm)
        {
            _logger.Info($"Method for deleting definition of single S7 alarm fired. Alarm identity: {alarm.Identity}.");

            try
            {
                S7AlarmDefinition definition = _realm.All <S7AlarmDefinition>().
                                               Where(x => x.Identity == alarm.Identity && x.PLCconnectionID == alarm.PLCconnectionID).ToList().First();

                using (var trans = _realm.BeginWrite())
                {
                    _realm.Remove(definition);
                    trans.Commit();
                }

                _logger.Info($"S7 alarm definition with ID: {alarm.Identity} deleted successfully.");

                return(true);
            }
            catch (Exception ex)
            {
                _logger.Error($"Deleting definition of S7 alarm with ID: {alarm.Identity} failed. Error: {ex.Message}.");
                return(false);
            }
        }
Esempio n. 4
0
        private AlarmS7UImodel MergeAlarmDefinitionAndAlarmTexts
            (S7AlarmDefinition alarmDefinition, AlarmLanguagesDefinition alarmTexts)
        {
            if (alarmDefinition != null && alarmTexts != null)
            {
                //merge those 2 objects into one
                AlarmS7UImodel outputObject = new AlarmS7UImodel()
                {
                    Identity                   = alarmDefinition.Identity,
                    PLCconnectionID            = alarmDefinition.PLCconnectionID,
                    AlarmProfileIdentity       = alarmDefinition.AlarmProfileIdentity,
                    SMSrecipientsGroupIdentity = alarmDefinition.SMSrecipientsGroupIdentity,
                    AlarmActivated             = alarmDefinition.AlarmActivated,
                    AlarmTagName               = alarmDefinition.AlarmTagName,
                    AlarmTagDBnumber           = alarmDefinition.AlarmTagDBnumber,
                    AlarmTagByteNumber         = alarmDefinition.AlarmTagByteNumber,
                    AlarmTagBitNumber          = alarmDefinition.AlarmTagBitNumber,
                    AckTagName                 = alarmDefinition.AckTagName,
                    AckTagDBnumber             = alarmDefinition.AckTagDBnumber,
                    AckTagByteNumber           = alarmDefinition.AckTagByteNumber,
                    AckTagBitNumber            = alarmDefinition.AckTagBitNumber,

                    SysLang1  = alarmTexts.SysLang1,
                    SysLang2  = alarmTexts.SysLang2,
                    SysLang3  = alarmTexts.SysLang3,
                    SysLang4  = alarmTexts.SysLang4,
                    SysLang5  = alarmTexts.SysLang5,
                    SysLang6  = alarmTexts.SysLang6,
                    SysLang7  = alarmTexts.SysLang7,
                    UserLang1 = alarmTexts.UserLang1,
                    UserLang2 = alarmTexts.UserLang2,
                    UserLang3 = alarmTexts.UserLang3,
                    UserLang4 = alarmTexts.UserLang4,
                    UserLang5 = alarmTexts.UserLang5,
                    UserLang6 = alarmTexts.UserLang6,
                    UserLang7 = alarmTexts.UserLang7,
                    UserLang8 = alarmTexts.UserLang8,
                    UserLang9 = alarmTexts.UserLang9,

                    ObjectModified = false,
                };

                return(outputObject);
            }
            else
            {
                return(null);
            }
        }
        public static (S7AlarmDefinition, AlarmLanguagesDefinition) DivideToDifferentObjects(AlarmS7UImodel uiModel)
        {
            S7AlarmDefinition alarmDefinition = new S7AlarmDefinition()
            {
                Identity                   = uiModel.Identity,
                PLCconnectionID            = uiModel.PLCconnectionID,
                AlarmProfileIdentity       = uiModel.AlarmProfileIdentity,
                SMSrecipientsGroupIdentity = uiModel.SMSrecipientsGroupIdentity,
                AlarmActivated             = uiModel.AlarmActivated,
                AlarmTagName               = uiModel.AlarmTagName,
                AlarmTagDBnumber           = uiModel.AlarmTagDBnumber,
                AlarmTagByteNumber         = uiModel.AlarmTagByteNumber,
                AlarmTagBitNumber          = uiModel.AlarmTagBitNumber,
                AckTagName                 = uiModel.AckTagName,
                AckTagDBnumber             = uiModel.AckTagDBnumber,
                AckTagByteNumber           = uiModel.AckTagByteNumber,
                AckTagBitNumber            = uiModel.AckTagBitNumber,
            };

            AlarmLanguagesDefinition alarmTexts = new AlarmLanguagesDefinition()
            {
                Identity        = 0,
                AlarmIdentity   = uiModel.Identity,
                PLCconnectionID = uiModel.PLCconnectionID,
                SysLang1        = uiModel.SysLang1,
                SysLang2        = uiModel.SysLang2,
                SysLang3        = uiModel.SysLang3,
                SysLang4        = uiModel.SysLang4,
                SysLang5        = uiModel.SysLang5,
                SysLang6        = uiModel.SysLang6,
                SysLang7        = uiModel.SysLang7,
                UserLang1       = uiModel.UserLang1,
                UserLang2       = uiModel.UserLang2,
                UserLang3       = uiModel.UserLang3,
                UserLang4       = uiModel.UserLang4,
                UserLang5       = uiModel.UserLang5,
                UserLang6       = uiModel.UserLang6,
                UserLang7       = uiModel.UserLang7,
                UserLang8       = uiModel.UserLang8,
                UserLang9       = uiModel.UserLang9,
            };

            return(alarmDefinition, alarmTexts);
        }
        public bool ModifySingleS7Alarm(AlarmS7UImodel alarm)
        {
            _logger.Info($"Method for saving changes in signle S7 alarm to Db fired. Alarm Identoty: {alarm.Identity}.");

            return(ModifySingleS7AlarmInDB(alarm));
        }
Esempio n. 7
0
 public bool DeleteSingleS7Alarm(AlarmS7UImodel alarm)
 {
     _logger.Info($"Method for deleting single S7 alarm started.");
     return(DeleteSingleAlarm(alarm));
 }
Esempio n. 8
0
        private bool DeleteSingleAlarmTextsFromDB(AlarmS7UImodel alarm)
        {
            AlarmTextsDeleter deleter = new AlarmTextsDeleter(_realmProvider);

            return(deleter.DeleteExistingAlarmTexts(alarm.Identity, alarm.PLCconnectionID));
        }