public static List <Dreams> GetEventosOperador(
        int Id_Operador,
        DateTime Fecha_Inicio,
        DateTime Fecha_Fin)

    {
        using (ISession session = NHibernateSession.openSession())
        {
            List <Dreams> eventos = new List <Dreams>();

            try
            {
                eventos = session.QueryOver <Dreams>().
                          Where(x => x.usuario_id == Id_Operador)
                          .Where(x => x.fecha_inicio >= Fecha_Inicio)
                          .Where(x => x.fecha_fin <= Fecha_Fin || x.fecha_inicio <= Fecha_Fin)
                          //.OrderBy(x => x.fecha_fin).Desc
                          .OrderBy(x => x.fecha_inicio).Desc
                          .List().ToList();

                /**
                 * Obtiene los eventos de Dream.Dreams.
                 **/
                HelperBitacora.getEventMonitor(eventos, Id_Operador, Fecha_Fin, false);
                eventos = LogsysDreamControllerHelper.GetEventosActivos(eventos, Fecha_Fin);

                /***
                 * Verifica si el evento que esta en Dream.Monitor ya se encuentra en
                 * Dream.Dreams, en caso de que no se encuentre lo agrega
                 * **/
            }
            catch (Exception e)
            {
                eventos = null;
            }
            finally
            {
                session.Close();

                /**
                 * Se cierra la session.
                 * **/
            }
            return(eventos);
        }
    }
예제 #2
0
    private JsonFormat getRegistro(double horas, int user_id, DateTime fecha)
    {
        JsonFormat format = new JsonFormat();

        //List<Dreams> dreams=new List<Dreams>();
        using (ISession session = NHibernateSession.openSession())
        {
            try
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    String   f     = fecha.ToString("yyyy-MM-dd HH:mm:ss");
                    DateTime b     = Convert.ToDateTime(f);
                    DateTime d     = fecha.AddHours(-horas);
                    var      Dream = session.QueryOver <Dreams>().
                                     Where(x => x.usuario_id == user_id).
                                     And(x => x.fecha_fin >= d).    //d es la fecha menos 24 o menor 5:30
                                     And(x => x.fecha_inicio <= b). //b es la fecha con que se llamo el servicio
                                     OrderBy(x => x.fecha_inicio).
                                     Asc.List().ToList();

                    /**
                     * Se obtienen los eventos de la tabla Dream.Dreams, este query va a obtener todos los
                     * eventos desde el rango de fechas especificado.
                     * **/

                    HelperBitacora.getEventMonitor(Dream, user_id, fecha, true);//Verifica el evento que esta en Dream.Monitor.
                    format = getFormato(Dream);
                    var      last = Dream.First <Dreams>();
                    DateTime a    = last.fecha_fin ?? DateTime.Now;
                    TimeSpan s    = a - d;
                    //TimeSpan s = last.fecha_fin - d;

                    format.inactivo += s.TotalMinutes;
                    if (horas == 24)
                    {
                        if (format.inactivo > 1400.00)
                        {
                            format.inactivo = 1400;
                        }
                        else if (format.inactivo < 0.0)
                        {
                            format.inactivo = 0.0;
                        }
                        else
                        {
                        }

                        format.activo = (24 * 60) - format.inactivo;
                        if (format.activo > 1400.00)
                        {
                            format.activo = 1400;
                        }
                        else if (format.activo < 0.0)
                        {
                            format.activo = 0.0;
                        }
                        else
                        {
                        }
                    }
                    else
                    {
                        if (format.inactivo > 330)
                        {
                            format.inactivo = 330;
                        }
                        else if (format.inactivo < 0.0)
                        {
                            format.inactivo = 0.0;
                        }
                        else
                        {
                        }

                        format.activo = (5.5 * 60) - format.inactivo;
                        if (format.activo > 330)
                        {
                            format.inactivo = 330;
                        }
                        else if (format.activo < 0.0)
                        {
                            format.activo = 0.0;
                        }
                        else
                        {
                        }
                    }
                }
                // getSumaDeDiferencias(dreams);
                return(format);
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
                return(null);
                //errorLog.Error("Error:\n" + e);
            }
            finally
            {
                session.Close();
            }
        }
    }