コード例 #1
0
        public static byte[] GetExamTimeForStudent(StudentInformation student)
        {
            student.ExamStartTime = GetStartTime();
            student.ExamEndTime   = GetEndTime();

            return(GetByteArrayFromObject(student));
        }
コード例 #2
0
        public static byte[] GetQuestionForStudent(StudentInformation student)
        {
            var file = FullQuestionFilePath;

            var fileData = File.ReadAllBytes(file);

            //var examStartedMessage =
            //string.Format("Exam has started! Please save the question file and click finish when done!");

            var examStartedMsg = string.Format("Your exam is started. please save the question file!");

            var studentInfo = new StudentInformation
            {
                StudentId       = student.StudentId,
                ServerIPAddress = student.ServerIPAddress,
                //ExamTime = student.ExamTime,
                ExamStartTime                   = student.ExamStartTime,
                ExamEndTime                     = student.ExamEndTime,
                IsAlreadyRegistered             = student.IsAlreadyRegistered,
                IsExamStarted                   = student.IsExamStarted,
                ExamStartedMessage              = examStartedMsg,
                IsStudentIdValid                = student.IsStudentIdValid,
                StudentAlreadyRegisteredMessage = student.StudentAlreadyRegisteredMessage,
                QuestionFileData                = fileData
            };

            var serverData = GetByteArrayFromObject(studentInfo);

            return(serverData);
        }
コード例 #3
0
        public static void CreateStudentDirectory(StudentInformation student)
        {
            var path = Path.Combine(StudentAnswerFolder, student.StudentId.ToString());


            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
                GrantAccess(path);
            }
        }
コード例 #4
0
        public static byte[] GetConnectionMessageForStudent()
        {
            var msg = string.Format(
                "Connection successful!");
            var connectionMessage = new StudentInformation
            {
                ConnectionSuccessfulMessage = msg,
                ServerOperationType         = ServerOperationType.ConnectionSuccessful
            };

            return(GetByteArrayFromObject(connectionMessage));
        }
コード例 #5
0
        public static byte[] ConvertMessageToByteArray(StudentInformation obj)
        {
            if (obj == null)
            {
                return(null);
            }

            var bf = new BinaryFormatter();
            var ms = new MemoryStream();

            bf.Serialize(ms, obj);

            return(ms.ToArray());
        }
コード例 #6
0
        public static byte[] GetInValidStudentIdMessage(StudentInformation student)
        {
            student.IsStudentIdValid = false;
            var studentIdStart = int.Parse(ConfigurationManager.AppSettings["StudentIdRangeStart"]);
            var studentIdEnd   = int.Parse(ConfigurationManager.AppSettings["StudentIdRangeEnd"]);

            student.StudentIdInvalidMessage =
                string.Format("Invalid Student Id! Please Send a valid studentId in the range from {0} to {1}",
                              studentIdStart, studentIdEnd);

            var data = GetByteArrayFromObject(student);

            return(data);
        }
コード例 #7
0
        public static void AddStudentToList(StudentInformation studentInformation)
        {
            var studentModel = new StudentModel
            {
                StudentId            = studentInformation.StudentId,
                ExamEndTime          = studentInformation.ExamEndTime,
                ExamStartTime        = studentInformation.ExamStartTime,
                ExamTime             = DateTime.UtcNow,
                IsExamFinished       = false,
                IsBackupAvailable    = false,
                StudentIpAddress     = studentInformation.ServerIPAddress,
                ActualAnswerFilePath = Path.Combine(StudentAnswerFolder, studentInformation.StudentId.ToString())
            };

            ConnectedStudentList.Add(studentInformation.StudentId, studentModel);
        }
コード例 #8
0
        public static void SaveAnswerIntoServer(StudentInformation student)
        {
            /*if (student.OperationType == 0)
             * {
             *  if (!Directory.Exists(student.StudentId.ToString()))
             *  {
             *      Directory.CreateDirectory(student.StudentId.ToString());
             *
             *      StudentList.Add(student.StudentId, student);
             *
             *
             *      //TODO new implementation
             *
             *      var studentDb = new Student()
             *      {
             *          StudentId = student.StudentId,
             *          ExamStartTime = examStartTime,
             *          ExamEndTime = examEndTime
             *      };
             *
             *      dataService.CreateStudentIfNotExists(studentDb);
             *  }
             *
             * }*/
            if (student.OperationType == OperationType.ClientAnswer)
            {
                // TODO; file Save
                var dirName = student.StudentId.ToString();

                var filePath = Path.Combine(dirName, dirName + ".txt");
                if (Directory.Exists(dirName))
                {
                    //File.WriteAllBytes(filePath, student.FileData);
                }

                // TODO new implementation. save answer
                var studentDb = new Student()
                {
                    StudentId = student.StudentId, ExamTime = DateTime.UtcNow
                };

                dataService.UpdateStudent(studentDb);
            }
        }
コード例 #9
0
        public static StudentInformation GetStudentInformationFromConnectedList(int studentId)
        {
            StudentModel studentModel = null;

            ConnectedStudentList.TryGetValue(studentId, out studentModel);

            if (studentModel == null)
            {
                return(null);
            }

            var student = new StudentInformation
            {
                StudentId       = studentModel.StudentId,
                ServerIPAddress = studentModel.StudentIpAddress,
            };

            return(student);
        }
コード例 #10
0
        public static void SaveStudentInformation(StudentInformation student)
        {
            if (student.OperationType == 0)
            {
                if (!Directory.Exists(student.StudentId.ToString()))
                {
                    Directory.CreateDirectory(student.StudentId.ToString());

                    StudentList.Add(student.StudentId, student);

                    // TODO new implementation
                    var studentDb = new Student()
                    {
                        StudentId     = student.StudentId,
                        ExamStartTime = GetStartTime(),
                        ExamEndTime   = GetEndTime()
                    };

                    dataService.CreateStudentIfNotExists(studentDb);
                }
            }
        }