Example #1
0
        private void SyncExam(ExamSheet mysheet)
        {
            //var mysheet = repoOnSite.GetSheetBySheetId(sheetid);
            var myregis = repoOnSite.GetTestRegisById(mysheet.TestRegisID);

            if (mysheet.LatestStatus == "PASS")
            {
                mysheet.IsSync = true;
                myregis.IsSync = true;
            }

            List <ExamSheet> sheetList = new List <ExamSheet>();

            sheetList.Add(mysheet);

            List <ExamSheetOnline> sheetForOnline = new List <ExamSheetOnline>();

            var listReg = repoOnSite.GetTestRegisByIds(sheetList.Select(x => x.TestRegisID).ToList());

            foreach (var item in sheetList)
            {
                var regis = listReg.Where(x => x._id == item.TestRegisID).FirstOrDefault();

                var regisOnline = new TestRegistrationOnline
                {
                    _id           = regis._id,
                    Title         = regis.Title,
                    FirstName     = regis.FirstName,
                    LastName      = regis.LastName,
                    SubjectCode   = regis.SubjectCode,
                    SubjectName   = regis.SubjectName,
                    ExamLanguage  = regis.ExamLanguage,
                    VoiceLanguage = regis.VoiceLanguage,
                    RegDate       = regis.RegDate,
                    RegDateString = regis.RegDateString,
                    ExpriedDate   = regis.ExpriedDate,
                    SiteId        = regis.SiteId,
                    CenterId      = regis.CenterId,
                    ForTestSystem = regis.ForTestSystem,
                    ForPractice   = regis.ForPractice,
                    Status        = regis.Status,
                    ExamStatus    = regis.ExamStatus,
                    PID           = regis.PID,
                    ExamNumber    = regis.ExamNumber,
                    ExamPeriod    = regis.ExamPeriod,
                    AppointDate   = regis.AppointDate,
                    Email         = regis.Email,
                    Mobile        = regis.Mobile,
                    Address       = regis.Address,
                    MaxCount      = regis.MaxCount,
                    CertData      = regis.CertData,
                    LatestCount   = regis.LatestCount,
                };


                var sheet = new ExamSheetOnline
                {
                    _id              = item._id,
                    Subject          = item.Subject,
                    TestReg          = regisOnline,
                    TestCount        = item.TestCount,
                    LatestStatus     = item.LatestStatus,
                    ExamDateTime     = item.ExamDateTime,
                    StatusExtensions = item.StatusExtensions,
                    RandomQuestion   = item.RandomQuestions,
                    CenterId         = item.CenterId,
                    CorrectScore     = item.CorrectScore,
                    InCorrectScore   = item.InCorrectScore,
                    ReviewDuration   = item.ReviewDuration,
                    CreateDate       = item.CreateDate,
                    ClientId         = item.ClientId
                };

                sheetForOnline.Add(sheet);
            }

            CloseExamRequest request = new CloseExamRequest()
            {
                ResultSheet = sheetForOnline,
            };

            using (var client = new WebClient())
            {
                try
                {
                    var json     = Newtonsoft.Json.JsonConvert.SerializeObject(request);
                    var dataByte = System.Text.Encoding.UTF8.GetBytes(json);
                    client.Headers[HttpRequestHeader.ContentType] = "application/json";
                    //dataByte = client.UploadData("http://localhost:10585/api/ExamSheet/UpdateExamSheetFromOnSite/", "POST", dataByte);
                    dataByte = client.UploadData("http://eexamthaiex.azurewebsites.net/api/ExamSheet/UpdateExamSheetFromOnSite/", "POST", dataByte);

                    //update sheet
                    repoOnSite.UpdateSheet(mysheet);
                    //update Regis
                    repoOnSite.UpdateTestRegis(myregis);
                }
                catch (Exception e)
                {
                    throw new Exception(e.ToString());
                }
            }
        }
Example #2
0
        public DisplayAllVM ListTestRegistration(string centerid)
        {
            var fromtestRegis = repoOnSite.ListTestRegis(centerid);

            if (fromtestRegis.Count() > 0)
            {
                var mappedsheet = repoOnSite.GetMappedSheet(centerid);

                var fromtestRegisExistMappedsheet = fromtestRegis.Where(p2 => mappedsheet.All(p1 => p1.TestRegisID != p2._id));

                var _listTestRegisBySheet = repoOnSite.GetTestRegisByIds(mappedsheet.Select(x => x.TestRegisID).ToList());

                List <TestRegistrationRespone> formsheet = new List <TestRegistrationRespone>();

                foreach (var item in mappedsheet)
                {
                    var regis = _listTestRegisBySheet.Where(x => x._id == item.TestRegisID).FirstOrDefault();

                    if (regis != null)
                    {
                        var sheetRegis = new TestRegistrationRespone()
                        {
                            _id           = regis._id,
                            Title         = regis.Title,
                            FirstName     = regis.FirstName,
                            LastName      = regis.LastName,
                            SubjectCode   = regis.SubjectCode,
                            SubjectName   = regis.SubjectName,
                            ExamLanguage  = regis.ExamLanguage,
                            VoiceLanguage = regis.VoiceLanguage,
                            RegDate       = regis.RegDate,
                            RegDateString = regis.RegDateString,
                            ExpriedDate   = regis.ExpriedDate,
                            SiteId        = regis.SiteId,
                            CenterId      = regis.CenterId,
                            ForPractice   = regis.ForPractice,
                            ForTestSystem = regis.ForTestSystem,
                            Status        = item.LatestStatus,
                            PID           = regis.PID,
                            ExamNumber    = regis.ExamNumber,
                            ExamPeriod    = regis.ExamPeriod,
                            AppointDate   = regis.AppointDate,
                            Address       = regis.Address,
                            MaxCount      = regis.MaxCount,
                            LatestCount   = item.TestCount,
                            CertData      = new CertData
                            {
                                CertNo   = regis.CertData.CertNo,
                                CertYear = regis.CertData.CertYear,
                                UserCode = regis.CertData.UserCode
                            },
                            IsSync        = item.IsSync,
                            SheetId       = item._id,
                            CorrectCount  = item.CorrectScore,
                            QuestionCount = item.RandomQuestions.Count(),
                        };

                        formsheet.Add(sheetRegis);
                    }
                }

                var result = new DisplayAllVM
                {
                    TestRegistrations = fromtestRegisExistMappedsheet.Select(x => new TestRegistrationRespone
                    {
                        _id           = x._id,
                        Title         = x.Title,
                        FirstName     = x.FirstName,
                        LastName      = x.LastName,
                        SubjectCode   = x.SubjectCode,
                        SubjectName   = x.SubjectName,
                        ExamLanguage  = x.ExamLanguage,
                        VoiceLanguage = x.VoiceLanguage,
                        RegDate       = x.RegDate,
                        RegDateString = x.RegDateString,
                        ExpriedDate   = x.ExpriedDate,
                        SiteId        = x.SiteId,
                        CenterId      = x.CenterId,
                        ForPractice   = x.ForPractice,
                        ForTestSystem = x.ForTestSystem,
                        Status        = x.Status,
                        PID           = x.PID,
                        ExamNumber    = x.ExamNumber,
                        ExamPeriod    = x.ExamPeriod,
                        AppointDate   = x.AppointDate,
                        Address       = x.Address,
                        MaxCount      = x.MaxCount,
                        CertData      = new CertData
                        {
                            CertNo   = x.CertData.CertNo,
                            CertYear = x.CertData.CertYear,
                            UserCode = x.CertData.UserCode
                        },
                        LatestCount   = x.LatestCount <= 1 ? 1 : x.LatestCount,
                        IsSync        = x.IsSync,
                        SheetId       = string.Empty,
                        CorrectCount  = 0,
                        QuestionCount = 0,
                    }).ToList(),
                };
                result.TestRegistrations.AddRange(formsheet);

                return(result);
            }
            else
            {
                return(new DisplayAllVM {
                    TestRegistrations = new List <ViewModels.TestRegistrationRespone>()
                });
            }
        }