Пример #1
0
        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;
                }
            }
        }
Пример #2
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);
                }
            }
        }
Пример #3
0
        private void onRecive(string responseData)
        {
            var responseInfo = ResponseInfo.FromJson(responseData);

            if (SequrityUtils.DecryptString(responseInfo.Data, connection.User.SecretKey) == "OK")
            {
                expiredTime = expiredTime.AddMinutes(3);
            }
        }
Пример #4
0
        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";
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
                }
            }
        }
Пример #8
0
        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();
                }
            }
        }
Пример #9
0
 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);
         }
     });
 }
Пример #10
0
        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);
                }
            }
        }
Пример #11
0
        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);
                }
            }
        }
Пример #12
0
        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);
                }
            }
        }
Пример #14
0
 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);
         }
     });
 }
Пример #15
0
 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);
     }
 }