/// <summary> /// 初始化项目信息 /// </summary> /// <param name="projId"></param> /// <param name="templateDC">传入表名和对应的模板Id</param> public void ProjectInfoInit(int projId, Dictionary <string, int> templateDC) { InvokeResult result = new InvokeResult(); BsonDocument project = this._ctx.FindOneByQuery("Project", Query.EQ("projId", projId.ToString()));//项目信息 if (project == null) { throw new ArgumentNullException(); } foreach (var dc in templateDC) { int templateId = dc.Value; TableRule tableEntity = new TableRule(dc.Key); string primaryKey = tableEntity.GetPrimaryKey(); if (string.IsNullOrEmpty(primaryKey)) { throw new ArgumentNullException(); } BsonDocument templateInfo = this._ctx.FindOneByQuery(dc.Key, Query.EQ(primaryKey, dc.Value.ToString())); if (templateInfo == null) { templateInfo = this._ctx.FindOneByQuery(dc.Key, Query.EQ("isTemplate", "1"));//传入模板Id不存在,查找默认模板 } if (templateInfo != null) { templateId = templateInfo.Int(primaryKey); //模板Id List <BsonDocument> templateDataSubList = new List <BsonDocument>(); //模板详细目录 BsonDocument entity = this._ctx.FindOneByQuery(dc.Key, Query.EQ("projId", projId.ToString())); //项目对应表目录实体 if (entity == null) { entity = new BsonDocument(); entity.Add("name", project != null ? project.String("name") : string.Empty + "目录"); entity.Add("projId", projId.ToString()); entity.Add("isTemplate", "0"); entity.Add("srcId", templateId.ToString()); result = this._ctx.Insert(dc.Key, entity); entity = result.BsonInfo; } List <BsonDocument> dataSubList = this._ctx.FindAllByQuery(dc.Key + "Dir", Query.EQ(primaryKey, entity.String(primaryKey))).ToList(); if (dataSubList.Count() > 0) { this._ctx.Delete(dc.Key + "Dir", Query.EQ(primaryKey, entity.String(primaryKey)));//删除旧信息 } if (result.Status == Status.Successful || result.Status == Status.Invaild) { templateDataSubList = this._ctx.FindAllByQuery(dc.Key + "Dir", Query.EQ(primaryKey, templateId.ToString())).ToList(); TemplateDirBll tdBll = TemplateDirBll._(); List <BsonDocument> newDir = new List <BsonDocument>(); tdBll.CopyGeneralDir(newDir, templateDataSubList, 0, null, dc.Key, entity); } else { throw new ArgumentNullException(); } } } }
public ActionResult DelePostInfo(FormCollection saveForm) { InvokeResult result = new InvokeResult(); string tbName = saveForm["tbName"] != null ? saveForm["tbName"] : ""; string queryStr = saveForm["queryStr"] != null ? saveForm["queryStr"] : ""; string dataStr = ""; int primaryKey = 0; TableRule rule = new TableRule(tbName); string keyName = rule.GetPrimaryKey(); var isLogicDel = rule.isLogicDel; if (!isLogicDel) { #region 除文档 if (!string.IsNullOrEmpty(queryStr)) { var query = TypeConvert.NativeQueryToQuery(queryStr); var recordDoc = dataOp.FindOneByQuery(tbName, query); saveForm["keyValue"] = result.BsonInfo.Text(keyName); if (recordDoc != null) { primaryKey = recordDoc.Int(keyName); } FileOperationHelper opHelper = new FileOperationHelper(); result = opHelper.DeleteFile(tbName, keyName, primaryKey.ToString()); } #endregion #region 除数据 BsonDocument curData = new BsonDocument(); //当前数据,即操作前数据 if (queryStr.Trim() != "") { curData = dataOp.FindOneByQuery(tbName, TypeConvert.NativeQueryToQuery(queryStr)); } dataOp.SetOperationData(tbName, queryStr, dataStr); result = dataOp.Delete(); #endregion //删除文件 } else { return(logicDelePostInfo(saveForm)); } return(Json(TypeConvert.InvokeResultToPageJson(result))); }
/// <summary> /// 创建地块目录 /// </summary> /// <param name="tbName"></param> /// <param name="landId"></param> /// <param name="templateId"></param> public void LandDirCreate(string tbName, int landId, int templateId) { InvokeResult result = new InvokeResult(); TableRule tableEntity = new TableRule(tbName); string primaryKey = tableEntity.GetPrimaryKey(); if (string.IsNullOrEmpty(primaryKey)) { throw new ArgumentNullException(); } BsonDocument templateInfo = this._ctx.FindOneByQuery(tbName, Query.EQ(primaryKey, templateId.ToString())); if (templateInfo == null) { templateInfo = this._ctx.FindOneByQuery(tbName, Query.EQ("isTemplate", "1"));//传入模板Id不存在,查找默认模板 } if (templateInfo != null) { templateId = templateInfo.Int(primaryKey); //模板Id List <BsonDocument> templateDataSubList = new List <BsonDocument>(); //模板详细目录 BsonDocument land = this._ctx.FindOneByQuery("Land", Query.EQ("landId", landId.ToString())); //地块信息 BsonDocument entity = this._ctx.FindOneByQuery(tbName, Query.EQ("landId", landId.ToString())); //地块对应表目录实体 if (entity == null) { entity = new BsonDocument(); entity.Add("name", land != null ? land.String("name") : string.Empty + "目录"); entity.Add("landId", landId.ToString()); entity.Add("isTemplate", "0"); entity.Add("srcId", templateId.ToString()); result = this._ctx.Insert(tbName, entity); entity = result.BsonInfo; } List <BsonDocument> dataSubList = this._ctx.FindAllByQuery(tbName + "Dir", Query.EQ(primaryKey, entity.String(primaryKey))).ToList(); if (dataSubList.Count() > 0) { this._ctx.Delete(tbName + "Dir", Query.EQ(primaryKey, entity.String(primaryKey))); } if (result.Status == Status.Successful || result.Status == Status.Invaild) { templateDataSubList = this._ctx.FindAllByQuery(tbName + "Dir", Query.EQ(primaryKey, templateId.ToString())).ToList(); TemplateDirBll tdBll = TemplateDirBll._(); List <BsonDocument> newDir = new List <BsonDocument>(); tdBll.CopyGeneralDir(newDir, templateDataSubList, 0, null, tbName, entity); } else { throw new ArgumentNullException(); } } }
/// <summary> /// 逐级加载节点树 /// </summary> /// <param name="tbName"></param> /// <returns></returns> public ActionResult GetProjNodeTreeXMLByLevel(string tbName) { int id = PageReq.GetFormInt("id") != 0 ? PageReq.GetFormInt("id") : (PageReq.GetParamInt("id") != 0 ? PageReq.GetParamInt("id") : 0); //父级OrgId,如果传入,则展示子级,不包括父级 TableRule tableEntity = new TableRule(tbName); //获取表结构 string primaryKey = tableEntity.GetPrimaryKey(); //寻找默认主键 BsonDocument curNode = dataOp.FindOneByKeyVal(tbName, primaryKey, id.ToString()); //当前节点 List <BsonDocument> allNodeList = dataOp.FindChildNodes(tbName, id.ToString()).ToList(); List <BsonDocument> subNodeList = allNodeList.Where(t => t.Int("nodePid") == id).ToList(); List <TreeNode> treeList = new List <TreeNode>(); foreach (var subNode in subNodeList.OrderBy(t => t.Int("nodeOrder"))) //循环子部门列表,赋值 { TreeNode node = new TreeNode(); node.Id = subNode.Int(primaryKey); node.Name = subNode.String("name"); node.Lv = curNode.Int("nodeLevel") + 1; node.Pid = id; node.underTable = subNode.String("underTable"); node.Param = "0_" + subNode.Int(primaryKey) + "_0"; if (allNodeList.Where(t => t.Int("nodePid") == subNode.Int(primaryKey)).Count() > 0) { node.IsLeaf = 0; } else { node.IsLeaf = 1; } treeList.Add(node); } return(new XmlTree(treeList)); }