public ActionResult Edit(UniversalViewModel model) { try { Guid roleId = model.RoleId.ToGuid(); var thisRole = db.aspnet_Roles.Where(r => r.RoleId == roleId).FirstOrDefault(); thisRole.RoleName = model.Role; db.SaveChanges(); return(RedirectToAction("Index")); } catch (Exception e) { return(View()); } }
public ActionResult Edit(UniversalViewModel model) { model.IsSuccess = ModelState.IsValid; model.StatusMsg = ModelState.ErrorMessages(); if (model.IsSuccess) { model.aspnet_User = Membership.GetUser(model.Guid); if (model.aspnet_User.IsNotNull()) { // TODO: Need to update username using entity framework AM.Model.aspnet_Users user = db.aspnet_Users.FirstOrDefault(au => au.UserId == model.Guid); // Entity framework changes user.UserName = model.Email.ToLower(); user.LoweredUserName = model.Email.ToLower(); user.aspnet_Membership.Email = model.Email.ToLower(); user.aspnet_Membership.LoweredEmail = model.Email.ToLower(); Profile profile = db.Profiles.FirstOrDefault(u => u.UserId == model.Guid); if (profile.IsNull()) { profile = new Profile() { FirstName = model.FirstName, LastName = model.LastName, PhoneNumber = model.PhoneNumber, UserId = model.Guid, Guid = Guid.NewGuid() }; db.Profiles.Add(profile); } else { profile.FirstName = model.FirstName; profile.LastName = model.LastName; profile.PhoneNumber = model.PhoneNumber; } db.SaveChanges(); if (Roles.GetRolesForUser(user.UserName).IsNullOrEmpty()) { model.CurrentRole = ""; } else { model.CurrentRole = Roles.GetRolesForUser(user.UserName)[0]; } try { List <String> assignedRoles = Roles.GetRolesForUser(user.UserName).ToList(); List <String> rolesToRemove = assignedRoles.Where(r => !model.SelectedRoles.Contains(r)).ToList(); List <String> rolesToAdd = model.SelectedRoles.Where(r => !assignedRoles.Contains(r)).ToList(); if (rolesToAdd.IsNotNullOrEmpty()) { Roles.AddUserToRoles(user.UserName, rolesToAdd.ToArray()); } if (rolesToRemove.IsNotNullOrEmpty()) { Roles.RemoveUserFromRoles(user.UserName, rolesToRemove.ToArray()); } // Other way //for (int i = 0; i < assignedRoles.Count(); i++) { // if (!model.SelectedRoles.Contains(assignedRoles[i])) { // Roles.RemoveUserFromRole(user.UserName, assignedRoles[i]); // } //} } catch (Exception ex) { model.IsSuccess = false; model.StatusMsg = "Error: " + ex.Message; } // TODO: Change role assignment from singular to plural. Add all new roles to list, and new model list to roles, then remove roles from the difference of whats currently there. //if (model.SelectedRoles != model.CurrentRole) { // Roles.RemoveUserFromRole(user.UserName, model.CurrentRole); // Roles.AddUserToRole(user.UserName, model.SelectedRole); //} //return RedirectToAction("Index", new { IsSuccess = true, ViewMode = AM.Model.Enums.ViewModes.Edit }); } else { model.IsSuccess = false; //model.StatusMsg = "User with email " + model.Email.ToLower() + ", no longer exists. Please return to the Users Listing."; model.StatusMsg = string.Format("User with email {0}, no longer exists. Please return to the Users Listing.", model.Email.ToLower()); } } model.UserRoles = Roles.GetAllRoles().ToList(); model.UserRoleList = new SelectList(model.UserRoles); model.ViewMode = Model.Enums.ViewModes.Edit; if (Request.IsAjaxRequest()) { return(Json(new { IsSuccess = model.IsSuccess, StatusMsg = model.StatusMsg, RedirectUrl = Url.Action("Index", "Users", new { area = "", IsSuccess = model.IsSuccess, ViewMode = AM.Model.Enums.ViewModes.Edit }) }, JsonRequestBehavior.AllowGet)); } return(View(model)); }