public PartialViewResult EditRoleUser(int roleID) { IEnumerable <UserIdUserNameRoles> userIdName = from x in db.uRoleUsers.Where(n => n.uRoleID == roleID) join y in db.AspNetUsers on x.uUserID equals y.UserName select new UserIdUserNameRoles { UserID = x.uUserID, UserName = y.Name }; int limitUser = db.uRoles.Where(n => n.uRoleID == roleID).FirstOrDefault().uRoleNums; List <SelectListItem> una = new List <SelectListItem>(); IEnumerable <IsEmployee> isEmployees = db.IsEmployee.ToList(); foreach (IsEmployee ies in isEmployees) { string username = db.AspNetUsers.Where(n => n.UserName == ies.UserId).Select(n => n.Name).FirstOrDefault(); una.Add(new SelectListItem { Value = ies.UserId, Text = string.Format("{0}_{1}", username, ies.UserId) }); } RoleEditUserViewModel roleEditUserViewModel = new RoleEditUserViewModel { roleID = roleID, UserIDNames = userIdName, userNameAll = una, limit = limitUser }; return(PartialView(roleEditUserViewModel)); }
public PartialViewResult EditRoleUser(FormCollection form) { int roleID = Convert.ToInt32(form["roleID"]); IEnumerable <IsEmployee> iemp = db.IsEmployee.ToList(); int limitUser = db.uRoles.Where(n => n.uRoleID == roleID).FirstOrDefault().uRoleNums; List <string> editUserNamesList = new List <string>(); foreach (var key in form.AllKeys) { if (key.Contains("userName") && iemp.Where(n => n.UserId == form.Get(key)).Count() > 0) { editUserNamesList.Add(form.Get(key)); } } if (editUserNamesList.Count <= limitUser) { IEnumerable <uRoleUsers> roleurus = db.uRoleUsers.Where(n => n.uRoleID == roleID).ToList(); foreach (uRoleUsers uru in roleurus) { if (editUserNamesList.Contains(uru.uUserID)) { editUserNamesList.Remove(uru.uUserID); } else { db.uRoleUsers.Remove(uru); } } foreach (string editUserName in editUserNamesList) { uRoleUsers urus = new uRoleUsers { uRoleID = roleID, uUserID = editUserName }; db.uRoleUsers.Add(urus); } db.SaveChanges(); ViewBag.StatusMessage = "編輯角色使用者成功。"; } else { ViewBag.StatusMessage = "編輯角色超出人數。"; } IEnumerable <UserIdUserNameRoles> userIdName = from x in db.uRoleUsers.Where(n => n.uRoleID == roleID) join y in db.AspNetUsers on x.uUserID equals y.UserName select new UserIdUserNameRoles { UserID = x.uUserID, UserName = y.Name }; List <SelectListItem> una = new List <SelectListItem>(); IEnumerable <IsEmployee> isEmployees = db.IsEmployee.ToList(); foreach (IsEmployee ies in isEmployees) { string username = db.AspNetUsers.Where(n => n.UserName == ies.UserId).Select(n => n.Name).FirstOrDefault(); una.Add(new SelectListItem { Value = ies.UserId, Text = string.Format("{0}_{1}", username, ies.UserId) }); } RoleEditUserViewModel roleEditUserViewModel = new RoleEditUserViewModel { roleID = roleID, UserIDNames = userIdName, userNameAll = una, limit = limitUser }; return(PartialView(roleEditUserViewModel)); }