public ALARM_OBJECT(AdminAlarm.AlarmDbEventArgs ev) : this(INDEX_STATES_ALARM.REGISTRED) { Console.WriteLine(@"ALARM_OBJECT::ctor (id_comp=" + ev.m_id_comp + @", dtReg=" + ev.m_dtRegistred + @") - _state=" + _state.ToString() + @"..."); init(ev.m_dtRegistred.GetValueOrDefault()); }
/// <summary> /// Зарегистрировать событие от БД /// </summary> /// <param name="ev">Аргумент события</param> /// <returns>Результат регистрации (см. пред. обработчик для 'TecViewAlarm.AlarmTecViewEventArgs')</returns> public INDEX_ACTION Registred(AdminAlarm.AlarmDbEventArgs ev, MODE mode) { INDEX_ACTION iRes = INDEX_ACTION.NOTHING; ALARM_OBJECT alarmObj = find(ev.m_id_comp, ev.m_dtRegistred.GetValueOrDefault()); lock (this) { try { if (alarmObj == null) {//Только, если объект события сигнализации НЕ создан // создать объект события сигнализации alarmObj = new ALARM_OBJECT(ev); _dictAlarmObject.Add(new KeyValuePair <int, DateTime>(ev.m_id_comp, ev.m_dtRegistred.GetValueOrDefault()), alarmObj); alarmObj.Fixed(ev.m_dtFixed); alarmObj.Confirmed(ev.m_dtConfirm); if (mode == MODE.ADMIN) { if (alarmObj.IsNotify() == true) { alarmObj.Fixing(); iRes = INDEX_ACTION.NEW; } else { ; } } else { ; } } else { alarmObj.Fixed(ev.m_dtFixed); alarmObj.Confirmed(ev.m_dtConfirm); if (mode == MODE.SERVICE) { //if (alarmObj.CONFIRMED == true) // if (TECComponent.Mode(ev.m_id_comp) == FormChangeMode.MODE_TECCOMPONENT.TG) // iRes = INDEX_ACTION.CONFIRMED_TG; // else // ; //else if (alarmObj.IsAutoConfirming() == true) { // если объект не подтвержден длительное время iRes = INDEX_ACTION.AUTO_CONFIRMING; } else if ((alarmObj.IsAutoFixing(ALARM_OBJECT.INDEX_DATETIME_REGISTRED.LAST) == true) || ((TECComponent.Mode(ev.m_id_comp) == FormChangeMode.MODE_TECCOMPONENT.TG) && (alarmObj.IsAutoFixing(ALARM_OBJECT.INDEX_DATETIME_REGISTRED.FIRST) == true))) { // если объект не зафиксирован длительное время iRes = INDEX_ACTION.AUTO_FIXING; } else { ; } } else if (mode == MODE.ADMIN) { if (alarmObj.IsNotify() == true) { alarmObj.Fixing(); iRes = INDEX_ACTION.RETRY; } else { ; } } else { ; // при 'VIEW' ничего не делать } } } catch (Exception e) { Logging.Logg().Exception(e, @"DictAlarmObject::Registred (" + ev.GetType().Name + @") - ...", Logging.INDEX_MESSAGE.NOT_SET); } } return(iRes); }
/// <summary> /// Зарегистрировать событие от БД /// </summary> /// <param name="ev">Аргумент события</param> /// <returns>Результат регистрации (см. пред. обработчик для 'TecViewAlarm.AlarmTecViewEventArgs')</returns> public INDEX_ACTION Registred(AdminAlarm.AlarmDbEventArgs ev) { INDEX_ACTION iRes = INDEX_ACTION.NOTHING; ALARM_OBJECT alarmObj = find(ev.m_id_comp, ev.m_dtRegistred.GetValueOrDefault()); lock (this) { try { if (alarmObj == null) {//Только, если объект события сигнализации НЕ создан // создать объект события сигнализации alarmObj = new ALARM_OBJECT(ev); _dictAlarmObject.Add(new KeyValuePair <int, DateTime>(ev.m_id_comp, ev.m_dtRegistred.GetValueOrDefault()), alarmObj); alarmObj.Fixed(ev.m_dtFixed); alarmObj.Confirmed(ev.m_dtConfirm); if (alarmObj.IsNotify() == true) { iRes = INDEX_ACTION.NEW; } else { ; } } else { alarmObj.Fixed(ev.m_dtFixed); alarmObj.Confirmed(ev.m_dtConfirm); if ((alarmObj.CONFIRMED == false) && ((alarmObj.FIXED == true) && ((DateTime.UtcNow - ev.m_dtFixed.GetValueOrDefault()).TotalMilliseconds > AdminAlarm.MSEC_ALARM_EVENTRETRY)) ) { // если объект не подтвержден длительное время iRes = INDEX_ACTION.AUTO_CONFIRMING; } else if ((alarmObj.FIXED == false) && ((DateTime.UtcNow - ev.m_dtRegistred.GetValueOrDefault()).TotalMilliseconds > AdminAlarm.MSEC_ALARM_EVENTRETRY) ) { // если объект не зафиксирован длительное время iRes = INDEX_ACTION.AUTO_FIXING; } else if (alarmObj.IsNotify() == true) { iRes = INDEX_ACTION.RETRY; } else { ; } } } catch (Exception e) { Logging.Logg().Exception(e, Logging.INDEX_MESSAGE.NOT_SET, @"DictAlarmObject::Registred (" + ev.GetType().Name + @") - ..."); } } return(iRes); }
public ALARM_OBJECT(AdminAlarm.AlarmDbEventArgs ev) : this(INDEX_STATES_ALARM.REGISTRED) { init(ev.m_dtRegistred.GetValueOrDefault()); }