Exemplo n.º 1
0
        public RegisteredUsersDTO Read()
        {
            RegisteredUsersDTO usersDTO = new RegisteredUsersDTO();

            foreach (var user in repo.Read())
            {
                usersDTO.NumberOf++;
                usersDTO.registeredUsers.Add(new RegisteredUserDTO()
                {
                    Identifier = user.Identifier,
                    Username   = user.Username,
                    Password   = user.Password,
                    Lastname   = user.Lastname,
                    Firstname  = user.Firstname,
                    IsActive   = user.IsActive
                });
            }

            usersDTO.IsValid = true;

            return(usersDTO);
        }
        /* The unit of work would be
         * a. authenticate user
         * b. update LastLogedIn
         * c. reset number of attempts */

        public UserLogin LoginUser(string username, string password)
        {
            UserLogin user         = new UserLogin();
            Login     loginDetails = new Login(username, password);

            /* get users details */
            RegisteredUser userDetails = RegUserRepo.Read(loginDetails.UserName);

            if (userDetails != null)
            {
                /* ***************************************************** */
                /* have a matched user, need to ascertain if valid       */
                /* Check for attempts, Locked account and password match */
                /* ***************************************************** */

                if (CheckLocked(ref user, loginDetails, userDetails))
                {
                    if (CheckAttempts(ref user, loginDetails, userDetails))
                    {
                        CheckPassword(ref user, loginDetails, userDetails);
                    }
                }

                /* map to UserLogin object */
                user.UserName     = userDetails.Username;
                user.LastLoggedIn = userDetails.LastLoggedIn;
                user.FirstName    = userDetails.Firstname;
                user.LastName     = userDetails.Lastname;
                user.Identifier   = userDetails.Identifier;
            }
            else
            {
                /* Is not a valid user */
                user.IsLoggedIn = false;
                user.Status     = UserStatus.unkown;
            }

            return(user);
        }