Esempio n. 1
0
        public async Task <TokenDTO> LoginAsync(string Username, string Password)
        {
            try
            {
                Employee user = Context.Employee.Where(x => x.Username == Username).FirstOrDefault();
                if (user == null)
                {
                    EmployeeDTO ADUser = LDAPService.LDAP_Authenticate(Username, Password);
                    if (ADUser.Username == null)
                    {
                        tokens.Message = "ไม่พบข้อมูลผู้ใช้งาน";
                        return(tokens);
                    }
                    else
                    {
                        string SystemCode = await CreateNewUserAsync(ADUser);

                        tokens.empCode = SystemCode;
                        tokens.Message = "Login Success";
                        return(tokens);
                    }
                }
                else
                {
                    Password = EncryptionService.HashToMD5(Password + user.Passwordsalt);
                    Employee        users           = Context.Employee.Where(x => x.Username == Username && x.Password == Password).FirstOrDefault();
                    EmployeeProfile employeeProfile = Context.EmployeeProfile.Where(x => x.Empcode == user.Empcode).FirstOrDefault();
                    DbPosition      dbPosition      = Context.DbPosition.Where(x => x.PositonCode == employeeProfile.PositionCode).FirstOrDefault();
                    if (users == null)
                    {
                        //user.UpdDate = DateTime.Now;
                        //Context.Employee.Update(user);
                        //Context.SaveChanges();
                        tokens.Message = "ชื่อผู้ใช้ และ รหัสผ่านไม่ถูกต้อง";
                        return(tokens);
                    }
                    else
                    {
                        //TOKEN
                        tokens.empCode      = user.Empcode;
                        tokens.Username     = users.Username;
                        tokens.Firstname    = employeeProfile.FirstnameEn;
                        tokens.Lastname     = employeeProfile.LastnameEn;
                        tokens.PositionCode = dbPosition.PositonCode;
                        tokens.Token        = GenerateToken(user.Empcode);
                        tokens.Message      = "Login Success";
                        return(tokens);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }