public async Task <ActionResult <HttpResponseMessage> > CreateUser([FromBody] UserCreationCommand command) { if (command == null) { return(BadRequest("User cannot be null")); } command.UserCreates = User.Identity.Name; var newUser = new ApplicationUser(); newUser.UserName = command.Email; newUser.FirstName = command.FirstName; newUser.LastName = command.LastName; newUser.Email = command.Email; var userIdentity = await _userManager.CreateAsync(newUser, command.PassWord); var response = new HttpResponseMessage(HttpStatusCode.BadRequest); if (!userIdentity.Succeeded) { var errorMessage = ""; foreach (var error in userIdentity.Errors) { errorMessage += error.Description + " <br> "; } return(BadRequest(new { message = errorMessage })); } var to = new List <string>(); to.Add(newUser.Email); var token = HttpUtility.UrlEncode(await _userManager.GenerateEmailConfirmationTokenAsync(newUser)); var confirmationLink = "<center> Hello " + newUser.FirstName + " " + newUser.LastName + " welcome to DevNet, click " + "<a href=\'" + _options.Value.UrlBaseWeb + "/login/confirmationEmail?code=" + token + "&email=" + newUser.Email + "'> here </a>" + "to get access.</center>"; var message = new Message { Body = confirmationLink, To = to, Subject = "DevNet Email Confirmation" }; await _notification.SendEmailHTMLAsync(message); response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent("Success"); return(Ok(response)); }
public async Task <ActionResult <HttpResponseMessage> > ConfirmEmail(UserCreationCommand command) { var response = new HttpResponseMessage(HttpStatusCode.BadRequest); var user = await _userManager.FindByEmailAsync(command.Email); if (user == null) { response.Content = new StringContent("User confirmation failed"); } var result = await _userManager.ConfirmEmailAsync(user, command.Token); if (result.Succeeded) { response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent("Success"); } return(response); }