Blog.Admin.Web.Controllers.UsersController.Edit C# (CSharp) Method

Edit() private method

private Edit ( UserViewModel model ) : Task
model Blog.Admin.Web.Models.UserViewModel
return Task
        public async Task<ActionResult> Edit(UserViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.ErrorMessage = "Something went wrong. Please try again.";
                    return View(model);
                }

                var user = await UserManager.FindByNameAsync(model.UserName);
                if (user == null)
                {
                    ViewBag.IdentityMissing = true;
                    throw new Exception(string.Format("User {0} has no identity.", model.UserName));
                }

                user.Email = model.EmailAddress;

                var result = await UserManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    var roles = await UserManager.GetRolesAsync(user.Id);
                    if (roles.Count > 0)
                    {
                        var roleRemoveResult = await UserManager.RemoveFromRolesAsync(user.Id, roles.ToArray());
                        if (!roleRemoveResult.Succeeded) throw new Exception("Failed to update this user's role.");
                    }

                    var addToRoleResult = await UserManager.AddToRoleAsync(user.Id, model.SelectedRole);
                    if (!addToRoleResult.Succeeded)
                    {
                        AddErrors(addToRoleResult);
                        return View(model);
                    }

                    var userProfile = new User
                                      {
                                          Id = model.Id,
                                          UserName = model.UserName,
                                          FirstName = model.FirstName,
                                          LastName = model.LastName,
                                          BirthDate = model.BirthDate,
                                          IdentityId = user.Id,
                                          EmailAddress = model.EmailAddress,
                                          Picture = model.Picture,
                                          Background = model.Background
                                      };

                    var blogUser = _usersResource.Update(userProfile);
                    if (blogUser.Error == null) return RedirectToAction("Index", "Users");

                    ViewBag.UserCreationError = blogUser.Error.Message;
                    return View(model);
                }

                AddErrors(result);
                return View(model);
            }
            catch (Exception ex)
            {
                _errorSignaler.SignalFromCurrentContext(ex);
                ViewBag.ErrorMessage = ex.Message;
                return View(model);
            }
        }

Same methods

UsersController::Edit ( int id ) : Task