private void onSubjectsRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { subjects = JsonConvert.DeserializeObject <Dictionary <int, string> >(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); comboBoxSubject.Items.Clear(); if (subjects.Count == 0) { comboBoxSubject.SelectedIndex = -1; } else { foreach (var keyValue in subjects) { comboBoxSubject.Items.Add(keyValue.Value); } comboBoxSubject.SelectedIndex = 0; } } }
private void onResultsRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var resultslist = JsonConvert.DeserializeObject <List <ResultSheetItem> >(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); dataGridView.Rows.Clear(); dataGridView.Columns.Clear(); dataGridView.Columns.Add("Id", "Id"); dataGridView.Columns.Add("NameSurname", "Имя/Фамилия учащегося"); dataGridView.Columns.Add("Mark", "Оценка"); dataGridView.Columns.Add("PassDate", "Дата выполнения"); dataGridView.Columns.Add("PassingTime", "Время выполнения"); dataGridView.Columns.Add("ExtendedResults", "Расширенные результаты"); foreach (var item in resultslist) { var row = new DataGridViewRow(); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.id.ToString())); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.NameSurname)); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.Mark.ToString())); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.PassDate.ToString("dd.MM.yyyy"))); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.PassingTime.ToString("hh:mm:ss"))); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowButtonCell("Расширенные результаты")); dataGridView.Rows.Add(row); } } }
private void onRecive(string responseData) { var responseInfo = ResponseInfo.FromJson(responseData); if (SequrityUtils.DecryptString(responseInfo.Data, connection.User.SecretKey) == "OK") { expiredTime = expiredTime.AddMinutes(3); } }
private void onTestListRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var itemlist = JsonConvert.DeserializeObject <List <TestSheetItem> >(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); dataGridView.Rows.Clear(); dataGridView.Columns.Clear(); dataGridView.Columns.Add("Id", "Id"); dataGridView.Columns.Add("Name", "Название"); dataGridView.Columns.Add("Creator", "Создатель"); dataGridView.Columns.Add("EditDate", "Дата изменения"); dataGridView.Columns.Add("Subject", "Предмет/Дисциплина"); dataGridView.Columns.Add("PassAvailable", "Доступен для прохождения"); dataGridView.Columns.Add("ShowResults", "Просмотреть результат"); if (comboBoxData.SelectedIndex == 1) { dataGridView.Columns.Add("OpenClosePassing", "Разрешить/Запретить прохождение"); dataGridView.Columns.Add("Delete", "Удалить"); } foreach (var item in itemlist) { var row = new DataGridViewRow(); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.id.ToString())); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.Name)); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.Creator)); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.EditDate.ToString())); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(subjectsRoles[item.Subject])); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.PassAvailable ? "Да" : "Нет")); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowButtonCell("Просмотреть результаты")); if (comboBoxData.SelectedIndex == 1) { row.Cells.Add(DataGridViewComponents.GetDataGridViewRowButtonCell("Разрешить/Запретить прохождение")); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowButtonCell("Удалить")); } dataGridView.Rows.Add(row); } if (checkBoxDate.Checked) { dataGridView.Sort(dataGridView.Columns[3], ListSortDirection.Ascending); } } }
private void onSaveRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { _error = response.Error; } else if (SequrityUtils.DecryptString(response.Data, connection.User.SecretKey) != "OK") { _error = "UNKNOWN_ERROR"; } }
private void onExtendedResultsExcelInfoRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var results = JsonConvert.DeserializeObject <List <ExtendedResultSheetItem> >(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); var saver = new ExcelTestResultsSaver(); saver.Save(excelPath, TestName, results); } }
private void onUserListRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var userlist = JsonConvert.DeserializeObject <List <UserSheetItem> >(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); dataGridView.Rows.Clear(); dataGridView.Columns.Clear(); dataGridView.Columns.Add("Id", "Id"); dataGridView.Columns.Add("Login", "Логин"); dataGridView.Columns.Add("Name", "Имя"); dataGridView.Columns.Add("Surname", "Фамилия"); dataGridView.Columns.Add("Role", "Тип аккаунта"); dataGridView.Columns.Add("Group", "Группа"); if (connection.User.UserRole == UserRoles.Admin) { dataGridView.Columns.Add("Edit", "Изменить"); dataGridView.Columns.Add("Delete", "Удалить"); } foreach (var item in userlist) { var row = new DataGridViewRow(); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.id.ToString())); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.Login)); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.Name)); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.Surname)); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(subjectsRoles[item.Role])); row.Cells.Add(DataGridViewComponents.GetDataGridViewRowTextBoxCell(item.Group)); if (connection.User.UserRole == UserRoles.Admin) { row.Cells.Add(DataGridViewComponents.GetDataGridViewRowButtonCell("Изменить")); if (item.Role != (int)UserRoles.Admin + 1) { row.Cells.Add(DataGridViewComponents.GetDataGridViewRowButtonCell("Удалить")); } } dataGridView.Rows.Add(row); } } }
private void onExtendedResultsRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var result = JsonConvert.DeserializeObject <List <AnswerListItem> >(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); using (var resultDialog = new AnswerListDialog(result)) { resultDialog.ShowDialog(); } } }
public void Register(RegisterData registerData, Action <string> onRegister) { Connect((error) => { if (error == null) { try { var netSender = new NetDataSender( new RequestInfo("RegisterStudent", SequrityUtils.Encrypt(registerData.ToJson(), _User.SecretKey), _User.UserToken), (responseData) => { var responseInfo = ResponseInfo.FromJson(responseData); if (responseInfo.Error != null) { Disconnect(); onRegister(responseInfo.Error); } else { if (SequrityUtils.DecryptString(responseInfo.Data, _User.SecretKey) == "OK") { Disconnect(); onRegister(null); } else { Disconnect(); onRegister(responseInfo.Error); } } }, Address); } catch (Exception e) { onRegister("Ошибка авторизации: " + e.Message); } } else { onRegister(error); } }); }
private void onTestsRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var tests = JsonConvert.DeserializeObject <List <string> >(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); listBoxTests.Items.Clear(); foreach (var testName in tests) { listBoxTests.Items.Add(testName); } } }
private void onRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { if (response.Error != "USER_NOT_STUDENT") { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { if (SequrityUtils.DecryptString(response.Data, connection.User.SecretKey) != "OK") { MessageBox.Show("Неизвестная ошибка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void onLoadRecive(string data) { loadedTest = null; var response = ResponseInfo.FromJson(data); if (response.Error != null) { _error = response.Error; } else { FileProcessor.ClearTmpDir(tmpDir); var testInfo = NetSerializedTestInfo.FromJson(SequrityUtils.DecryptString(response.Data, connection.User.SecretKey)); using (FileStream file = new FileStream(tmpDir + @"\testtmp.test", FileMode.OpenOrCreate)) { file.Write(testInfo.Test, 0, testInfo.Test.Length); } FileProcessor.DecompressFile(tmpDir + @"\testtmp.test", ""); var formatter = new BinaryFormatter(); Test test; using (FileStream file = new FileStream(tmpDir + @"\main.dat", FileMode.Open)) { test = (Test)formatter.Deserialize(file); test.InitSerializedTest(); } var i = 0; while (File.Exists(tmpDir + @"\" + i.ToString() + ".dat")) { using (FileStream file = new FileStream(tmpDir + @"\" + i.ToString() + ".dat", FileMode.Open)) { test.Questions.Add(new Question(file)); } i++; } FileProcessor.ClearTmpDir(tmpDir); loadedTest = test; } }
private void onRecive(string data) { var response = ResponseInfo.FromJson(data); if (response.Error != null) { MessageBox.Show(CommandErrors.GetErrorMessage(response.Error), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (SequrityUtils.DecryptString(response.Data, connection.User.SecretKey) == "OK") { MessageBox.Show("Регистрация завершена успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; } else { MessageBox.Show("Непредвиденная ошибка регистрации", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
public void Login(LoginData loginData, Action <string, AccountInfo> onLogin) { Connect((error) => { if (error == null) { try { var netSender = new NetDataSender( new RequestInfo("Login", SequrityUtils.Encrypt(loginData.ToJson(), _User.SecretKey), _User.UserToken), (responseData) => { var responseInfo = ResponseInfo.FromJson(responseData); if (responseInfo.Error != null) { onLogin(responseInfo.Error, null); } else { var loginInfo = AccountInfo.FromJson(SequrityUtils.DecryptString(responseInfo.Data, _User.SecretKey)); updator.Start(); User.UserId = loginInfo.UserId; User.UserRole = loginInfo.Role; onLogin(null, loginInfo); } }, Address); } catch (Exception e) { onLogin("Ошибка авторизации: " + e.Message, null); } } else { onLogin(error, null); } }); }
private void Connect(Action <string> onConnected) { try { var netSender = new NetDataSender( new RequestInfo("OpenConnection", null, null), (responseData) => { var responseInfo = ResponseInfo.FromJson(responseData); var data = Encoding.UTF8.GetString(responseInfo.Data); _User = new User(data.Substring(0, data.IndexOf(' '))); string publicKey; _User.SecretKey = SequrityUtils.DiffieHellmanGetSecretKey(data.Substring(data.IndexOf(' ') + 1), out publicKey); var netSender2 = new NetDataSender( new RequestInfo("SetDF", Encoding.UTF8.GetBytes(publicKey), _User.UserToken), (string responseData2) => { responseInfo = ResponseInfo.FromJson(responseData2); if (SequrityUtils.DecryptString(responseInfo.Data, _User.SecretKey) == "CONNECTION_STARTED") { _IsConnected = true; onConnected(null); } else { onConnected("Неизвестная ошибка подключения"); } }, Address); }, Address); } catch (Exception e) { onConnected("Ошибка подключения: " + e.Message); } }