public async Task <StoreUserModel> CreateUserAsync(CreateStoreUserModel createStoreUserModel) { var storeUser = mapper.Map <StoreUser>(createStoreUserModel); var user = await userManager.CreateAsync(storeUser, createStoreUserModel.Password); if (user.Succeeded) { var token = await userManager.GenerateEmailConfirmationTokenAsync(storeUser); var confirmPasswordLink = string.Concat(GlobalConfig.APIBaseUrl, $"/api/security/user/confirmemail?token={Base64UrlEncoder.Encode(token)}&email={storeUser.Email}"); var result = mapper.Map <StoreUserModel>(storeUser); var messageBuilder = new EmailBuilder(configuration) { To = new[] { storeUser.Email }, Subject = "Welcome To Bread2Bun", IsBodyHtml = true, Body = $"Hi {storeUser.FullName} , please click on the link below so that we can confirm your email address. <br/><br/>" + $"{confirmPasswordLink} <br/><br/>" + $"Happy eating!!!" }; await EmailBuilder.SendEmailAsync(messageBuilder); return(result); } else { var error = user.Errors.FirstOrDefault(); throw new ArgumentException(error.Description); } }
public async Task <IActionResult> Create([FromBody] CreateStoreUserModel createStoreUserModel) { try { var result = await securityService.CreateUserAsync(createStoreUserModel); await profileService.CreateUserProfile(result.Id); return(Created("", result)); } catch (Exception ex) { return(HandleExcpetion(ex)); } }