Esempio n. 1
0
        //вибір дії
        private void comboBoxAct_SelectedIndexChanged(object sender, EventArgs e)
        {
            string act = comboBoxAct.SelectedItem.ToString();

            switch (act)
            {
            case "Add test to DB":
            {
                OpenFileDialog file = new OpenFileDialog();
                file.ShowDialog();

                string xmlTest = File.ReadAllText(file.FileName);
                var    time    = DateTime.Now;
                using (ExamVceDB test = new ExamVceDB())
                {
                    test.TestDBs.Add(new TestDB()
                        {
                            IdFromPerson = loginPerson.ID,
                            Test         = xmlTest,
                            DateLoad     = time,
                        });
                    test.SaveChanges();
                    MessageBox.Show("test was added");
                }
                ChangeIDForTest();
                break;
            }

            case "Send test to":
            {
                break;
            }

            case "Add student to DB":
            {
                AddStudentToDB addStudent = new AddStudentToDB();
                addStudent.ShowDialog();
                break;
            }

            case "Choose exam":
            {
                listBoxExam.Enabled = true;
                using (ExamVceDB exam = new ExamVceDB())
                {
                    foreach (var item in exam.TestDBs)
                    {
                        MakeTest subject = DeserialiseFromString(item.Test);
                        listBoxExam.Items.Add($"{item.ID}* {subject.Subject}");
                    }
                }

                break;
            }
            }

            if (comboBoxAct.SelectedItem.Equals("Add test to DB"))
            {
            }
        }
Esempio n. 2
0
        void FillTable()
        {
            using (ExamVceDB pass = new ExamVceDB())
            {
                //var query = pass.PassExams.Join(pass.Students, c => c.Student.Name);
                foreach (var item in pass.PassExams)
                {
                    try
                    {
                        ListViewItem i           = new ListViewItem(item.ID.ToString());
                        var          studentName = pass.Students.Where(q => q.ID == item.Id_Student).ToList();
                        i.SubItems.Add(studentName[0].Name);
                        string   testForm = pass.TestDBs.First(q => q.ID == item.Id_Test).Test;
                        MakeTest test     = DeserialiseFromString(testForm);
                        i.SubItems.Add(test.Subject);
                        i.SubItems.Add(item.Date_Pass.ToString());
                        i.SubItems.Add(item.Mark.ToString());

                        listViewPassExam.Items.Add(i);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
Esempio n. 3
0
        //непотрібний вже метод був як тест
        private void ChooseStartExam_Click(object sender, RoutedEventArgs e)
        {
            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                openFileDialog.ShowDialog();
                string path = openFileDialog.FileName;

                XmlSerializer serializer = new XmlSerializer(typeof(MakeTest));

                StreamReader reader = new StreamReader(path);
                test = (MakeTest)serializer.Deserialize(reader);
            }
            FillFild();
            FillQuestions();
            FillRadioAnswer();

            mainWindow.Children.Clear();
        }
Esempio n. 4
0
        //вибір типу отриманого повідомлення
        void FunctionForSwich(TransferInfo info, string recive, User client)
        {
            switch (info.Type)
            {
            case MessageType.CheckLogIn:
            {
                User   reciveUser = JsonConvert.DeserializeObject <User>(recive);
                string passRecive;
                using (MD5 md5Hash = MD5.Create())
                {
                    passRecive = GetMd5Hash(md5Hash, reciveUser.Password);
                }
                using (ExamVceDB userLogin = new ExamVceDB())
                {
                    var student = userLogin.Students.Where(i => i.Login == reciveUser.Login).FirstOrDefault();

                    char[] login       = student.Login.ToCharArray();
                    var    password    = student.Password.ToCharArray();
                    int    endPosLogin = 0;
                    int    endPosPass  = 0;
                    while (true)
                    {
                        if (login[endPosLogin] == ' ' || endPosLogin > student.Login.Length - 1)
                        {
                            break;
                        }
                        endPosLogin++;
                    }
                    while (true)
                    {
                        if (password[endPosPass] == ' ' || endPosPass > student.Login.Length - 1)
                        {
                            break;
                        }
                        endPosPass++;
                    }
                    string log = new string(login, 0, endPosLogin);

                    string pass = new string(password, 0, endPosPass);


                    bool isCorrectMD5 = false;

                    if (reciveUser.Login.Equals(log) && passRecive.Equals(pass))
                    {
                        client.ID = student.ID;

                        SendAnswer(student.ID.ToString(), client, MessageType.GetAnswer);

                        return;
                    }
                    ;


                    SendAnswer("not correct", client, MessageType.GetAnswer);
                }

                break;
            }

            case MessageType.Test:
            {
                using (ExamVceDB test = new ExamVceDB())
                {
                    try
                    {
                        if (idChooseExam < 0)
                        {
                            new Exception();
                        }
                        SendAnswer(GetTestForSendStudent(idChooseExam), client, MessageType.Test);
                    }
                    catch  { SendAnswer("error xml", client, MessageType.Error); }
                }
                break;
            }

            case MessageType.CheckTestFromStudent:
            {
                MakeTest testFromUser = DeserialiseFromString(recive);
                int      mark         = 0;
                bool     isWriteToDB  = true;
                using (ExamVceDB test = new ExamVceDB())
                {
                    try
                    {
                        var      result      = test.TestDBs.FirstOrDefault(i => i.ID == testFromUser.IdTest);
                        MakeTest correctTest = DeserialiseFromString(result.Test);

                        for (int i = 0; i < correctTest.questions.Count; i++)
                        {
                            for (int j = 0; j < correctTest.questions[i].answers.Count; j++)
                            {
                                if (correctTest.questions[i].answers[j].IsCorrect)
                                {
                                    if (testFromUser.questions[i].answers[j].IsCorrect)
                                    {
                                        mark += correctTest.questions[i].Weight;
                                    }
                                }
                            }
                        }
                        //MessageBox.Show(mark.ToString());
                    }
                    catch
                    {
                        isWriteToDB = false;
                        MessageBox.Show("Test not foudn");
                    }
                }
                if (isWriteToDB)
                {
                    try
                    {
                        using (ExamVceDB passExam = new ExamVceDB())
                        {
                            passExam.PassExams.Add(new PassExam()
                                {
                                    Id_Sender  = loginPerson.ID,
                                    Id_Student = client.ID,
                                    Id_Test    = testFromUser.IdTest,
                                    Mark       = mark,
                                    Date_Pass  = DateTime.Now
                                });
                            passExam.SaveChanges();
                            MessageBox.Show("Test pass writed in DB");
                        }
                    }catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                SendAnswer($"Your mark is: {mark}", client, MessageType.SendMark);
                break;
            }
            }
        }
Esempio n. 5
0
        //отримання повідомлення
        void ReceiveMessages()
        {
            try
            {
                while (true)
                {
                    byte[] infoBytes = new byte[8];
                    server.Receive(infoBytes);


                    var info = TransferInfo.FromBytes(infoBytes);


                    byte[] buffer = new byte[250];

                    MemoryStream memoryStream = new MemoryStream();

                    int left  = info.Size;
                    int count = 0;


                    while (left > 0)
                    {
                        int download = left < buffer.Length ? left : buffer.Length;
                        count = server.Receive(buffer, download, SocketFlags.None);
                        memoryStream.Write(buffer, 0, count);
                        left -= count;
                    }
                    string recive = Encoding.UTF8.GetString(memoryStream.ToArray());

                    switch (info.Type)
                    {
                    case MessageType.Test:
                    {
                        var serializer = new XmlSerializer(typeof(MakeTest));
                        //MakeTest desr;
                        using (TextReader reader = new StringReader(recive))
                        {
                            test = (MakeTest)serializer.Deserialize(reader);
                        }
                        Dispatcher.Invoke(() =>
                            {
                                mainWindow.Children.Clear();
                                FillFild();
                                FillRadioAnswer();
                                FillQuestions();
                                EndExamButton.IsEnabled = true;
                            });

                        break;
                    }

                    case MessageType.SendMark:
                    {
                        Dispatcher.Invoke(() => { YourMark.Text = recive; });

                        break;
                    }

                    case MessageType.Error:
                    {
                        System.Windows.MessageBox.Show("Uppss some error");
                        break;
                    }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show(ex.Message);
                System.Windows.MessageBox.Show("Connection with server is lost");
            }
        }