Пример #1
0
        private async Task <Domain.ValueTypes.Account> RegisterAccountAsync()
        {
            var account = new Domain.ValueTypes.Account
            {
                FirstName      = FirstName,
                LastName       = LastName,
                Email          = Email,
                HashedPassword = _hashService.Hash(Password)
            };

            _citationContext.Accounts.Add(account);
            await _citationContext.SaveChangesAsync();

            return(account);
        }
Пример #2
0
        private async Task SendRegisterEmailAsync(Domain.ValueTypes.Account account)
        {
            var requestUrl = $"https://{Request.Host}";

            var token    = GenerateToken();
            var tokenUrl = QueryHelpers.AddQueryString($"{requestUrl}/Account/Verify", "token", token);

            _citationContext.AccountVerifications.Add(new AccountVerification
            {
                Account           = account,
                IsVerified        = false,
                VerificationToken = token
            });

            await _emailService.SendAsync(new Email
            {
                From    = "*****@*****.**",
                To      = account.Email,
                Subject = "Email verification for CitationNeeded",
                Content = $"Your verfication link: \n<a href=\"{tokenUrl}\">{tokenUrl}</a>"
            });

            await _citationContext.SaveChangesAsync();
        }