public void Execute(SaveUserRequest userRequest)
        {
            userRequest.Email    = userRequest.Email.ToLower();
            userRequest.Username = userRequest.Username.ToLower();

            CheckIfUserExist(userRequest);

            User user = new User
            {
                Creation   = DateTime.UtcNow,
                Email      = userRequest.Email,
                FirstName  = userRequest.FirstName,
                LastName   = userRequest.LastName,
                Phone      = userRequest.Phone,
                Username   = userRequest.Username,
                Id         = Guid.NewGuid(),
                LastAccess = DateTime.UtcNow,
                Claims     = new HashSet <string>()
            };

            if (userRequest.Claims != null)
            {
                foreach (var claim in userRequest.Claims)
                {
                    user.Claims.Add(claim.ToLower());
                }
            }

            user.Password = _passwordHash.Converter(userRequest.Password, Encoding.ASCII);

            _userdata.Save(user);
        }
        public UserAuthInfoResponse Execute(GetUserAuthByUsernameAndPasswordQueryRequest request)
        {
            request.Password = _passwordHash.Converter(request.Password, Encoding.ASCII);

            UserAuthInfoResponse userAccess = _userdata.GetUserAuthInfo(request.Username, request.Password);

            return(userAccess);
        }
        public void Execute(UpdateUserRequest userRequest)
        {
            User user = _userdata.GetUser(userRequest.Id);

            if (user is null)
            {
                throw new ResponseException(HttpStatusCode.BadRequest, $"The user id does not exist");
            }

            user.Email     = userRequest.Email;
            user.Username  = userRequest.Username;
            user.FirstName = userRequest.FirstName;
            user.LastName  = userRequest.LastName;
            user.Phone     = userRequest.Phone;

            if (!string.IsNullOrWhiteSpace(userRequest.Password))
            {
                user.Password = _passwordHash.Converter(userRequest.Password, Encoding.ASCII);
            }

            _userdata.Update(user);
        }