private void InitQueryItem(QueryItemDefData item) { var queryData = item as QueryDefData; if (queryData != null) { queryData.DocDef = queryData.DocumentId != null ? _docDefRepo.Find(queryData.DocumentId ?? Guid.Empty) : null; } else { var sourceData = item as QuerySourceDefData; if (sourceData != null) { sourceData.DocDef = sourceData.DocumentId != null ? _docDefRepo.DocDefById((Guid)sourceData.DocumentId) : null; sourceData.Query = sourceData.QueryId != null?FindQuery((Guid)sourceData.QueryId) : null; } else { var conditionData = item as QueryConditionDefData; if (conditionData != null) { Guid id; if (!String.IsNullOrEmpty(conditionData.LeftSourceName)) { if (Guid.TryParse(conditionData.LeftSourceName.Trim(), out id)) { conditionData.LeftSourceId = id; conditionData.LeftQuery = FindQuery(id); } } if (!String.IsNullOrEmpty(conditionData.RightSourceName)) { if (Guid.TryParse(conditionData.RightSourceName.Trim(), out id)) { conditionData.RightSourceId = id; conditionData.RightQuery = FindQuery(id); } } } } } if (item.Items != null) { foreach (var sub in item.Items) { InitQueryItem(sub); } } }
private DocDef FindControlAttributeDocDef(BizControl control, DocDef parentDocDef, Guid attrId) { var docControl = control as BizDocumentControl; if (docControl != null) { if (docControl.AttributeDefId != null) { var docControlAttrDef = parentDocDef.Attributes.FirstOrDefault(a => a.Id == (Guid)docControl.AttributeDefId); if (docControlAttrDef != null && docControlAttrDef.DocDefType != null) { var docDef = _docDefRepo.Find(docControlAttrDef.DocDefType.Id); if (docDef != null) { if (docDef.Attributes.FirstOrDefault(a => a.Id == attrId) != null) { return(docDef); } if (docControl.Children != null) { foreach (var child in control.Children) { var attrDocDef = FindControlAttributeDocDef(child, docDef, attrId); if (attrDocDef != null) { return(attrDocDef); } } } } } } } else { var docList = control as BizDocumentListForm; if (docList != null) { if (docList.AttributeDefId != null) { var docListAttrDef = parentDocDef.Attributes.FirstOrDefault(a => a.Id == (Guid)docList.AttributeDefId); if (docListAttrDef != null && docListAttrDef.DocDefType != null) { var docDef = _docDefRepo.Find(docListAttrDef.DocDefType.Id); if (docDef != null) { if (docDef.Attributes.FirstOrDefault(a => a.Id == attrId) != null) { return(docDef); } if (docList.Children != null) { foreach (var child in control.Children) { var attrDocDef = FindControlAttributeDocDef(child, docDef, attrId); if (attrDocDef != null) { return(attrDocDef); } } } } } } else { var dlForm = docList.TableForm ?? (docList.FormId != null ? _formRepo.FindTableForm((Guid)docList.FormId) : null); if (dlForm != null && dlForm.DocumentDefId != null) { var docDef = _docDefRepo.Find((Guid)dlForm.DocumentDefId); if (docDef != null) { if (docDef.Attributes.FirstOrDefault(a => a.Id == attrId) != null) { return(docDef); } if (dlForm.Children != null) { foreach (var child in dlForm.Children) { var attrDocDef = FindControlAttributeDocDef(child, docDef, attrId); if (attrDocDef != null) { return(attrDocDef); } } } } } } } else { var tableColumn = control as BizTableColumn; if (tableColumn != null && tableColumn.AttributeDefId != null) { var tableColumnAttrDef = parentDocDef.Attributes.FirstOrDefault(a => a.Id == (Guid)tableColumn.AttributeDefId); if (tableColumnAttrDef != null && tableColumnAttrDef.DocDefType != null) { var docDef = _docDefRepo.Find(tableColumnAttrDef.DocDefType.Id); if (docDef != null) { if (docDef.Attributes.FirstOrDefault(a => a.Id == attrId) != null) { return(docDef); } if (tableColumn.Children != null) { foreach (var child in tableColumn.Children) { var attrDocDef = FindControlAttributeDocDef(child, docDef, attrId); if (attrDocDef != null) { return(attrDocDef); } } } } } } } } return(null); }