Beispiel #1
0
        public async Task ValidateEmailLinkAsync(ValidateConfirmEmailDTO confirmEmailDto)
        {
            var user = await _unitOfWork.UserRepository.SingleOrDefaultAsync(u => u.Id == confirmEmailDto.UserId);

            if (user == null)
            {
                throw new ApiException(HttpStatusCode.NotFound, "User was not found.");
            }

            if (user.IsEmailConfirmed == false)
            {
                var token = confirmEmailDto.AccessToken;

                if (_jwtManager.IsValid(token) && !_jwtManager.IsExpired(token))
                {
                    user.IsEmailConfirmed = true;
                    await _unitOfWork.Complete();
                }
                else
                {
                    throw new ApiException(HttpStatusCode.Forbidden, "Validation failed.");
                }
            }
        }
        public async Task <IActionResult> ValidateEmailLinkAsync(ValidateConfirmEmailDTO confirmEmailDto)
        {
            await _emailConfirmationService.ValidateEmailLinkAsync(confirmEmailDto);

            return(Ok());
        }