public async Task <dynamic> CreateNewAccount(dynamic accountDto) { if (accountDto == null) { throw new ArgumentNullException(nameof(accountDto)); } var account = Mapper.Map <User>(accountDto); if (await _validateAccount.CheckAccountExist(accountDto.UserName)) { return(AccountRegisterResult.AccountExist); } if (await _validateAccount.CheckEmailExist(accountDto.Email)) { return(AccountRegisterResult.EmailExist); } var randomPassword = GenerateToken.RandomString(); var result = await _userManager.CreateAsync(account, randomPassword); if (!result.Succeeded) { return(AccountRegisterResult.Failed); } var code = await _userManager.GenerateEmailConfirmationTokenAsync(account); var callbackUrl = _urlHelperFactory.GetUrlHelper(_actionAccessor.ActionContext) .Action("ConfirmEmail", "Account", new { userId = account.Id, code }, _httpContextAccessor.HttpContext.Request.Scheme); return(new RegisterViewModel() { User = account, Code = code, CallbackUrl = callbackUrl, RandomPassword = randomPassword }); }