/// <summary> /// Группировка действий по процессам /// </summary> /// <param name="processPerformer"></param> private void CreateGroups(ProcessPerformer processPerformer) { if (!processPerformer.IsValid) { return; } foreach (var process in processPerformer.Processes) { listView.Groups.Add(new ListViewGroup(process.Name, process.Name)); foreach (var action in process.Actions) { if (IsStartOrEnd(action.Name)) continue; _listViewActions.Add( new ListViewAction(action.Name, process.Name)); } } }
/// <summary> /// Подготовка списка для наполнения элемента ListViewListView /// </summary> /// <param name="processPerformer">Используемый обработчик процессов</param> private void PrepareListView(ProcessPerformer processPerformer) { _listViewActions = new List<ListViewAction>(); listView.Clear(); listView.Groups.Clear(); CreateGroups(processPerformer); CreateListViewColumns(); FillListView(); }
/// <summary> /// Инициализация основных объектов, обеспечивающих обработку процессов /// </summary> private void InitializeProcessObjects() { //IoC-контейнер var container = ContainersFactory.GetContainer(); //Оповещатель var messenger = container.Resolve<IMessenger>(); //Загрузчик процессов var processLoader = container.Resolve<IProcessLoader>(); var timer = container.Resolve<ITimer>(); _processPerformer = new ProcessPerformer(messenger, timer, processLoader); messenger.OnMessengerStateChange += MessengerStateChanged; }