Пример #1
0
 private void button5_Click(object sender, EventArgs e)
 {
     Visible = false;
     ServerCommunication.Send_Get_Msg_To_Server(ServerCommunication.Commands.QuitMsg);
     Login_Show();
     Visible = true;
 }
Пример #2
0
        private static void Get_Molecule_List(string Message, string Parameters = "")
        {
            // Запрашиваем сервер и получаем ответ
            List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server(Message, Parameters);

            // Преобразуем ответ в список молекул
            // И покажем окно со списком.
            MoleculesList ML = new MoleculesList(Functions.GetMolListFromServerAnswer(Answer));
        }
Пример #3
0
        private void FilesList_DoubleClick(object sender, EventArgs e)
        {
            if (FilesList.SelectedIndex == -1)
            {
                return;
            }

            ServerCommunication.GetFile(FileIDs[FilesList.SelectedIndex]);
        }
Пример #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            List <string> Ans = ServerCommunication.Send_Get_Msg_To_Server(textBox1.Text,
                                                                           textBox2.Text);

            Ans.RemoveAt(0);
            Ans.RemoveAt(Ans.Count - 1);

            Answer.Lines = Ans.ToArray();
        }
Пример #5
0
        /// <summary>
        /// Возвращает список пользователей
        /// </summary>
        /// <param name="Parameters">Доп. параметры</param>
        /// <returns></returns>
        public static List <User> GetUserList(string Parameters = "")
        {
            List <UserTransport> UserListString = ServerCommunication.GetTransportList <UserTransport>("users.get",
                                                                                                       new string[] { Parameters });
            List <User> Users = new List <User>();

            foreach (UserTransport UT in UserListString)
            {
                Users.Add(new User(UT.id.ToString(), UT.Surname, UT.Name, UT.SecondName, UT.Login, UT.LaboratoruName, UT.Job, UT.Permissions.ToString()));
            }

            Users.Sort(new Compare_User("ID"));
            return(Users);
        }
Пример #6
0
        // Изменение статуса заявки
        private void button4_Click(object sender, EventArgs e)
        {
            // Спросим, «Вы уверены?»
            if (MessageBox.Show("Вы уверены, что хотите изменить статус заявки на «" +
                                Form1.Known_Statuses.GetStatus(Form1.Known_Statuses.GetNextStatus(CurrentMolecule.Status_Num)) +
                                "»?", "Изменение статуса заявки", MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }

            // Если да
            // Отправим серверу запрос
            List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server(
                ServerCommunication.Commands.Increase_Status,
                "molecule " + CurrentMolecule.ID.ToString());

            // Если сервер благополучно изменил, то
            if (Answer[1] == "OK")
            {
                // Вычислим и присвоим молекуле новый статус, а также напишем об этом
                CurrentMolecule.Status_Num = Form1.Known_Statuses.GetNextStatus(CurrentMolecule.Status_Num);
                CurrentMolecule.Status     = Form1.Known_Statuses.GetStatus(CurrentMolecule.Status_Num);
                StatusLabel.Text           = "Статус заявки: " + CurrentMolecule.Status;

                // Изменим рисунок молекулы в окне MoleculeList
                ((MoleculesList)Owner).Draw_Element(Cur_Element);
                Owner.Refresh();

                // И поменяем надпись на кнопке. Если мы получили финальный статус, кнопку отключим.
                if (Form1.Known_Statuses.GetNextStatus(CurrentMolecule.Status_Num) == -1)
                {
                    button4.Enabled = false;
                }
                else
                {
                    button4.Text = Status_Button_Begin + Form1.Known_Statuses.GetStatus(
                        Form1.Known_Statuses.GetNextStatus(CurrentMolecule.Status_Num)) + Status_Button_End;
                }
            }
            // Если же сервер выдал ошибку, сообщим о ней.
            else
            {
                MessageBox.Show(Answer[1], "Ошибка");
            }
        }
Пример #7
0
        private static void GetLabs(EditUser Form)
        {
            Form.comboBox1.Items.Clear();
            Form.LabsID = new Dictionary <int, string>();

            List <string> Labs = ServerCommunication.Send_Get_Msg_To_Server("laboratories.names");

            if (Labs.Count < 3)
            {
                Form.comboBox1.Items.Add("Нет лабораторий в базе данных"); return;
            }

            for (int i = 1; i < Labs.Count - 1; i++) //Игнорируем первую и последнюю записи
            {
                string[] Val = Labs[i].Split('=');
                Form.comboBox1.Items.Add(Val[1]);
                Form.LabsID.Add(Convert.ToInt32(Val[0]), Val[1]);
            }
        }
Пример #8
0
        private void UsersTable_DoubleClick(object sender, EventArgs e)
        {
            if (UsersTable.SelectedRows.Count == 0)
            {
                return;
            }

            // Запрашиваем сервер и получаем ответ
            List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server(
                Command: ServerCommunication.Commands.Search_Mol,
                Parameters: "user " + UsersTable.SelectedRows[0].Cells[0].Value);

            List <Molecule> Mols = Functions.GetMolListFromServerAnswer(Answer);

            MoleculesList ML = new MoleculesList();

            ML.DrawList(Mols);
            ML.ShowDialog();
        }
Пример #9
0
        private void button1_Click(object sender, EventArgs e)
        {
            /*Login*/
            List <string> Ans = ServerCommunication.Send_Get_Msg_To_Server(ServerCommunication.Commands.Login,
                                                                           "name " + textBox1.Text + "\npassword " + textBox2.Text);

            if (Ans[0] != ServerCommunication.Answers.StartMsg)
            {
                MessageBox.Show("Ошибка 3 – Неожиданный ответ сервера: «" + Ans[0] + "»",
                                "Ошибка ответа сервера");
                return;
            }
            ;

            const string NoUser = "******";

            if (Ans[2] == NoUser)
            {
                MessageBox.Show("Ошибка: такие имя пользователя и пароль не зарегистрированы в системе.\n\n" +
                                "Проверьте правильность заполнения, язык ввода и клавиши \"Num Lock\" и \"Caps Lock\"",
                                "Ошибка входа");
                return;
            }

            if (Ans[1] != ServerCommunication.Answers.LoginOK)
            {
                MessageBox.Show("Ошибка 3 – Неожиданный ответ сервера: «" + Ans[1] + "»",
                                "Ошибка ответа сервера");
                return;
            }
            ;

            CU             = new CurrentUser(textBox1.Text);
            CU.Name        = Ans[4];
            CU.SecondName  = Ans[5];
            CU.Surname     = Ans[6];
            CU.ID          = Convert.ToInt32(Ans[3]);
            CU.SessionCode = Ans[2];
            CU.SetRights(Ans[7]);
            OK_Close = true;

            Close();
        }
Пример #10
0
 private void button3_Click(object sender, EventArgs e)
 {
     if (UsersTable.SelectedRows.Count == 0)
     {
         return;
     }
     if (MessageBox.Show($"Вы уверены, что хотите удалить пользователя {UsersTable.SelectedRows[0].Cells[1].Value}?", "Удаление пользователя",
                         MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server("users.remove",
                                                                           $"id {UsersTable.SelectedRows[0].Cells[0].Value}");
         if (Answer[1] == "User was removed successfully")
         {
             LoadList();
         }
         else
         {
             MessageBox.Show(Answer[1], "Ошибка");
         }
     }
 }
Пример #11
0
        private void button2_Click(object sender, EventArgs e)
        {
            OBConversion obconv = new OBConversion();

            obconv.SetOutFormat("smi");

            if (!CheckInputData())
            {
                return;
            }

            List <string> message = new List <string>();

            message.Add("code " + S_Name.Text);                                // Шифр
            message.Add("laboratory 1");                                       // Лаборатория
            message.Add("person 1");                                           // Персона
            message.Add("structure " + obconv.WriteString(mol).Trim("\n"[0])); // Структура
            message.Add("phys_state " + PhysState.Text);                       // Физ. состояние
            message.Add("melting_point " + Melt.Text);                         // Т. плавления
            message.Add("conditions " + Conditions.Text);                      // Условия хранения
            message.Add("properties " + Properties.Text);                      // Особые свойства
            message.Add("mass " + Mass.Text);                                  // Масса образца
            message.Add("solution " + Solution.Text);                          // Растворимость образца



            List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server(
                ServerCommunication.Commands.Add_Mol,
                ListOfStringToString(message));

            if (Answer[1] == "Add_Molecule: done")
            {
                Close();
            }
            else
            {
                MessageBox.Show(Answer[1], Answer[2]);
            }
        }
Пример #12
0
        public Statuses()
        {
            List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server(
                ServerCommunication.Commands.GetStatuses, "");

            for (int i = 0; i < Answer.Count; i++)
            {
                if (Answer[i] == ServerCommunication.Answers.StartMsg)
                {
                    continue;
                }
                if (Answer[i] == ServerCommunication.Answers.EndMsg)
                {
                    continue;
                }

                MolStatus NewStatus = new MolStatus(Convert.ToInt32(Answer[i++]),
                                                    Answer[i++], Answer[i] == "" ? -1 : Convert.ToInt32(Answer[i]));

                Known_Statuses.Add(NewStatus);
            }
        }
Пример #13
0
        private void button2_Click(object sender, EventArgs e) //Поиск
        {
            // Настраиваем конвертер
            OBConversion obconv = new OBConversion();

            obconv.SetInFormat("cdx");
            OBMol molec = new OBMol();

            obconv.SetOutFormat("smi");
            obconv.ReadFile(molec, textBox1.Text);

            // Запрашиваем сервер и получаем ответ
            List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server(
                ServerCommunication.Commands.Search_Mol,
                "structure " + obconv.WriteString(molec) + " ");

            Mols = Functions.GetMolListFromServerAnswer(Answer);

            MoleculesList ML = new MoleculesList();

            ML.DrawList(Mols);
            Close();
            ML.ShowDialog();
        }
Пример #14
0
        private void button3_Click(object sender, EventArgs e)
        {
            // Выбор файла
            string FileName = Functions.OpenFile();     if (FileName == "<Cancel>")
            {
                return;
            }
            string FileNameShort = Path.GetFileName(FileName);
            // Наименование файла
            string Name = Input_String.GetString("Название файла", "Название сохраняемого файла");

            if (Name == "@Cancel@")
            {
                return;
            }
            if (Name == "")
            {
                return;
            }

            // Отправление файл
            FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);

            byte[] data = new byte[fs.Length];
            fs.Read(data, 0, Convert.ToInt32(fs.Length));
            fs.Flush();
            fs.Close();

            List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server("file.send",
                                                                              "filename " + FileNameShort + "\ncaption " + Name +
                                                                              "\nsize " + data.Length.ToString() + "\nmolecule " + CurrentMolecule.ID.ToString(), data);

            // Просмотр ответа и добавление файла в список
            FilesList.Items.Add(Name);
            FileIDs.Add(Convert.ToInt32(Answer[1]));
        }
Пример #15
0
        private void button1_Click(object sender, EventArgs e)
        {
            // Проверим, что всё, что нужно, введено
            if (textBox1.Text == "")
            {
                MessageBox.Show("Введите фамилию пользователя", "Ошибка"); return;
            }
            if (textBox2.Text == "")
            {
                MessageBox.Show("Введите имя пользователя", "Ошибка"); return;
            }
            if (status == 1)
            {
                if (textBox5.Text == "")
                {
                    MessageBox.Show("Введите или сгенерируйте пароль", "Ошибка"); return;
                }
                if (textBox4.Text == "")
                {
                    MessageBox.Show("Введите подтверждение пароля", "Ошибка"); return;
                }
            }
            if (textBox6.Text == "")
            {
                MessageBox.Show("Введите логин пользователя", "Ошибка"); return;
            }

            int LabID;

            switch (status)
            {
            case 1:
                LabID = LabsID.Where(x => x.Value == comboBox1.SelectedItem.ToString()).FirstOrDefault().Key;

                List <string> Answer = ServerCommunication.Send_Get_Msg_To_Server("users.add",
                                                                                  "name " + textBox2.Text +
                                                                                  "\nsecond_name " + textBox3.Text +
                                                                                  "\nsurname " + textBox1.Text +
                                                                                  "\nlogin " + textBox6.Text +
                                                                                  "\npassword " + textBox5.Text +
                                                                                  "\nconfirm " + textBox4.Text +
                                                                                  "\npermissions 1" +
                                                                                  "\njob " + textBox7.Text +
                                                                                  "\nlaboratory_id " + LabID.ToString());
                if (Answer[1] == "User added")
                {
                    FormAnswer = true;
                    Close();
                }
                else
                {
                    MessageBox.Show(Answer[1], "Ошибка добавления пользователя");
                }
                break;

            case 2:
                string Params = "";
                if (textBox1.Text != OldInfo.Surname)
                {
                    Params += textBox1.Text != ""
                            ? "\nsurname " + textBox1.Text
                            : "\nsurname {CLEAR}";
                }
                if (textBox2.Text != OldInfo.Name)
                {
                    Params += textBox2.Text != ""
                            ? "\nname " + textBox2.Text
                            : "\nname {CLEAR}";
                }
                if (textBox3.Text != OldInfo.SecondName)
                {
                    Params += textBox3.Text != ""
                            ? "\nsecond_name " + textBox3.Text
                            : "\nsecond_name {CLEAR}";
                }
                if (comboBox1.SelectedItem.ToString() != OldInfo.Lab)
                {
                    LabID = LabsID.Where(x => x.Value == comboBox1.SelectedItem.ToString()).FirstOrDefault().Key;

                    Params += "\nlaboratory_id " +
                              LabID.ToString();
                }
                if (textBox7.Text != OldInfo.Job)
                {
                    Params += textBox7.Text != ""
                            ? "\njob " + textBox7.Text
                            : "\njob {CLEAR}";
                }

                if (Params == "")
                {
                    FormAnswer = true;
                    Close();
                    return;
                }
                Params += "\nlogin " + textBox6.Text;

                List <string> AnswerEdit = ServerCommunication.Send_Get_Msg_To_Server("users.update", Params);
                if (AnswerEdit[1] == "User information updated")
                {
                    FormAnswer = true;
                    Close();
                }
                else
                {
                    MessageBox.Show(AnswerEdit[1], "Ошибка добавления пользователя");
                }
                break;
            }
        }
Пример #16
0
 private void OnApplicationExit(object sender, EventArgs e)
 {
     ServerCommunication.Send_Get_Msg_To_Server(ServerCommunication.Commands.QuitMsg);
 }