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 }); } }
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 }); } }
public void StartTimer(Student.StudentUpdate stCard) { sndPlayer.Play(); SetProgressBarMax(10); TimerCallback timerDelegate = new TimerCallback(timerTick); timer = new System.Threading.Timer(timerDelegate, stCard, 0, 1000); }
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 }); } } }
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 }); } }
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); } }
private void timerTick(Object state) { Student.StudentUpdate stCard = (Student.StudentUpdate)state; this.Invoke(new UpdateHeaderHandler(this.UpdateHeader), new Object[] { stCard }); }