// called to retrieve data from the database private void DataPortal_Fetch(CriteriaEx criteria) { try { SessionCode = criteria.SessionCode; Childs = criteria.Childs; if (nHMng.UseDirectSQL) { MaterialDocente.DoLOCK(Session()); IDataReader reader = nHMng.SQLNativeSelect(criteria.Query, Session()); if (reader.Read()) { _base.CopyValues(reader); } if (Childs) { RevisionMaterial.DoLOCK(Session()); string query = RevisionMaterials.SELECT_BY_MATERIAL(this.Oid); reader = nHManager.Instance.SQLNativeSelect(query, Session()); _revisiones = RevisionMaterials.GetChildList(criteria.SessionCode, reader); Material_Plan.DoLOCK(Session()); query = Material_Plans.SELECT(GetInfo(false)); reader = nHManager.Instance.SQLNativeSelect(query, Session()); _planes = Material_Plans.GetChildList(reader); Material_Alumno.DoLOCK(Session()); query = Material_Alumnos.SELECT_BY_MATERIAL(this.Oid); reader = nHManager.Instance.SQLNativeSelect(query, Session()); _alumnos = Material_Alumnos.GetChildList(reader); } } else { _base.Record.CopyValues((MaterialDocenteRecord)(criteria.UniqueResult())); //Session().Lock(Session().Get<MaterialDocenteRecord>(Oid), LockMode.UpgradeNoWait); if (Childs) { criteria = RevisionMaterial.GetCriteria(Session()); criteria.AddEq("OidMaterial", this.Oid); _revisiones = RevisionMaterials.GetChildList(criteria.List <RevisionMaterial>()); criteria = Material_Plan.GetCriteria(Session()); criteria.AddEq("OidMaterial", this.Oid); _planes = Material_Plans.GetChildList(criteria.List <Material_Plan>()); criteria = Material_Alumno.GetCriteria(Session()); criteria.AddEq("OidMaterial", this.Oid); _alumnos = Material_Alumnos.GetChildList(criteria.List <Material_Alumno>()); } } } catch (NHibernate.ADOException) { if (Transaction() != null) { Transaction().Rollback(); } throw new iQLockException(moleQule.Library.Resources.Messages.LOCK_ERROR); } catch (Exception ex) { if (Transaction() != null) { Transaction().Rollback(); } iQExceptionHandler.TreatException(ex); } }