コード例 #1
0
        public void StartExam([FromBody] ClientSheetRequest clientSheetRequest)
        {
            var sheet = repoOnSite.GetSheetBySheetId(clientSheetRequest.SheetId);

            if (sheet != null)
            {
                var newStatus = new StatusExtension
                {
                    _id            = Guid.NewGuid().ToString(),
                    ClientId       = clientSheetRequest.ClientId,
                    CreateDateTime = DateTime.Now,
                    Status         = "TESTING",
                };

                var active = repoOnSite.GetLastActive().ActiveThruDateTime;
                if (active >= DateTime.Now.AddMinutes(sheet.Subject.ExamDuration))
                {
                    sheet.ActiveThruDateTime = DateTime.Now.AddMinutes(sheet.Subject.ExamDuration);
                }
                else
                {
                    sheet.ActiveThruDateTime = active;
                }
                sheet.StatusExtensions.Add(newStatus);
                sheet.LatestStatus  = "TESTING";
                sheet.StartDateTime = DateTime.Now;

                repoOnSite.UpdateSheet(sheet);
            }
        }
コード例 #2
0
        public void EndExam([FromBody] ClientSheetRequest clientSheetRequest)
        {
            var sheet     = repoOnSite.GetSheetBySheetId(clientSheetRequest.SheetId);
            var newStatus = new StatusExtension
            {
                _id            = Guid.NewGuid().ToString(),
                ClientId       = clientSheetRequest.ClientId,
                CreateDateTime = DateTime.Now,
                Status         = sheet.CorrectScore >= sheet.Subject.PassScore ? "PASS" : "FAIL",
            };

            sheet.StatusExtensions.Add(newStatus);
            sheet.LatestStatus = newStatus.Status;
            sheet.ExamDateTime = DateTime.Now;

            repoOnSite.UpdateSheet(sheet);

            //Update testreg status by sirinarin
            //var testreg = repoOnSite.GetTestRegisById(sheet.TestRegisID);
            //testreg.Status = newStatus.Status;
            //repoOnSite.UpdateTestRegis(testreg);

            if (sheet.LatestStatus == "PASS")
            {
                SyncExam(sheet);
            }
        }
コード例 #3
0
ファイル: OnsiteServices.cs プロジェクト: SomSor/eexam2
        public void StartExam(ClientSheetRequest clientsheet)
        {
            var client  = new RestClient(serviceUrl);
            var request = new RestRequest("Client/StartExam", Method.POST);

            request.AddParameter("application/json", JsonConvert.SerializeObject(clientsheet), ParameterType.RequestBody);
            var response = client.Execute(request);
        }
コード例 #4
0
 public void EndExam([FromBody] ClientSheetRequest clientSheetRequest)
 {
     using (var client = new WebClient())
     {
         try
         {
             var json     = Newtonsoft.Json.JsonConvert.SerializeObject(clientSheetRequest);
             var dataByte = System.Text.Encoding.UTF8.GetBytes(json);
             client.Headers[HttpRequestHeader.ContentType] = "application/json";
             dataByte = client.UploadData(this.svconfig.admindbip + "/api/Client/EndExam/", "POST", dataByte);
         }
         catch (Exception e)
         {
             throw new Exception(e.Message);
         }
     }
 }