示例#1
0
        public async Task <IActionResult> Login(LoginViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    _logger.LogInformation(1, "User logged in.");
                    //return RedirectToLocal(returnUrl);
                    CenterDataRequest center = new CenterDataRequest
                    {
                        _id        = model.CenterId,
                        LatestUser = model.Email,
                        LatestPass = model.Password,
                    };

                    var data = _repoRegis.GetCenterData(center._id);
                    center.SiteId = data.SiteId;
                    if (data.CertDatas != null)
                    {
                        center.CertDatas = new List <CertData>();
                        foreach (var item in data.CertDatas)
                        {
                            center.CertDatas.Add(new CertData
                            {
                                UserCode = item.UserCode,
                                CertNo   = item.CertNo,
                                CertYear = item.CertYear,
                            });
                        }
                    }

                    center.NameEn         = data.NameEN;
                    center.NameTh         = data.NameTH;
                    center.UpdateDateTime = DateTime.Now;
                    var site = _repoRegis.GetSiteData(data.SiteId);
                    center.SiteName            = site.Name;
                    center.IsAutoSyncResult    = site.IsAutoSyncResult;
                    center.IsAutoSyncScore     = site.IsAutoSyncScore;
                    center.IsShowAnswer        = site.IsDisplayAnswer;
                    HomeController._centerdata = center;
                    return(RedirectToAction(nameof(HomeController.Index), "Home"));
                }
                if (result.RequiresTwoFactor)
                {
                    return(RedirectToAction(nameof(SendCode), new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));
                }
                if (result.IsLockedOut)
                {
                    _logger.LogWarning(2, "User account locked out.");
                    return(View("Lockout"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return(View(model));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public void GetTestRegisFrom3rd(string centerId)
        {
            //getcenterInfo
            var center = repoRegis.GetCenterData(centerId);
            var site   = repoRegis.GetSiteData(center.SiteId);

            List <AdminOnlineModelsBack.TestTaker> From3rd = new List <AdminOnlineModelsBack.TestTaker>();

            //ForTest
            //var site = new ViewModels.AdminOnlineModelsBack.Site
            //{
            //    MaxTestCount = 10
            //};
            //var center = new ViewModels.AdminOnlineModelsBack.Center
            //{
            //    CertDatas = new List<ViewModels.AdminOnlineModelsBack.CertData> {
            //        new ViewModels.AdminOnlineModelsBack.CertData { CertNo = "4050007", CertYear = "2550"},
            //    }
            //};

            //get from 3rd

            using (var client = new WebClient())
            {
                try
                {
                    foreach (var item in center.CertDatas)
                    {
                        string URL = string.Format("http://61.91.64.134/examservice/api/SyncData/{0}/{1}", item.CertNo, item.CertYear);

                        //var responseString = client.DownloadString(URL);
                        var dataByte       = client.DownloadData(URL);
                        var responseString = System.Text.Encoding.UTF8.GetString(dataByte);
                        var data           = Newtonsoft.Json.JsonConvert.DeserializeObject <IEnumerable <AdminOnlineModelsBack.TestTaker> >(responseString);

                        if (data.Count() > 0)
                        {
                            From3rd.AddRange(data);
                        }
                    }
                }
                catch (Exception e)
                {
                    throw new Exception(" การเชื่อมการ กรม ขัดข้อง " + e.ToString());
                }
            }

            //get from testTaker
            if (From3rd.Count() > 0)
            {
                // เอา เปรียบเทียบ เอาคนที่ยังไม่เคย นำเช้า

                var oldRegis = repoRegis.ListTestRegisByPID(From3rd.Select(x => x.ID_NO).ToList());

                List <AdminOnlineModelsBack.TestRegistration> _listNewTestRegis = new List <AdminOnlineModelsBack.TestRegistration>();
                foreach (var item in From3rd)
                {
                    string subjectName = string.Empty;

                    if (item.PLT_CODE == "11")
                    {
                        subjectName = "รถยนต์ส่วนบุคคลชั่วคราว";
                    }
                    else if (item.PLT_CODE == "13")
                    {
                        subjectName = "รถจักรยานยนต์ส่วนบุคคลชั่วคราว";
                    }

                    var regDate = DateTime.Parse(item.REQ_DATE).ToUniversalTime();

                    //var ss = oldRegis.Where(x => x.PID == item.ID_NO && x.RegDate.Date == regDate.Date && x.CenterId == centerId).ToList();
                    //var ss2 = oldRegis.Where(x => x.PID == item.ID_NO && x.RegDate.Day == regDate.Day && x.RegDate.Month == regDate.Month && x.RegDate.Year == regDate.Year && x.CenterId == centerId).ToList();
                    //var ss3 = oldRegis.Where(x => x.PID == item.ID_NO && x.CenterId == centerId).ToList();
                    //var ss4 = oldRegis.Where(x => x.PID == item.ID_NO && x.RegDate >= regDate.Date && x.RegDate < regDate.Date.AddDays(1) && x.CenterId == centerId).ToList();



                    if (oldRegis.Where(x => x.PID == item.ID_NO && x.CenterId == centerId && x.RegDate == regDate).Count() < 1)
                    {
                        var newTestreggis = new AdminOnlineModelsBack.TestRegistration
                        {
                            _id           = Guid.NewGuid().ToString(),
                            Title         = item.TITLE_CODE,
                            FirstName     = item.FNAME,
                            LastName      = item.LNAME,
                            SubjectCode   = item.PLT_CODE,
                            SubjectName   = subjectName,
                            ExamLanguage  = "th",
                            VoiceLanguage = "th",
                            RegDate       = regDate, //TODO : Bug datetime mongo
                            RegDateString = item.REQ_DATE,
                            ExpiredDate   = regDate.AddDays(90),
                            SiteId        = site._id,
                            CenterId      = center._id,
                            ForPractice   = false,
                            ForTestSystem = false,
                            Status        = "APPROVED",
                            ExamStatus    = "UNSEND",
                            PID           = item.ID_NO,
                            ExamNumber    = item.ID_NO,
                            ExamPeriod    = "all",
                            AppointDate   = null, //กำหนดได้อีกทีตอนนัด
                            MaxCount      = site.MaxTestCount,
                            CertData      = center.CertDatas.Where(x => x.CertNo == item.CERT_NO && x.CertYear == item.CERT_YY).FirstOrDefault(),
                        };
                        _listNewTestRegis.Add(newTestreggis);
                    }
                }

                if (_listNewTestRegis.Count > 0)
                {
                    // บันทึก ใส่ db  TestRegistration
                    repoRegis.CreateTestRegis(_listNewTestRegis.ToList());
                }
            }

            else
            {
            }
        }