Beispiel #1
0
        public PartialViewResult EditRole(int roleID)
        {
            IEnumerable <Department> dpts = db.Department.ToList();
            List <SelectListItem>    sli  = new List <SelectListItem>();

            foreach (Department dpt in dpts)
            {
                sli.Add(new SelectListItem {
                    Value = dpt.departmentID.ToString(), Text = dpt.departmentName
                });
            }

            IEnumerable <uRoles>  urss  = db.uRoles.ToList();
            List <SelectListItem> ursli = new List <SelectListItem>();

            foreach (uRoles urs in urss)
            {
                ursli.Add(new SelectListItem {
                    Value = urs.uRoleID.ToString(), Text = urs.uRoleName
                });
            }

            uRoles uRole = db.uRoles.Find(roleID);

            RoleEdit roleEdit = new RoleEdit
            {
                departments = sli,
                uRoles      = uRole,
                roleID      = roleID,
                supervisors = ursli
            };

            return(PartialView(roleEdit));
        }
Beispiel #2
0
        public JsonResult ECGetRolesList(int roleID = -1, int options = -1)
        {
            IEnumerable <uRoles> result = db.uRoles.ToList();
            IEnumerable <uRoles> uRoleO = db.uRoles.ToList();

            if (roleID != -1 && options != -1)
            {
                uRoles rfilter = db.uRoles.Where(n => n.uRoleID == roleID).FirstOrDefault();
                switch (options)
                {
                case 1:
                    result = result.Where(n => n.uRoleID == rfilter.supervisorID);
                    break;

                case 2:
                    List <uRoles> rList = new List <uRoles>();
                    if (rfilter != null)
                    {
                        if (rfilter.supervisorID.HasValue)
                        {
                            RoleMethod rolem = new RoleMethod();
                            rList = rolem.allSupervisorID(rfilter.supervisorID.Value, rList);
                        }
                    }
                    result = rList;
                    break;

                default:
                    break;
                }
            }
            IEnumerable <uRolesWithDpmtSurName> result2 = from urli in result
                                                          join d in db.Department on urli.departmentID equals d.departmentID
                                                          orderby d.departmentName
                                                          select new uRolesWithDpmtSurName
            {
                uRoles     = urli,
                Department = d.departmentName
            };
            List <uRolesWithDpmtSurName> result2li = new List <uRolesWithDpmtSurName>();

            foreach (var rff in result2)
            {
                if (rff.uRoles.supervisorID.HasValue)
                {
                    rff.uRoleSurName = uRoleO.Where(n => n.uRoleID == rff.uRoles.supervisorID.Value).Select(n => n.uRoleName).FirstOrDefault();
                }
                else
                {
                    rff.uRoleSurName = "無";
                }
                result2li.Add(rff);
            }
            return(Json(result2li, JsonRequestBehavior.AllowGet));
        }
Beispiel #3
0
        public PartialViewResult NewRole(RoleEdit model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView(model));
            }

            uRoles uRoles = new uRoles
            {
                uRoleName        = model.uRoles.uRoleName,
                uRoleDescription = model.uRoles.uRoleDescription,
                uRoleNums        = model.uRoles.uRoleNums,
                departmentID     = model.uRoles.departmentID,
                registedDate     = DateTime.Now
            };

            dbuRoles.Create(uRoles);

            ViewBag.StatusMessage = "新增角色成功。";

            IEnumerable <Department> dpts = db.Department.ToList();
            List <SelectListItem>    sli  = new List <SelectListItem>();

            foreach (Department dpt in dpts)
            {
                sli.Add(new SelectListItem {
                    Value = dpt.departmentID.ToString(), Text = dpt.departmentName
                });
            }

            RoleEdit roleEdit = new RoleEdit
            {
                departments      = sli,
                autoClearNewRole = model.autoClearNewRole
            };

            return(PartialView(roleEdit));
        }
Beispiel #4
0
        public PartialViewResult EditRole(RoleEdit model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView(model));
            }
            int hadUser = db.uRoleUsers.Where(n => n.uRoleID == model.roleID).Count();

            if (hadUser <= model.uRoles.uRoleNums)
            {
                bool       checkDeathLoop = false;
                int?       csID           = model.uRoles.supervisorID;
                List <int> csIDList       = new List <int>();
                csIDList.Add(model.roleID);
                while (!checkDeathLoop)
                {
                    if (!csID.HasValue)
                    {
                        break;
                    }
                    else
                    {
                        if (csIDList.Contains(csID.Value))
                        {
                            checkDeathLoop = true;
                        }
                        else
                        {
                            csIDList.Add(csID.Value);
                            csID = db.uRoles.Where(n => n.uRoleID == csID).Select(n => n.supervisorID).FirstOrDefault();
                        }
                    }
                }
                if (!checkDeathLoop)
                {
                    uRoles ur = db.uRoles.Where(n => n.uRoleID == model.roleID).FirstOrDefault();
                    if (ur != null)
                    {
                        ur.uRoleName        = model.uRoles.uRoleName;
                        ur.uRoleDescription = model.uRoles.uRoleDescription;
                        ur.uRoleNums        = model.uRoles.uRoleNums;
                        ur.departmentID     = model.uRoles.departmentID;
                        ur.supervisorID     = model.uRoles.supervisorID;
                        dbuRoles.Update(ur);
                        ViewBag.StatusMessage = "編輯角色成功。";
                    }
                    else
                    {
                        ViewBag.StatusMessage = "編輯角色失敗。";
                    }
                    //uRoles uRoles = new uRoles
                    //{
                    //    uRoleID = model.roleID,
                    //    uRoleName = model.uRoles.uRoleName,
                    //    uRoleDescription = model.uRoles.uRoleDescription,
                    //    uRoleNums = model.uRoles.uRoleNums,
                    //    departmentID = model.uRoles.departmentID,
                    //    supervisorID = model.uRoles.supervisorID
                    //};
                }
                else
                {
                    ViewBag.StatusMessage = "產生循環主管階層,請重新設定。";
                }
            }
            else
            {
                ViewBag.StatusMessage = "已有使用者人數超過角色人數,請先減少使用者人數。";
            }


            IEnumerable <Department> dpts = db.Department.ToList();
            List <SelectListItem>    sli  = new List <SelectListItem>();

            foreach (Department dpt in dpts)
            {
                sli.Add(new SelectListItem {
                    Value = dpt.departmentID.ToString(), Text = dpt.departmentName
                });
            }

            IEnumerable <uRoles>  urss  = db.uRoles.ToList();
            List <SelectListItem> ursli = new List <SelectListItem>();

            foreach (uRoles urs in urss)
            {
                ursli.Add(new SelectListItem {
                    Value = urs.uRoleID.ToString(), Text = urs.uRoleName
                });
            }

            RoleEdit roleEdit = new RoleEdit
            {
                departments      = sli,
                autoClearNewRole = model.autoClearNewRole,
                supervisors      = ursli
            };

            return(PartialView(roleEdit));
        }