/// <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); }
private void EditPerformance() { if (listViewCompliance.SelectedItems.Count == 0 || !(listViewCompliance.SelectedItems[0].Tag is EventTypeRiskLevelChangeRecord)) { return; } EventTypeRiskLevelChangeRecord changeRecord = listViewCompliance.SelectedItems[0].Tag as EventTypeRiskLevelChangeRecord; CommonEditorForm form = new CommonEditorForm(changeRecord); if (form.ShowDialog() == DialogResult.OK) { listViewCompliance.Items[listViewCompliance.Items.IndexOf(listViewCompliance.SelectedItems[0])] = new ListViewItem(GetListViewSubItems(changeRecord), null) { Tag = changeRecord }; } }
private void DeletePerformance() { if (listViewCompliance.SelectedItems.Count == 0 || !(listViewCompliance.SelectedItems[0].Tag is EventTypeRiskLevelChangeRecord)) { return; } DialogResult confirmResult = MessageBox.Show(listViewCompliance.SelectedItems.Count == 1 ? "Do you really want to delete risk level record " + listViewCompliance.SelectedItems[0].Tag + "?" : "Do you really want to delete selected level records?", "Confirm delete operation", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (confirmResult == DialogResult.Yes) { listViewCompliance.BeginUpdate(); foreach (ListViewItem lvi in listViewCompliance.SelectedItems) { EventTypeRiskLevelChangeRecord changeRecord = lvi.Tag as EventTypeRiskLevelChangeRecord; if (changeRecord == null) { continue; } try { GlobalObjects.NewKeeper.Delete(changeRecord, true); } catch (Exception ex) { Program.Provider.Logger.Log("Error while deleting data", ex); return; } } listViewCompliance.EndUpdate(); } }
private ListViewItem.ListViewSubItem[] GetListViewSubItems(EventTypeRiskLevelChangeRecord item) { List <PropertyInfo> properties = GetTypeProperties(); ListViewItem.ListViewSubItem[] subItems = new ListViewItem.ListViewSubItem[properties.Count]; for (int i = 0; i < properties.Count; i++) { object value = properties[i].GetValue(item, null); if (value != null) { string valueString; if (value is DateTime) { valueString = SmartCore.Auxiliary.Convert.GetDateFormat((DateTime)value); } else { valueString = value.ToString(); } subItems[i] = new ListViewItem.ListViewSubItem { Text = valueString, Tag = value }; } else { subItems[i] = new ListViewItem.ListViewSubItem { Text = "", Tag = "" }; } } return(subItems); }
private void AddPerformance() { try { EventTypeRiskLevelChangeRecord newRecord = new EventTypeRiskLevelChangeRecord { ParentEventType = _smsEventType }; CommonEditorForm form = new CommonEditorForm(newRecord); if (form.ShowDialog() == DialogResult.OK) { listViewCompliance.Items.Add(new ListViewItem(GetListViewSubItems(newRecord), null) { Tag = newRecord }); } } catch (Exception ex) { Program.Provider.Logger.Log("Error while building new object", ex); return; } }