public async Task <LoginResponseModel> LoginUser(LoginRequestModel model)
        {
            var getUserIdByCredentialsRequest = new GetUserIdByCredentialsRequest
            {
                Email    = model.Email,
                Password = _sha512Service.GetBase64Hash(model.Password)
            };

            var userIdResponse = await _userManagementService.GetIdByCredentials(getUserIdByCredentialsRequest);

            var randomString = _randomStringService.GetRandomString(128);

            var accessToken = _accessTokenService.Create(new UserAccessTokenPayload
            {
                Id = userIdResponse.Id
            }, randomString);

            await _userManagementService.UpdateRefreshToken(new UpdateUserRefreshTokenRequest
            {
                Id           = userIdResponse.Id,
                RefreshToken = randomString
            });

            return(new LoginResponseModel
            {
                RefreshToken = randomString,
                AccessToken = accessToken
            });
        }
        public async Task <GetUserIdResponse> GetIdByCredentials(GetUserIdByCredentialsRequest request)
        {
            var user = await DbContext.Users.FirstOrDefaultAsync(u =>
                                                                 u.Email == request.Email && u.Password == request.Password);

            if (user == null)
            {
                throw new EntityNotFoundException <User>();
            }

            return(new GetUserIdResponse
            {
                Id = user.Id
            });
        }
        public async Task <GetUserIdResponse> GetIdByCredentials(GetUserIdByCredentialsRequest request)
        {
            var userIdResponse = await ProcessRequest(request, _userRepository.GetIdByCredentials);

            return(userIdResponse);
        }