Beispiel #1
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 #2
0
        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
                };
            }
        }
Beispiel #3
0
        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();
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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;
            }
        }