コード例 #1
0
        public async Task <bool> Handle(VerifyEmailTokenRequest message, IOutputPort <VerifyEmailTokenResponce> outputPort)
        {
            var decToken = HttpUtility.UrlDecode(message.Token);
            var newToken = Regex.Replace(decToken, "%2b", "+", RegexOptions.IgnoreCase);

            var confToken = await _emailTokenReposytory.GetToken(newToken);

            if (confToken == null)
            {
                outputPort.Handle(new VerifyEmailTokenResponce(false, "Wrong Token"));
                return(false);
            }

            var user = await _userReposytory.GetById(confToken.UserId);

            await _userReposytory.ConfirmEmail(user);

            outputPort.Handle(new VerifyEmailTokenResponce(true, "Email Successfuly verified"));

            return(true);
        }