示例#1
0
        public async Task <IActionResult> Edit()
        {
            var user = await userManager.FindByNameAsync(HttpContext.User.Identity.Name);

            var viewModel = new EditProfileViewData();

            if (user != null)
            {
                viewModel = new EditProfileViewData
                {
                    Email      = user.Email,
                    Name       = user.FirstName,
                    SecondName = user.SecondName
                };
            }
            return(View(viewModel));
        }
示例#2
0
        public async Task <IActionResult> Edit(EditProfileViewData model)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByNameAsync(User.Identity.Name);

                if (!string.IsNullOrEmpty(model.Name))
                {
                    user.FirstName = model.Name;
                }
                if (!string.IsNullOrEmpty(model.SecondName))
                {
                    user.SecondName = model.SecondName;
                }
                if (!string.IsNullOrEmpty(model.Email))
                {
                    user.Email = model.Email;
                }
                foreach (var validator in userManager.UserValidators)
                {
                    var validation = await validator.ValidateAsync(userManager, user);

                    if (!validation.Succeeded)
                    {
                        AddErrorsFromResult(validation);
                    }
                }
                if (ModelState.IsValid)
                {
                    var result = await userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        TempData["Toast"] = Toasts.AccountEdited;
                        return(RedirectToAction(nameof(Details)));
                    }
                    else
                    {
                        AddErrorsFromResult(result);
                    }
                }
            }
            return(View(model));
        }