private void AddAlarmsToDB() { AlarmS7Creator creator = new AlarmS7Creator(_realmPRovider); //validation AlarmsImportItemValidator validator = new AlarmsImportItemValidator(); foreach (var item in _parsedAlarms) { item.CanModifyAlarm = validator.Validate(item).CanModifyAlarm; //check if no error with specific parsed alarm if (!item.CanModifyAlarm) { //check if alarm tith this alarm or ack tag already exists if (CheckIfAddressesAreAlreadyDefined(creator, item)) { //check if alarm profile exists int alarmProfileID = CheckIfAlarmProfileExists(item); if (alarmProfileID > 0) { int smsGroupID = CheckIfRecipientsGroupExists(item); if (smsGroupID > 0) { AddAlarmToDB(creator, item, alarmProfileID, smsGroupID); } else { OnSingleImportDone(false, item.AlarmTagName, $"SMS recipients group '{item.SMSrecipientsGroupName}' does not exist in DB.", false); } } else { OnSingleImportDone(false, item.AlarmTagName, $"The alarm urgency profile '{item.AlarmProfileName}' does not exist in DB.", false); } } else { OnSingleImportDone(false, item.AlarmTagName, "Alarm with this alm or ack address is already defined for this PLC connection", false); } } else { OnSingleImportDone(false, item.AlarmTagName, "There was an error while parsing this alarm. Alarm not imported.", false); } } OnSingleImportDone(true, "Import finished", "Importing of all alarms from file finished", true); }
private bool AddSingleS7AlarmToDB(AlarmSaveToDBDataModel model) { _logger.Info("Procedure for adding single S7 alarm to DB started."); List <string> texts = new List <string>(); for (int i = 0; i < 16; i++) { texts.Add(""); } AlarmS7Creator creator = new AlarmS7Creator(_realmProvider); return(creator.AddNewS7Alarm(model.PLcconnectionID, model.AlarmProfileID, model.SMSrecipientsGroup, model.ActivateAlarm, model.AlmTagName, model.AlmTagDBNumber, model.AlmTagByteNumber, model.AlmTagBitNumber, model.AckTagName, model.AckTagDBNumber, model.AckTagByteNumber, model.AckTagBitNumber, texts)); }
private bool SendDataOfNewS7AlarmToDB() { _logger.Info($"Gathering data for definition of new S7 alarms and texts."); List <string> texts = new List <string>(); foreach (var item in _listOfAllAlarmTexts) { texts.Add(item.AlarmText); } _logger.Info($"Attempt of adding new S7 alarm definition to DB."); AlarmS7Creator creator = new AlarmS7Creator(_realmProvider); return(creator.AddNewS7Alarm(_connectionData.PLCconnectionID, SelectedAlarmUrgencyProfile.Identity, SelectedSMSrecipientsGroup.Identity, AlarmActivated, AlmTagName, AlmDBnumber, AlmByteNumber, AlmBitNumber, AckTagName, AckDBnumber, AckByteNumber, AckBitNumber, texts)); }
private void AddAlarmToDB(AlarmS7Creator creator, AlarmS7UImodel item, int profileID, int smsGroupID) { List <string> alarmTexts = new List <string> { item.SysLang1, item.SysLang2, item.SysLang3, item.SysLang4, item.SysLang5, item.SysLang6, item.SysLang7, item.UserLang1, item.UserLang2, item.UserLang3, item.UserLang4, item.UserLang5, item.UserLang6, item.UserLang7, item.UserLang8, item.UserLang9, }; bool added = creator.AddNewS7Alarm(_plcConnectionID, profileID, smsGroupID, item.AlarmActivated, item.AlarmTagName, item.AlarmTagDBnumber, item.AlarmTagByteNumber, item.AlarmTagBitNumber, item.AckTagName, item.AckTagDBnumber, item.AckTagByteNumber, item.AckTagBitNumber, alarmTexts); string message; if (added) { message = $"Alarm successfully added to database. PLC connection ID: {_plcConnectionID.ToString()}."; } else { message = $"Alarm NOT ADDED to Database."; } OnSingleImportDone(added, item.AlarmTagName, message, false); }
private bool CheckIfAddressesAreAlreadyDefined(AlarmS7Creator creator, AlarmS7UImodel alarmModel) { return(creator.CheckAdditionPermissions(alarmModel.AlarmTagDBnumber, alarmModel.AlarmTagByteNumber, alarmModel.AlarmTagBitNumber, alarmModel.AlarmTagString, alarmModel.AckTagDBnumber, alarmModel.AckTagByteNumber, alarmModel.AckTagBitNumber, alarmModel.AckTagString, _plcConnectionID)); }