public ActionResult UpdatePms(ObjectPermission obpms) { if ((ModelState.IsValid && Session["MultiTypeCheckEdit"] == null) || (ModelState.IsValid && Session["MultiType"] != null)) { var checkPermissionInObject = _iPMSService.Query.Where(m => m.ObjectRBAC.objectid == obpms.ObjectId) .Select(n => n.permissionid) .ToList(); int count = checkPermissionInObject.Count; if (count <= 8) { var checkname = _iPMSService.Query.FirstOrDefault(x => x.name.ToUpper() == obpms.PmsName.ToUpper()); if (checkname == null || checkname.permissionid == obpms.PermissionId) { try { objectRbac objRecord = new objectRbac(); objRecord.objectid = obpms.ObjectId; permission p = new permission(); p = _iPMSService.Getbykey(obpms.PermissionId); p.name = obpms.PmsName.Trim(); p.Description = obpms.DesPms.Trim(); p.ObjectRBAC = objRecord; _iPMSService.BeginTran(); if (Session["MultiType"] != null) { var Type_pms = _ITYPE_PERMISSIONService.Getbykey(obpms.PermissionId); string TYPE_PERMISSIONMULTI = Session["MultiType"].ToString(); Type_pms.TYPE_PERMISSIONMULTI = TYPE_PERMISSIONMULTI; var listrole = _iroleService.Query.Where(m => m.Permissions.Any(n => n.permissionid == obpms.PermissionId)); foreach (var item in listrole) { var typerole = _iTypeRoleService.Query.FirstOrDefault(m => m.ROLE_ID == item.roleid) != null?_iTypeRoleService.Query.FirstOrDefault(m => m.ROLE_ID == item.roleid).TYPE : -1; if (!(TYPE_PERMISSIONMULTI.Contains(typerole + ""))) { IList <permission> listtam = item.Permissions; var bientam_PMS = listtam.FirstOrDefault(m => m.permissionid == obpms.PermissionId); listtam.Remove(bientam_PMS); item.Permissions = listtam; _iroleService.Update(item); } } _ITYPE_PERMISSIONService.Update(Type_pms); } _iPMSService.Update(p); _iPMSService.CommitTran(); _iLogSystemService.CreateNew(HttpContext.User.Identity.Name, "Cập nhật tác vụ ", "Thực hiện chức năng cập nhật tác vụ", Helper.GetIPAddress.GetVisitorIPAddress(), HttpContext.Request.Browser.Browser); } catch (Exception e) { _iPMSService.RolbackTran(); ViewData["EditError"] = e.Message; } } else { ViewData["EditError"] = "Tên đã tồn tại, xin chọn tên khác!"; } } else { ViewData["EditError"] = "Một chức năng chỉ chứa tối đa 8 tác vụ, nhóm hiện đã có 8 tác vụ, vui lòng chọn chức năng khác!"; } } else { ViewData["EditError"] = "Bạn phải nhập đầy đủ thông tin"; } Session["MultiType"] = null; Session["MultiTypeCheckEdit"] = null; return(PartialView("PERMISSIONPartial", GetAllPms())); }