public async Task SendInvitationByEmailConfirmationToken(string userId) { var emailTokenLifespan = Double.Parse(_configuration["TokenProviders:EmailConfirmTokenProvider:TokenLifespan"]); using (var uow = _uowProvider.CreateUnitOfWork()) { var repository = uow.GetRepository <ApplicationUser>(); // get user and update emailConfirm data var entity = await repository.GetAsync(userId); entity.EmailConfirmInvitationDate = DateTimeOffset.UtcNow; entity.EmailConfirmTokenLifespan = emailTokenLifespan; repository.Update(entity); uow.SaveChanges(); // send invitation using email confirm token var confirmationToken = await GetEmailConfirmationToken(entity.Email); string codeHtmlVersion = HttpUtility.UrlEncode(confirmationToken); var confirmationUrl = $@"http://localhost:5050/Account/RegisterByEmail/?userId={ entity.Id }&code={ codeHtmlVersion }"; await _emailSenderService.SendAccountConfirmationEmailAsync(null, entity.Email, "Confirm your account", confirmationUrl); } }