Example #1
0
        private void ReadStudents(byte[] buffer)
        {
            int index = 0;

            int studentsLen = IPAddress.NetworkToHostOrder(GetIntFromMessage(buffer, index));

            index += sizeof(int);

            if (File.Exists(students_xml))
            {
                File.Delete(students_xml);
            }

            FileStream fs = File.Create(students_xml);

            fs.Write(buffer, index, studentsLen);
            fs.Close();

            XMLFileManager.SaveMemberId(students_xml, memberID);

            students = XMLFileManager.GetStudentList(students_xml);

            parentForm.Invoke(new FillStudentResultsEventHandler(parentForm.FillStudentResults), new Object[] { students });
            if (studentID != -1)
            {
                Student.StudentUpdate stUpd = new Student.StudentUpdate();
                stUpd.student = Student.GetStudentById(students, studentID);
                parentForm.Invoke(new UpdateStudentEventHandler(parentForm.UpdateStudentInfo), new Object[] { stUpd.student });
            }
        }
Example #2
0
        private void ReadStudentInfo(byte[] buffer)
        {
            int index = 0;

            if (studentID == -1)
            {
                studentID = GetIntFromMessage(buffer, index);
            }
            else
            {
                newStudentID = GetIntFromMessage(buffer, index);
            }
            index += sizeof(int);

            GetIntFromMessage(buffer, index);

            Student.StudentUpdate stUpd = new Student.StudentUpdate();
            stUpd.student = Student.GetStudentById(students, studentID);

            if (newStudentID != -1)
            {
                stUpd.newStudent = Student.GetStudentById(students, newStudentID);
                parentForm.Invoke(new StartTimerHandler(parentForm.StartTimer), new Object[] { stUpd });
                studentID = newStudentID;
            }
            else
            {
                parentForm.Invoke(new UpdateStudentEventHandler(parentForm.UpdateStudentInfo), new Object[] { stUpd.student });
            }
        }
Example #3
0
        public void StartTimer(Student.StudentUpdate stCard)
        {
            sndPlayer.Play();
            SetProgressBarMax(10);
            TimerCallback timerDelegate = new TimerCallback(timerTick);

            timer = new System.Threading.Timer(timerDelegate, stCard, 0, 1000);
        }
Example #4
0
        private void ReadExamInfo(byte[] buffer)
        {
            int index = 0;

            examID = GetIntFromMessage(buffer, index);
            index += sizeof(int);

            memberID = GetIntFromMessage(buffer, index);
            index   += sizeof(int);

            studentCount = GetIntFromMessage(buffer, index);
            index       += sizeof(int);

            studentID = GetIntFromMessage(buffer, index);

            bool needStudents = false;

            if (File.Exists(students_xml))
            {
                ExamInfo examInfo = XMLFileManager.GetExamInfo(students_xml);
                if (examInfo.examId != examID || examInfo.studentCount != studentCount)
                {
                    needStudents = true;
                }
            }
            else
            {
                needStudents = true;
            }

            if (needStudents)
            {
                List <byte> message = new List <byte>();
                message.AddRange(BitConverter.GetBytes(IPAddress.HostToNetworkOrder(AssistantProtocol.OpcodeNeedStudents)));
                message.AddRange(BitConverter.GetBytes(IPAddress.HostToNetworkOrder(0)));

                byte[] msg = message.ToArray();
                SendMessage(msg);
            }
            else
            {
                XMLFileManager.SaveMemberId(students_xml, memberID);
                students = XMLFileManager.GetStudentList(students_xml);
                parentForm.Invoke(new FillStudentResultsEventHandler(parentForm.FillStudentResults), new Object[] { students });

                if (studentID != -1)
                {
                    Student.StudentUpdate stUpd = new Student.StudentUpdate();
                    stUpd.student = Student.GetStudentById(students, studentID);
                    parentForm.Invoke(new UpdateStudentEventHandler(parentForm.UpdateStudentInfo), new Object[] { stUpd.student });
                }
            }
        }
Example #5
0
        private void ReadStudentInfo(byte[] buffer)
        {
            int index = 0;

            if (studentID == -1)
            {
                studentID = GetIntFromMessage(buffer, index);
            }
            else
            {
                newStudentID = GetIntFromMessage(buffer, index);
            }
            index += sizeof(int);

            int cardNumber = GetIntFromMessage(buffer, index);

            Student.StudentUpdate stCard = new Student.StudentUpdate();
            stCard.student = Student.GetStudentById(students, studentID);
            stCard.card    = Card.GetCardByNum(cards, cardNumber);

            if (newStudentID == -1)
            {
                Student.GetStudentById(students, studentID).CardNumber = cardNumber;
            }
            else
            {
                Student.GetStudentById(students, newStudentID).CardNumber = cardNumber;
                stCard.newStudent = Student.GetStudentById(students, newStudentID);
            }

            if (newStudentID != -1)
            {
                parentForm.Invoke(new StartTimerHandler(parentForm.StartTimer), new Object[] { stCard });
                studentID = newStudentID;
            }
            else
            {
                parentForm.Invoke(new UpdateStudentEventHandler(parentForm.UpdateStudentInfo), new Object[] { stCard.student, stCard.card });
            }
        }
Example #6
0
        private void UpdateHeader(Student.StudentUpdate stCard)
        {
            if (timerCount > 0)
            {
                lblState.Text = "Сохр. баллов через: " + timerCount.ToString() + " сек!";
                UpdateProgressBar(10 - timerCount);

                timerCount--;
            }
            else
            {
                timer.Dispose();

                lblState.Text = "Сохр. баллов!";
                UpdateProgressBar(10);

                timerCount = 10;

                SaveStudent(stCard.student);
                UpdateStudentInfo(stCard.newStudent, stCard.card);
            }
        }
Example #7
0
 private void timerTick(Object state)
 {
     Student.StudentUpdate stCard = (Student.StudentUpdate)state;
     this.Invoke(new UpdateHeaderHandler(this.UpdateHeader), new Object[] { stCard });
 }