public async Task <ServiceResponseData> SendUserAccountConfirmationLinkAsync(string email) { var responseData = new ServiceResponseData(); try { var user = await _userManager.FindByEmailAsync(email); if (user == null) { throw new Exception("Invalid email"); } if (user.EmailConfirmed) { throw new Exception("Your account has been confirmed already!"); } var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); var securityToken = DateTime.Now.ToString("MMddmmssff"); var userEntity = GetAspNetUserEntity(user.Id); userEntity.SecurityToken = securityToken; _aspNetUserRepository.Update(userEntity); _unitOfWork.Commit(); var baseUrl = _configuration["AngularAppUrl"]; //_emailHelper.GetApplicationBaseUrl(); //var callBackUrl = string.Format("{0}/confirmemail?userId={1}&code={2}", baseUrl, HttpUtility.UrlEncode(user.Id.ToString()), HttpUtility.UrlEncode(token)); var callBackUrl = string.Format("{0}/confirmemail/{1}/{2}", baseUrl, user.Id, securityToken); _emailManager.SendAccountConfirmationEmail(user.FirstName, user.Email, callBackUrl); } catch (Exception ex) { responseData.ErrorMessage = ex.ProcessException(_errorService); responseData.IsSuccess = false; } return(await Task.FromResult(responseData)); }