// Отправить статистику
        private void buttonSend_Click(object sender, EventArgs e)
        {
            // Запрашиваем у студента его имя/группу
            FormStudentInformation studentInfoForm = new FormStudentInformation();

            studentInfoForm.ShowDialog();
            // Если студент отменил ввод - отправка отменена
            if (studentInfoForm.DialogResult != DialogResult.OK)
            {
                return;
            }
            // Если ввод принят - получаем конфиг с информацией о сервере
            var serverConfig = ServerConfig.GetServerConfig(out string errorMessage);

            if (serverConfig == null)
            {
                MessageBox.Show($"Ошибка при получении информации о сервере из конфигурационного файла.{Environment.NewLine}{errorMessage}",
                                "Отправка результатов", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            var statSender = new StatisticsSender(serverConfig);
            // Отправляем
            bool isSuccess =
                statSender.Send(problemDescriptor, problemExample, problemStatistics, studentInfoForm.StudentName, studentInfoForm.StudentGroup, out errorMessage);

            if (!isSuccess)
            {
                MessageBox.Show($"Ошибка при отправке результатов на сервер.{Environment.NewLine}{errorMessage}",
                                "Отправка результатов", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            // Если всё прошло хорошо - говорим об этом
            MessageBox.Show($"Результаты успешно отправлены",
                            "Отправка результатов", MessageBoxButtons.OK, MessageBoxIcon.Information);
            // Запрещаем повторную отправку результата
            buttonSend.Enabled = false;
        }
 private void PerformNetworkActivity()
 {
     StatisticsSender.Send();
 }