Example #1
0
        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));
        }
Example #2
0
        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));
        }