Example #1
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;
        }
Example #2
0
        public PresenterAddressEditing(
            IAddressTableProvider addressTableProvider,
            IAddressEditingPanels addressEditingPanels,
            IAddressGenerator addressGenerator,
            Form_DiapasonAddressChoser form_DiapasonAddressChoser,
            Form_RandomAddress form_RandomAddress,
            IFileIO fileIO,
            OpenFileDialog openFileDialog,
            SaveFileDialog saveFileDialog)
        {
            // Вызов редактора диапазона ip
            addressEditingPanels.DiapasonChoiseRequired += () => {
                form_DiapasonAddressChoser.ShowDialog();
            };
            // Добавление диапазона
            form_DiapasonAddressChoser.AddingAdresses_Required += (DiapasonChoiserData obj) =>
            {
                BindingList <HostUri> temp = addressGenerator.CreateList_HostUri(obj);
                foreach (HostUri item in temp)
                {
                    addressTableProvider.Addresses.Add(item);
                }
            };
            // Вычитание диапазона
            form_DiapasonAddressChoser.RemovingAdresses_Required += (DiapasonChoiserData obj) =>
            {
                BindingList <HostUri> temp = addressGenerator.CreateList_HostUri(obj);

                foreach (HostUri item in temp)
                {
                    List <HostUri> delAddresses = addressTableProvider.Addresses.Where(x => x.Host == item.Host).ToList();
                    foreach (HostUri delAddress in delAddresses)
                    {
                        addressTableProvider.Addresses.Remove(delAddress);
                    }
                }
            };

            // Вызов редактора случайного ip
            addressEditingPanels.RandomIPChoiseRequired += () =>
            {
                form_RandomAddress.ShowDialog();
            };
            // Добавление ip
            form_RandomAddress.AddingAdresses_Required += (DiapasonChoiserData obj) =>
            {
                HostUri item = addressGenerator.CreateRandom_HostUri(obj);
                addressTableProvider.Addresses.Add(item);
            };


            // загрузка
            addressEditingPanels.LoadRequired += () =>
            {
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    BindingList <HostUri> addresses = new BindingList <HostUri>(fileIO.ReadListAddress(openFileDialog.FileName));
                    addressTableProvider.Addresses.Clear();
                    foreach (HostUri item in addresses)
                    {
                        addressTableProvider.Addresses.Add(item);
                    }
                }
            };
            // сохранение
            addressEditingPanels.SaveRequired += () =>
            {
                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    HostUri[] adresses = addressTableProvider.Addresses.ToArray();
                    fileIO.WriteListAddress(saveFileDialog.FileName, adresses);
                }
            };
        }