예제 #1
0
        private List <GroupTreeModel> AddNodeToParentNode(List <GroupTreeModel> groupList, DataRow row, out bool doAdded)
        {
            doAdded = false;
            GroupTreeModel groupNode = Common.DataToClass <GroupTreeModel>(row);

            foreach (GroupTreeModel oneNode in groupList)
            {
                if (oneNode.id == groupNode.parentId)
                {
                    if (oneNode.children == null)
                    {
                        oneNode.children = new List <GroupTreeModel>();
                    }
                    oneNode.children.Add(groupNode);
                    doAdded = true;
                    break;
                }
                else
                {
                    if (oneNode.children != null)
                    {
                        foreach (GroupTreeModel oneSubNode in oneNode.children)
                        {
                            if (oneSubNode.id == groupNode.parentId)
                            {
                                if (oneSubNode.children == null)
                                {
                                    oneSubNode.children = new List <GroupTreeModel>();
                                }
                                oneSubNode.children.Add(groupNode);
                                doAdded = true;
                                break;
                            }
                            else
                            {
                                if (oneSubNode.children != null)
                                {
                                    foreach (GroupTreeModel oneSub2Node in oneSubNode.children)
                                    {
                                        if (oneSub2Node.id == groupNode.parentId)
                                        {
                                            if (oneSub2Node.children == null)
                                            {
                                                oneSub2Node.children = new List <GroupTreeModel>();
                                            }
                                            oneSub2Node.children.Add(groupNode);
                                            doAdded = true;
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(groupList);
        }
예제 #2
0
        public JsonResult GetGroupListByUser(int groupID, string userID)
        {
            try
            {
                using (DBManager db = new DBManager())
                {
                    string nameOfProcedure       = "CPK.uspGroupListByUser";
                    List <SqlParameter> paraList = new List <SqlParameter>();
                    userID = User.Identity.Name;
                    paraList.Add(Common.GetParameter("GroupID", DbType.Int32, Convert.ToInt32(groupID), ParameterDirection.Input));
                    paraList.Add(Common.GetParameter("UserID", DbType.String, userID, ParameterDirection.Input));
                    DataSet DbSet = db.GetSelectQuery(paraList, nameOfProcedure);
                    List <GroupTreeModel> groupList = new List <GroupTreeModel>();
                    DataTable             table     = DbSet.Tables[0];
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        DataRow        row       = table.Rows[i];
                        GroupTreeModel groupNode = Common.DataToClass <GroupTreeModel>(row);
                        if (groupNode.parentId == 0)
                        {
                            groupList.Add(groupNode);
                        }
                    }

                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        bool           doAdded   = false;
                        DataRow        row       = table.Rows[i];
                        GroupTreeModel groupNode = Common.DataToClass <GroupTreeModel>(row);
                        if (groupNode.parentId != 0)
                        {
                            groupList = AddNodeToParentNode(groupList, row, out doAdded);
                            if (doAdded)
                            {
                                table.Rows.Remove(row);
                                i--;
                            }
                        }
                    }

                    JsonResult jResult = Json(groupList, JsonRequestBehavior.AllowGet);
                    return(jResult);
                }
            }
            catch (Exception ex)
            {
                JsonError e = new JsonError(ex.Message);
                return(Json(e, JsonRequestBehavior.AllowGet));
            }
        }