Beispiel #1
0
        public void SetProperties(SmsEventType dictionary)
        {
            _fullName    = dictionary.FullName;
            _description = dictionary.Description;

            OnPropertyChanged("FullName");
        }
Beispiel #2
0
        private void LookupComboboxEventTypeSelectedIndexChanged(object sender, EventArgs e)
        {
            SmsEventType eventType = dictionaryComboEventType.SelectedItem as SmsEventType;

            if (eventType != null && _smsEvent != null && _smsEvent.ItemId <= 0)
            {
                textBoxDescription.Text = eventType.Description;
                dictionaryComboEventClass.SelectedItem  = eventType.EventClass;
                dictionaryComboBoxCategory.SelectedItem = eventType.EventCategory;
                comboBoxIncident.SelectedItem           = eventType.IncidentType;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Возвращает значение, показывающее были ли изменения в данном элементе управления
        /// </summary>
        /// <returns></returns>
        private bool GetChangeStatus(SmsEventType obj)
        {
            if (textBoxDescription.Text != obj.Description || textBoxName.Text != obj.FullName)
            {
                return(true);
            }

            //Проверка на содержание объекта в коллекции
            IEnumerable <SmsConditionControl> conds = flowLayoutPanelConditions.Controls.OfType <SmsConditionControl>();

            if (conds.Select(scc => _smsEventType.EventConditions.GetItemById(scc.EventCondition.ItemId)).Any(r => r == null))
            {
                return(true);
            }
            //Проверка на null-значение объекта находящагося в коллекции при не-null-значении объекта в контроле
            if (conds.Any(cond => _smsEventType.EventConditions.GetItemById(cond.EventCondition.ItemId).Value == null &&
                          cond.ConditionValue != null))
            {
                return(true);
            }

            //Проверка эквивалентность значений объектов в коллекции и контролах
            if (conds.Any(cond => !_smsEventType.EventConditions.GetItemById(cond.EventCondition.ItemId).Value.Equals(cond.ConditionValue != null)))
            {
                return(true);
            }


            IEnumerable <EventTypeRiskLevelChangeRecord> records =
                listViewCompliance.Items
                .OfType <ListViewItem>()
                .Where(lvi => lvi.Tag != null && lvi.Tag is EventTypeRiskLevelChangeRecord)
                .Select(lvi => lvi.Tag as EventTypeRiskLevelChangeRecord);

            foreach (EventTypeRiskLevelChangeRecord changeRecord in records)
            {
                EventTypeRiskLevelChangeRecord r = _smsEventType.ChangeRecords.GetItemById(changeRecord.ItemId);
                if (r == null || !r.Equals(changeRecord))
                {
                    return(true);
                }
            }

            return(false);
        }
Beispiel #4
0
        /// <summary>
        /// Применить к объекту сделанные изменения на контроле.
        /// Если не все данные удовлетворяют формату ввода (например при вводе чисел), свойства объекта не изменяются, возвращается false
        /// Вызов base.ApplyChanges() обязателен
        /// </summary>
        /// <returns></returns>
        private void ApplyChanges(SmsEventType obj)
        {
            obj.Description = textBoxDescription.Text;
            obj.FullName    = textBoxName.Text;

            obj.EventConditions.Clear();
            foreach (SmsConditionControl smsConditionControl in flowLayoutPanelConditions.Controls.OfType <SmsConditionControl>())
            {
                smsConditionControl.ApplyChanges();
                obj.EventConditions.Add(smsConditionControl.EventCondition);
            }

            IEnumerable <EventTypeRiskLevelChangeRecord> records =
                listViewCompliance.Items
                .OfType <ListViewItem>()
                .Where(lvi => lvi.Tag != null && lvi.Tag is EventTypeRiskLevelChangeRecord)
                .Select(lvi => lvi.Tag as EventTypeRiskLevelChangeRecord);

            obj.ChangeRecords.Clear();
            obj.ChangeRecords.AddRange(records);
        }
Beispiel #5
0
        /// <summary>
        /// Сохраняет тип события системы безопасности полетов
        /// </summary>
        /// <param name="smsEventType"></param>
        public void Save(SmsEventType smsEventType)
        {
            if (smsEventType == null)
            {
                return;
            }

            _manipulator.Save((BaseEntityObject)smsEventType);

            foreach (EventCondition eventCondition in smsEventType.EventConditions)
            {
                eventCondition.ParentId   = smsEventType.ItemId;
                eventCondition.ParentType = smsEventType.SmartCoreObjectType;
                _manipulator.Save(eventCondition);
            }

            foreach (EventTypeRiskLevelChangeRecord changeRecord in smsEventType.ChangeRecords)
            {
                changeRecord.ParentEventType = smsEventType;
                _manipulator.Save(changeRecord);
            }
        }
Beispiel #6
0
 ///<summary>
 /// Конструктор по умолчанию
 ///</summary>
 public SmsEventTypeForm(SmsEventType smsEventType) : this()
 {
     _smsEventType = smsEventType;
     SetHeaders();
     FillControls();
 }