Exemple #1
0
        // 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);
        }
Exemple #3
0
        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);
        }