Пример #1
0
        public async Task <IActionResult> SignUp([FromBody] UserEditViewModel user)
        {
            if (ModelState.IsValid)
            {
                if (user == null)
                {
                    return(BadRequest($"{nameof(user)} cannot be null"));
                }

                ApplicationUser appUser = Mapper.Map <ApplicationUser>(user);


                var result = await _accountManager.CreateUserAsync(appUser, new string[] { ApplicationRole.UserRoleName }, user.NewPassword);

                if (result.Item1)
                {
                    UserViewModel userVM = await GetUserViewModelHelper(appUser.Id);

                    var recipients = new EmailAddress[] {
                        new EmailAddress {
                            Name  = userVM.FirstName + " " + userVM.LastName,
                            Email = userVM.Email
                        }
                    };

                    var requestParam = new Dictionary <string, string>
                    {
                        { "{email}", userVM.Email }
                    };

                    var response = await EmailSender.SendEmailAsync(
                        recipients,
                        subject : "Adam.info Account Information",
                        content : EmailTemplates.GetAccountCreatedEmail(requestParam, "en"),
                        isHtml : true,
                        addBccs : true);

                    if (!response.Item1)
                    {
                        this.logger.LogWarning(new EventId(1, "Email Error"), null, $"Failed to send Email Error: {response.Item2}");
                    }

                    return(CreatedAtAction(GetUserByIdActionName, new { id = userVM.Id }, userVM));
                }

                AddErrors(result.Item2);
            }

            return(BadRequest(ModelState));
        }