示例#1
0
        public HostUri CreateRandom_HostUri(DiapasonChoiserData diapason)
        {
            IPAddress ip     = IPAddressOperations.CreateRandomIP(Random, diapason.IP_From, diapason.IP_To);
            string    host   = ip.ToString();
            HostUri   result = new HostUri()
            {
                Host = host,
                Uri  = CreateUri(diapason.Scheme, host, diapason.Port, diapason.Path, diapason.AddressFamily)
            };

            return(result);
        }
示例#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);
                }
            };
        }