Пример #1
0
        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));
        }
Пример #2
0
        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);
        }