// called to retrieve data from the database private void DataPortal_Fetch(CriteriaEx criteria) { try { SessionCode = criteria.SessionCode; Childs = criteria.Childs; if (nHMng.UseDirectSQL) { ClaseExtra.DoLOCK(Session()); IDataReader reader = ClaseExtra.DoSELECT(AppContext.ActiveSchema.Code, Session(), criteria.Oid); if (reader.Read()) { _base.CopyValues(reader); } if (Childs) { Sesion.DoLOCK(Session()); string query = Sesions.SELECT_BY_CLASE_EXTRA(this.Oid); reader = nHManager.Instance.SQLNativeSelect(query, Session()); _sesions = Sesions.GetChildList(reader); } } else { _base.Record.CopyValues((ClaseExtraRecord)(criteria.UniqueResult())); //Session().Lock(Session().Get<ClaseExtraRecord>(Oid), LockMode.UpgradeNoWait); if (Childs) { criteria = Sesion.GetCriteria(Session()); criteria.AddEq("OidClaseExtra", this.Oid); _sesions = Sesions.GetChildList(criteria.List <Sesion>()); } } } 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); } }
/// <summary> /// Retrieve the complete list from db /// </summary> /// <returns>HorarioList</returns> public static SesionList GetSesionesPromocionList(long oid_promocion, long oid_plan, bool childs) { CriteriaEx criteria = Sesion.GetCriteria(Sesion.OpenSession()); criteria.Childs = childs; criteria.Query = Sesions.SELECT_SESIONES_PROGRAMADAS(oid_plan, oid_promocion); //No criteria. Retrieve all de List SesionList list = DataPortal.Fetch <SesionList>(criteria); CloseSession(criteria.SessionCode); return(list); }
private void Fetch(ClaseExtra source) { try { SessionCode = source.SessionCode; _base.CopyValues(source); CriteriaEx criteria = Sesion.GetCriteria(Session()); criteria.AddEq("OidClaseExtra", this.Oid); _sesions = Sesions.GetChildList(criteria.List <Sesion>()); } catch (Exception ex) { iQExceptionHandler.TreatException(ex); } MarkOld(); }
public static string SELECT_BY_HORARIO(long oid_horario) { return(Sesions.SELECT_BY_HORARIO(oid_horario, false)); }
/// <summary> /// Retrieve the complete list from db /// </summary> /// <returns>SesionList</returns> public static SesionList GetSesionesList() { CriteriaEx criteria = Sesion.GetCriteria(Sesion.OpenSession()); criteria.Childs = false; criteria.Query = Sesions.SELECT_SESIONES_ORDENADAS(); //No criteria. Retrieve all de List SesionList list = DataPortal.Fetch <SesionList>(criteria); CloseSession(criteria.SessionCode); SesionList sesiones = new SesionList(); ClaseTeoricaList teoricas = ClaseTeoricaList.GetList(); ClasePracticaList practicas = ClasePracticaList.GetList(); ClaseExtraList extras = ClaseExtraList.GetList(); int count = 0; long oid_modulo = 0; sesiones.IsReadOnly = false; foreach (SesionInfo item in list) { if (item.OidClaseTeorica > 0 || item.OidClasePractica > 0 || item.OidClaseExtra > 0) { long oid_modulo_item = 0; if (item.OidClasePractica != 0) { oid_modulo_item = practicas.GetItem(item.OidClasePractica).OidModulo; } if (item.OidClaseTeorica != 0) { oid_modulo_item = teoricas.GetItem(item.OidClaseTeorica).OidModulo; } if (item.OidClaseExtra != 0) { oid_modulo_item = extras.GetItem(item.OidClaseExtra).OidModulo; } if (oid_modulo_item > 0) { if (count == 0) { sesiones.AddItem(item); oid_modulo = oid_modulo_item; count++; } else { SesionInfo ultima = sesiones[sesiones.Count - 1]; if (ultima.OidHorario == item.OidHorario && ultima.Fecha.Date.Equals(item.Fecha.Date) && ultima.Hora.AddHours(count).Hour.Equals(item.Hora.Hour) && ultima.OidProfesor == item.OidProfesor && oid_modulo_item == oid_modulo && ((ultima.OidClasePractica != 0 && item.OidClasePractica != 0) || (ultima.OidClaseTeorica != 0 && item.OidClaseTeorica != 0) || (ultima.OidClaseExtra != 0 && item.OidClaseExtra != 0))) { count++; if (count == 3) { count = 0; } } else { sesiones.AddItem(item); oid_modulo = oid_modulo_item; count = 1; } } } } } sesiones.IsReadOnly = true; return(sesiones); }