/// <summary> /// Builds a DocumentoList from IList<!--<Documento>--> and retrieve DocumentoInfo Childs from DB /// </summary> /// <param name="list"></param> /// <returns>DocumentoList</returns> public static DocumentoList GetChildList(IList <Documento> list) { DocumentoList flist = new DocumentoList(); if (list != null) { int sessionCode = Documento.OpenSession(); CriteriaEx criteria = null; flist.IsReadOnly = false; foreach (Documento item in list) { criteria = AgenteDocumento.GetCriteria(sessionCode); criteria.AddEq("OidDocumento", item.Oid); criteria.AddOrder("Codigo", true); item.AgenteDocumentos = AgenteDocumentos.GetChildList(criteria.List <AgenteDocumento>()); flist.Add(item.GetInfo()); } flist.IsReadOnly = true; Documento.CloseSession(sessionCode); } return(flist); }
private void Fetch(Documento source) { _base.CopyValues(source); if (Childs) { string query = string.Empty; IDataReader reader; AgenteDocumento.DoLOCK(Session()); query = AgenteDocumentos.SELECT(this); reader = nHManager.Instance.SQLNativeSelect(query, Session()); _agente_documentos = AgenteDocumentos.GetChildList(reader); } MarkOld(); }
private void DataPortal_Fetch(CriteriaEx criteria) { try { _base.Record.Oid = 0;; SessionCode = criteria.SessionCode; Childs = criteria.Childs; if (nHMng.UseDirectSQL) { Agente.DoLOCK(Session()); IDataReader reader = nHMng.SQLNativeSelect(criteria.Query, Session()); if (reader.Read()) { _base.CopyValues(reader); } if (Childs) { string query = string.Empty; Documento.DoLOCK(Session()); query = AgenteDocumentos.SELECT(this); reader = nHManager.Instance.SQLNativeSelect(query, Session()); _documentos = AgenteDocumentos.GetChildList(reader); } } } catch (Exception ex) { if (Transaction() != null) { Transaction().Rollback(); } iQExceptionHandler.TreatException(ex, new object[] { criteria.Query }); } }