private OnboardUserViewModel AppendModelCombos(OnboardUserViewModel viewModel) { viewModel.Roles = this._roleManager .Roles .OrderBy(r => r.Name) .Select(r => new SelectListItem { Text = r.Name, Value = r.Id.ToString() }) .ToList(); viewModel.Roles.Insert(0, new SelectListItem { Text = "", Value = "" }); viewModel.Internals = new List <SelectListItem> { new SelectListItem { Text = "", Value = "" }, new SelectListItem { Text = "Internal User", Value = "I" }, new SelectListItem { Text = "External User", Value = "E" } }; return(viewModel); }
public async Task <ActionResult> UpdateUser([DataSourceRequest] DataSourceRequest request, OnboardUserViewModel user) { if (user != null && ModelState.IsValid) { var theUser = await this._userManager.FindByNameAsync(user.UserName); var userRoles = await this._userManager.GetRolesAsync(theUser); theUser.FirstName = user.FirstName; theUser.LastName = user.LastName; theUser.IsInternal = user.IsInternal ? "Y" : "N"; theUser.Email = user.Email; await this._userManager.UpdateAsync(theUser); if (userRoles != null && userRoles.Count > 0 && userRoles.First() != user.Role.RoleName) { await this._userManager.RemoveFromRoleAsync(theUser, userRoles.First()); await this._userManager.AddToRoleAsync(theUser, user.Role.RoleName); } } return(Json(new[] { user }.ToDataSourceResult(request, ModelState))); }
public async Task <ActionResult> UpdateSelectedUser(OnboardUserViewModel user) { if (user != null && ModelState.IsValid) { var theUser = await this._userManager.FindByNameAsync(user.UserName); var userRoles = await this._userManager.GetRolesAsync(theUser); theUser.FirstName = user.FirstName; theUser.LastName = user.LastName; theUser.IsInternal = user.IsInternal ? "Y" : "N"; theUser.Email = user.Email; await this._userManager.UpdateAsync(theUser); var roleName = this._roleManager.Roles.Where(r => r.Id == Convert.ToInt32(user.RoleId)).First().Name; if (userRoles != null && userRoles.Count > 0 && userRoles.First() != roleName) { await this._userManager.RemoveFromRoleAsync(theUser, userRoles.First()); await this._userManager.AddToRoleAsync(theUser, roleName); } } return(this.GetJsonResult(true, "Saved Successfully", null)); }
private JsonResult GetViewResult(OnboardUserViewModel user) { user = this.AppendModelCombos(user); return(this.Json( new { Success = false, Message = "Validation failed", Html = this.RenderPartialViewToString("_AddUser", user) })); }
public async Task <IActionResult> PrepareAddUser(string userId) { OnboardUserViewModel viewModel = new OnboardUserViewModel(); if (userId != null && userId.Length > 0) { List <OnboardUserViewModel> Users = await this.GetCurrentUsers(Convert.ToInt32(userId)); viewModel = Users.FirstOrDefault(); } viewModel = this.AppendModelCombos(viewModel); return(this.Json( new { Success = true, Message = string.Empty, Html = this.RenderPartialViewToString("_AddUser", viewModel) })); }
public async Task <ActionResult> RemoveUser([DataSourceRequest] DataSourceRequest request, OnboardUserViewModel user) { if (user != null) { var theUser = await this._userManager.FindByNameAsync(user.UserName); var result = await this._userManager.DeleteAsync(theUser); if (!result.Succeeded) { throw new AccessViolationException("Delete user " + user.UserName + " from application database failed with error(s): " + result.Errors); } } return(Json(new[] { user }.ToDataSourceResult(request, ModelState))); }
public async Task <ActionResult> AddUser(OnboardUserViewModel user) { if (user != null && ModelState.IsValid) { var theUser = await this._userManager.FindByNameAsync(user.UserName); var currentUser = await this._userManager.FindByNameAsync(User.Identity.Name); if (theUser == null) { var newUser = new ApplicationUser(); newUser.UserName = user.UserName; newUser.FirstName = user.FirstName; newUser.LastName = user.LastName; newUser.IsInternal = user.IsInternal ? "Y" : "N"; newUser.Email = user.Email; newUser.ProductOwnerId = currentUser.ProductOwnerId; //Look for duplicate user email. var dupUser = this._userManager.Users.Where(r => r.Email.ToLower() == user.Email.ToLower()).FirstOrDefault(); if (dupUser != null) { ModelState.AddModelError("Email", "An user with the same email " + user.Email + " already exists."); return(this.GetViewResult(user)); } var userResult = await this._userManager.CreateAsync(newUser); theUser = await this._userManager.FindByNameAsync(user.UserName); if (!userResult.Succeeded) { ModelState.AddModelError("UserName", "Adding user " + user.UserName + " failed with error(s): " + userResult.Errors); return(this.GetViewResult(user)); } else { //Set password if (user.Password == null || user.Password.Length == 0) { user.Password = "******"; } userResult = await this._userManager.AddPasswordAsync(theUser, user.Password); if (!userResult.Succeeded) { ModelState.AddModelError("Password", "Adding Password for user " + user.UserName + " failed with error(s): " + userResult.Errors); return(this.GetViewResult(user)); } } try { var roleName = this._roleManager.Roles.Where(r => r.Id == Convert.ToInt32(user.RoleId)).First().Name; var roleResult = await this._userManager.AddToRoleAsync(theUser, roleName); if (!userResult.Succeeded) { if (!roleResult.Succeeded) { ModelState.AddModelError("RoleId", "Creating role for user " + user.UserName + "failed with error(s): " + roleResult.Errors); return(this.GetViewResult(user)); } } } catch { ModelState.AddModelError("RoleId", "Role not found"); return(this.GetViewResult(user)); } return(this.GetJsonResult(true, "Saved Successfully", null)); } else { ModelState.AddModelError("UserName", "UserName already exists."); return(this.GetViewResult(user)); } } else { return(this.GetJsonResult(false, "Validation failed", this.ModelErrors())); } }