private async void timer_Tick(object sender, EventArgs e) { if (_finished) { return; } try { TaskCreationResult result = DataStorage.GetData <TaskCreationResult>(); List <KeyValuePair <int, int> > _valueList = new List <KeyValuePair <int, int> >(); await DataStorage.RequestData(new RequestTaskInfo() { TaskGroup = result.GroupNumber }); TaskInfoClient task = DataStorage.GetData <TaskInfoClient>(); if (task != null) { durationControl.Text = task.Duration.ToString(); betweenControl.Text = task.RequestDuration.ToString(); timeoutControl.Text = task.Timeout.ToString(); virtualUsersControl.Text = task.VirtualUsers.ToString(); switch (task.Strategy) { case TestingStrategy.DECREASING: strategyControl.Text = "Генерация убывающей нагрузки"; break; case TestingStrategy.INCREASING: strategyControl.Text = "Генерация возрастающей нагрузки"; break; } switch (task.State) { case TaskState.ABORTED: statusLabel.Content = "Выполнение задания было прервано сервером."; _finished = true; break; case TaskState.CREATED: statusLabel.Content = "Задание создано. Ожидание начала выполнения."; break; case TaskState.RUNNING: statusLabel.Content = "Задание выполняется."; break; case TaskState.FINISHED: statusLabel.Content = "Задание завершено."; _finished = true; break; } if (task.Points != null) { foreach (var point in task.Points) { _valueList.Add(new KeyValuePair <int, int>(point.x, point.y)); } lineChart.DataContext = _valueList; } } } catch (TimeoutException) { MessageBox.Show("Сервер не ответил вовремя.", "Ошибка"); Close(); } catch (SocketException) { MessageBox.Show("Соединение с сервером потеряно.", "Ошибка"); Close(); } }
private async void beginTestingButton_Click(object sender, RoutedEventArgs e) { DisableButtons(); try { List <string> URLs = new List <string>(); int virtualUsers = int.Parse(virtualUsersControl.Text); int timeout = int.Parse(timeoutControl.Text); int requestDuration = int.Parse(betweenControl.Text); int duration = int.Parse(durationControl.Text);; TestingStrategy strategy = (TestingStrategy)strategyControl.SelectedIndex; foreach (var item in urlListControl.Items) { URLs.Add((string)item); } if (URLs.Count == 0) { MessageBox.Show("Список URL-адресов пустой.", "Ошибка"); EnableButtons(); return; } if (virtualUsers < 1 || timeout < 1 || requestDuration < 1 || duration < 1) { throw new FormatException(); } TaskData data = new TaskData() { _URLs = URLs, VirtualUsers = virtualUsers, Timeout = timeout, RequestDuration = requestDuration, Duration = duration, Strategy = strategy }; await DataStorage.RequestData(data); TaskCreationResult result = DataStorage.GetData <TaskCreationResult>(); if (result != null && result.GroupNumber != 0) { MonitoringWindow window = new MonitoringWindow(); window.ShowDialog(); } else { MessageBox.Show("Сервер отказал в выполнении задания.", "Ошибка"); } EnableButtons(); } catch (FormatException) { MessageBox.Show("Данные введены не верно.", "Ошибка"); EnableButtons(); } catch (TimeoutException) { MessageBox.Show("Сервер не ответил вовремя.", "Ошибка"); Close(); return; } catch (SocketException) { MessageBox.Show("Сервер не ответил вовремя.", "Ошибка"); Close(); return; } }