コード例 #1
0
        public PresenterAddressChecking(
            ICheckManager checkManager,
            IResultsTableProvider resultsTableProvider,
            ICheckingControlPanel checkingControlPanel,
            ITasksStatusIndicator tasksStatusIndicator
            )
        {
            // проверка адресов
            checkingControlPanel.IsRun_Changed += async() => {
                if (checkingControlPanel.IsRun)
                {
                    // подготовка к проверке
                    tasksStatusIndicator.TasksCompleted = 0;
                    foreach (CheckRow item in resultsTableProvider.CheckRows)
                    {
                        item.ResultPing = StatusChecking.nostarted;
                        item.ResultGet  = StatusChecking.nostarted;
                    }

                    // сама проверка
                    await checkManager.RunCheckingAsync(
                        resultsTableProvider.CheckRows,
                        tasksStatusIndicator.Progress
                        );

                    // постготовка
                    checkingControlPanel.IsRun = false;
                }
                else
                {
                    checkManager.CancelCheckingAsync();
                }
            };



            // При вставке нового списака в эту форму обнуляем индикатор задач.
            resultsTableProvider.CheckRowsChanged += () => {
                tasksStatusIndicator.TasksCompleted  = 0;
                tasksStatusIndicator.TasksTotalCount = resultsTableProvider.CheckRows.Count();
            };
        }
コード例 #2
0
        // Осуществляет переключение страниц
        public PresenterPageSwitcher(
            IViewerPages viewerPages,
            ICallerStepChecking callerStepChecking,
            IAddressTableProvider addressTableProvider,
            ICallerStepEditing callerStepEditing,
            IResultsTableProvider resultsTableProvider
            )
        {
            callerStepChecking.StepAddressChecking_required += () => {
                var bindingList = addressTableProvider.Addresses.Select(
                    item => new CheckRow()
                {
                    Host       = item.Host,
                    ResultPing = StatusChecking.nostarted,
                    Uri        = item.Uri,
                    ResultGet  = StatusChecking.nostarted
                }).ToList();
                resultsTableProvider.CheckRows = new BindingList <CheckRow>(bindingList);

                viewerPages.Show_PageAddressChecking();
            };
            callerStepEditing.StepEditing_required += viewerPages.Show_PageAddressEditing;
        }