Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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()) });
            //}
        }