public void SetProperties(SmsEventType dictionary) { _fullName = dictionary.FullName; _description = dictionary.Description; OnPropertyChanged("FullName"); }
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; } }
/// <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); }
/// <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); }
/// <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); } }
///<summary> /// Конструктор по умолчанию ///</summary> public SmsEventTypeForm(SmsEventType smsEventType) : this() { _smsEventType = smsEventType; SetHeaders(); FillControls(); }