private void GetProjectTree(HttpContext context) { int CompanyID = WebUtil.GetIntValue(context, "CompanyID"); int ID = WebUtil.GetIntValue(context, "ID"); string Keywords = context.Request.Params["Keywords"]; int RoleID = WebUtil.GetIntValue(context, "RoleID"); int UserID = WebUtil.GetIntValue(context, "UserID"); ProjectTree[] list = ProjectTree.GetProjectTreeListByRoleIDAndUserID(ID, Keywords, RoleID, UserID, CompanyID: CompanyID).ToArray(); List <Dictionary <string, object> > items = null; var dic = new Dictionary <string, object>(); if (string.IsNullOrEmpty(Keywords)) { items = list.Select(p => { dic = p.ToJsonObject(); dic["type"] = Utility.EnumModel.ProjectTreeTypeDefine.project.ToString(); dic["name"] = p.Name; dic["id"] = p.ID; dic["pId"] = p.ParentID == 1 ? Utility.EnumModel.ProjectTreeTypeDefine.company.ToString() + "_" + p.CompanyID : p.ParentID.ToString(); dic["iconSkin"] = "Icon_" + p.IconID; dic["open"] = true; dic["checked"] = false; if (RoleID > 0) { dic["checked"] = RoleID == p.RoleID; } if (UserID > 0) { dic["checked"] = UserID == p.UserID; } return(dic); }).ToList(); if (CompanyID <= 0 && ID <= 0) { var companyList = Foresight.DataAccess.Company.GetCompanies().ToArray(); var companyRoleList = Foresight.DataAccess.UserCompany.GetUserCompanies().ToArray(); if (RoleID > 0) { companyRoleList = companyRoleList.Where(p => p.RoleID == RoleID).ToArray(); } else { companyRoleList = companyRoleList.Where(p => p.UserID == UserID).ToArray(); } var companyItems = companyList.Select(p => { var myCompanyRole = companyRoleList.FirstOrDefault(q => q.CompanyID == p.CompanyID); var type = Utility.EnumModel.ProjectTreeTypeDefine.company.ToString(); dic = new Dictionary <string, object>(); dic["ID"] = p.CompanyID; dic["ParentID"] = 1; dic["Name"] = p.CompanyName; dic["FullName"] = p.CompanyName; dic["isParent"] = true; dic["CompanyID"] = p.CompanyID; dic["id"] = type + "_" + p.CompanyID; dic["pId"] = 1; dic["name"] = p.CompanyName; dic["type"] = Utility.EnumModel.ProjectTreeTypeDefine.company.ToString(); dic["iconSkin"] = "Icon_0"; dic["open"] = "true"; dic["isRoom"] = false; dic["IsLocked"] = false; dic["chkDisabled"] = false; dic["checked"] = myCompanyRole != null; return(dic); }).ToList(); items.AddRange(companyItems); dic = new Dictionary <string, object>(); dic["ID"] = 1; dic["ParentID"] = 0; dic["Name"] = new Utility.SiteConfig().CompanyName; dic["FullName"] = string.Empty; dic["isParent"] = true; dic["CompanyID"] = 0; dic["id"] = 1; dic["pId"] = 0; dic["name"] = new Utility.SiteConfig().CompanyName; dic["type"] = Utility.EnumModel.ProjectTreeTypeDefine.company.ToString(); dic["iconSkin"] = "Icon_0"; dic["open"] = "true"; dic["isRoom"] = false; dic["IsLocked"] = false; dic["chkDisabled"] = false; items.Add(dic); } } else { items = list.Select(p => { dic = p.ToJsonObject(); if (p.ID == 1) { var company = Company.GetCompany(CompanyID); dic["name"] = company.CompanyName; } else { dic["name"] = p.FullName + p.Name; } dic["id"] = p.ID; dic["pId"] = p.ParentID; dic["iconSkin"] = "Icon_" + p.IconID; dic["open"] = true; dic["checked"] = false; if (RoleID > 0) { dic["checked"] = RoleID == p.RoleID; } if (UserID > 0) { dic["checked"] = UserID == p.UserID; } return(dic); }).ToList(); } WebUtil.WriteJson(context, items); }