private List <string> FindParentInList(List <string> listId, string id, List <string> listParentId) { AdGroupUser obj = _context.AdGroupUsers.FirstOrDefault(x => x.GroupUserCode == id); if (obj != null) { var parentObj = _context.AdGroupUsers.FirstOrDefault(x => x.GroupUserCode == obj.ParentCode); if (parentObj != null && listId.Contains(parentObj.GroupUserCode)) { listParentId.Add(parentObj.GroupUserCode); FindParentInList(listId, parentObj.GroupUserCode, listParentId); } } return(listParentId); }
public JsonResult Insert([FromBody] AdGroupUser obj) { ////_logger.LogInformation(LoggingEvents.LogDb, "Insert group user"); //_actionLog.InsertActionLog("VIB_GROUP_USER", "Insert group user", obj, null,false); var msg = new JMessage() { Error = false }; try { var gu = _context.AdGroupUsers.FirstOrDefault(x => x.GroupUserCode == obj.GroupUserCode); if (gu == null) { obj.CreatedDate = DateTime.Now; _context.AdGroupUsers.Add(obj); var a = _context.SaveChanges(); msg.Title = String.Format(CommonUtil.ResourceValue("COM_MSG_ADD_SUCCESS"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT").ToLower()); ////_logger.LogInformation(LoggingEvents.LogDb, "Insert group user successfully"); //_actionLog.InsertActionLog("VIB_GROUP_USER", "Insert department/PC successfully", null, obj, "Insert"); } else { msg.Error = true; msg.Title = String.Format(CommonUtil.ResourceValue("COM_MSG_EXITS"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT")); return(Json(msg)); } } catch (Exception ex) { msg.Error = true; msg.Object = ex; msg.Title = String.Format(CommonUtil.ResourceValue("COM_MSG_ADD_FAILED"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT").ToLower()); } return(Json(msg)); }
public object DeleteItems([FromBody] List <string> listId) { var msg = new JMessage() { Error = false }; try { ////_logger.LogInformation(LoggingEvents.LogDb, "Delete list group user"); List <string> listRef = new List <string>(); List <string> listDel = new List <string>(); List <string> listDelChild = new List <string>(); List <string> listDelFinal = new List <string>(); List <AdGroupUser> listGroupUser = new List <AdGroupUser>(); foreach (var id in listId) { AdGroupUser obj = _context.AdGroupUsers.FirstOrDefault(x => x.GroupUserCode == id); if (obj != null) { var pms = _context.AdPermissions.FirstOrDefault(x => x.GroupUserCode == id); var uInGroup = _context.AdUserInGroups.FirstOrDefault(x => x.GroupUserCode == id); if (pms != null || uInGroup != null) { listRef.Add(id); } else { listDel.Add(id); } } } if (listRef.Count > 0) { if (listDel.Count > 0) { // Find list Id haven't child , this list can delete (list A) foreach (var id in listDel) { var idRef = _context.AdGroupUsers.FirstOrDefault(x => x.ParentCode == id); if (idRef == null) { listDelChild.Add(id); } } if (listDelChild.Count == 0) { msg.Error = true; msg.Title = String.Format(CommonUtil.ResourceValue("COM_ERR_LIST_OBJ_HAS_CHILD_OR_REF"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT")); //_logger.LogError(LoggingEvents.LogDb, "Delete list group user fail"); //_actionLog.InsertActionLogDeleteItem("VIB_GROUP_USER", "Delete list department/PC fail", null, null, "Error"); } else { // Find final list Id (parent, grandparent,...) begin from (list A), this list can delete. listDelFinal = listDelFinal.Concat(listDelChild).ToList(); foreach (var id in listDelChild) { var listAdd = FindParentInList(listDel, id, new List <string>()); listDelFinal = listDelFinal.Concat(listAdd).ToList(); } // Find list Id in selected list can't delete. foreach (var id in listDel) { if (!listDelFinal.Contains(id)) { listRef.Add(id); } } foreach (var idDel in listDelFinal) { AdGroupUser objDel = _context.AdGroupUsers.FirstOrDefault(x => x.GroupUserCode == idDel); listGroupUser.Add(objDel); _context.AdGroupUsers.Attach(objDel); _context.AdGroupUsers.Remove(objDel); } _context.SaveChanges(); msg.Error = true; msg.Title = String.Format(CommonUtil.ResourceValue("COM_DEL_SUCCESS_LIST_ITEM_BUT_HAS_CHILD_OR_REF"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT")); //_logger.LogError(LoggingEvents.LogDb, "Delete part of the group user list successfully"); //_actionLog.InsertActionLogDeleteItem("VIB_GROUP_USER", "Delete part of the department/PC list successfully", listGroupUser.ToArray(), null, "Delete"); } } else { msg.Error = true; msg.Title = String.Format(CommonUtil.ResourceValue("COM_ERR_LIST_OBJ_REF"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT").ToLower()); //_logger.LogError(LoggingEvents.LogDb, "Delete list group user fail"); //_actionLog.InsertActionLogDeleteItem("VIB_GROUP_USER", msg.Title, null, null, "Delete"); } } else { if (listDel.Count > 0) { // Find list Id haven't child , this list can delete (list A) foreach (var id in listDel) { var idRef = _context.AdGroupUsers.FirstOrDefault(x => x.ParentCode == id); if (idRef == null) { listDelChild.Add(id); } } if (listDelChild.Count == 0) { msg.Error = true; msg.Title = String.Format(CommonUtil.ResourceValue("COM_ERR_LIST_OBJ_HAS_CHILD_OR_REF"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT")); //_logger.LogError(LoggingEvents.LogDb, "Delete list group user fail"); //_actionLog.InsertActionLogDeleteItem("VIB_GROUP_USER", "Delete list department/PC fail", null, null, "Error"); } else { // Find final list Id (parent, grandparent,...) begin from (list A), this list can delete. listDelFinal = listDelFinal.Concat(listDelChild).ToList(); foreach (var id in listDelChild) { var listAdd = FindParentInList(listDel, id, new List <string>()); listDelFinal = listDelFinal.Concat(listAdd).ToList(); } // Find list Id in selected list can't delete. foreach (var id in listDel) { if (!listDelFinal.Contains(id)) { listRef.Add(id); } } // case exist list can't delete. if (listRef.Count > 0) { foreach (var idDel in listDelFinal) { AdGroupUser objDel = _context.AdGroupUsers.FirstOrDefault(x => x.GroupUserCode == idDel); listGroupUser.Add(objDel); _context.AdGroupUsers.Attach(objDel); _context.AdGroupUsers.Remove(objDel); } _context.SaveChanges(); msg.Error = true; msg.Title = String.Format( CommonUtil.ResourceValue("COM_DEL_SUCCESS_LIST_ITEM_BUT_HAS_CHILD"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT")); //_logger.LogError(LoggingEvents.LogDb, "Delete part of the group user list successfully"); //_actionLog.InsertActionLogDeleteItem("VIB_GROUP_USER", "Delete part of the department/PC list successfully", listGroupUser.ToArray(), null, "Delete"); } // case full list parameter can delete. else { foreach (var idDel in listDelFinal) { AdGroupUser objDel = _context.AdGroupUsers.FirstOrDefault(x => x.GroupUserCode == idDel); listGroupUser.Add(objDel); _context.AdGroupUsers.Attach(objDel); _context.AdGroupUsers.Remove(objDel); } _context.SaveChanges(); msg.Title = String.Format(CommonUtil.ResourceValue("COM_MSG_DELETE_LIST_SUCCESS"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT")); //_logger.LogError(LoggingEvents.LogDb, "Delete list group user successfully"); //_actionLog.InsertActionLogDeleteItem("VIBFunction", "Delete list department/PC successfully", listGroupUser.ToArray(), null, "Delete"); } } } } } catch (Exception ex) { msg.Error = true; msg.Object = ex; msg.Title = String.Format(CommonUtil.ResourceValue("COM_MSG_DELETE_LIST_FAIL"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT").ToLower()); //_logger.LogError(LoggingEvents.LogDb, "Delete list group user fail"); //_actionLog.InsertActionLog("VIB_GROUP_USER", "Delete list department/PC failed: " + ex.Message, null, null, "Error"); } return(Json(msg)); //try //{ // //_logger.LogInformation(LoggingEvents.LogDb, "Delete list group user "); // foreach (var id in listId) // { // VIBPermission permission = _context.VIBPermissions.SingleOrDefault(x => x.GroupUserId == id); // if (permission != null) // { // //_logger.LogError(LoggingEvents.LogDb, "Delete group user fail"); // return Json(new JMessage() { Error = true, Title = String.Format(CommonUtil.ResourceValue("ERR_OBJ_REF"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT").ToLower()) }); // } // VIBGroupUser obj = new VIBGroupUser(); // obj.Id = i; // _context.VIBGroupUsers.Attach(obj); // _context.VIBGroupUsers.Remove(obj); // _context.SaveChanges(); // } // //_logger.LogInformation(LoggingEvents.LogDb, "Delete list group user successfully"); // return Json(new JMessage() { Error = false, Title = String.Format(CommonUtil.ResourceValue("MSG_DELETE_LIST_SUCCESS"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT").ToLower()) }); //} //catch (Exception ex) //{ // //_logger.LogError(LoggingEvents.LogDb, "Delete list group user fail"); // return Json(new JMessage() { Error = true, Title = String.Format(CommonUtil.ResourceValue("MSG_DELETE_LIST_FAIL"), CommonUtil.ResourceValue("ADM_DEPARTMENT_LBL_DEPT").ToLower()) }); //} }