Exemplo n.º 1
0
        private void StartSendingButton_Click(object sender, EventArgs e)
        {
            startSendingButton.Enabled         = false;
            loadFromExcelButton.Enabled        = false;
            createBroadcastTableButton.Enabled = false;

            richTextBox1.Clear();

            int i = 0;

            foreach (var broadcast in _broadcastsToSend)
            {
                if (!broadcast.FileExists)
                {
                    MessageBox.Show($"Отсутствует файл {broadcast.FileName} для передачи {broadcast.Title}.", "Файл не найден!", MessageBoxButtons.OK);
                    continue;
                }

                if (broadcast.Transmitted == "1")
                {
                    continue;
                }


                webBrowserGTRF.Navigate("http://oed.gtrf.ru/materials/edit");
                WaitForPageCompleted();

                WebForm.FillWebForm(webBrowserGTRF, broadcast);
                WaitForPageCompleted();

                webBrowserGTRF.Document?.GetElementById("fileUpload")?.Focus();
                SendKeys.Send(" " + _currentDir + broadcast.FileNameFormat());
                SendKeys.SendWait(" \n");
                foreach (HtmlElement input in webBrowserGTRF.Document.GetElementsByTagName("button"))
                {
                    if (input.GetAttribute("InnerText") == " Загрузить файл")
                    {
                        input.InvokeMember("click");
                    }
                }
                WaitForPageCompleted();

                foreach (HtmlElement input in webBrowserGTRF.Document.GetElementsByTagName("button"))
                {
                    if (input.GetAttribute("InnerText") == "Сохранить и отправить")
                    {
                        input.InvokeMember("click");
                    }
                }

                WaitForPageCompleted();

                ExcelInteraction.SetTransmittedFlag(broadcast);

                try
                {
                    richTextBox1.Text += broadcast.Id + ": " + broadcast.Title + " (" + broadcast.DateAired + ") - передан\n";
                    richTextBox1.Select(richTextBox1.Text.Length, 0);
                    richTextBox1.ScrollToCaret();
                }
                catch (ObjectDisposedException)
                {
                }

                i++;

                broadcastTransmittedNumberLabel.Text =
                    (int.Parse(broadcastTransmittedNumberLabel.Text) + 1).ToString();

                progressBar.Value = i * 100 / _broadcastsToSend.Count();
            }
            webBrowserGTRF.Navigate("http://oed.gtrf.ru/");
            MessageBox.Show($"Передача файлов завершена\nВсего передано выпусков программ: {i}", "Завершено!", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }