コード例 #1
0
ファイル: MonitorHelper.cs プロジェクト: evazquez96/AppSueno
    public static int codigoOperacionEnActivo(Dreams arriba, Dreams abajo, DateTime inicio, DateTime fin)
    {
        int codigo = 0;

        if (diferencia(inicio, arriba.fecha_fin) == 0.0 && diferencia(fin, abajo.fecha_inicio) == 0)
        {
            codigo = 1;
        }
        else if (diferencia(inicio, arriba.fecha_fin) == 0 && diferencia(fin, abajo.fecha_inicio) > 0.0)
        {
            codigo = 2;
        }
        else if (diferencia(arriba.fecha_inicio, inicio) > 0 && diferencia(fin, abajo.fecha_inicio) == 0.0)
        {
            /**
             * Indica que la fecha fin coicide exactamente con la fecha fin del evento.
             * **/
            codigo = 3;
        }
        else if (diferencia(arriba.fecha_inicio, inicio) > 0 && diferencia(fin, abajo.fecha_inicio) > 0.0)
        {
            codigo = 4;
        }
        else
        {
            codigo = 5;
        }
        return(codigo);
    }
コード例 #2
0
ファイル: MonitorHelper.cs プロジェクト: evazquez96/AppSueno
    public static int codigoOperacion(Dreams evento, DateTime inicio, DateTime fin)
    {
        int codigo = 0;

        if (diferencia(inicio, evento.fecha_inicio) == 0.0 && diferencia(fin, evento.fecha_fin) == 0)
        {
            codigo = 1;
        }
        else if (diferencia(inicio, evento.fecha_inicio) == 0 && diferencia(fin, evento.fecha_fin) != 0.0)
        {
            codigo = 2;
        }
        else if (diferencia(inicio, evento.fecha_inicio) != 0 && diferencia(fin, evento.fecha_fin) == 0.0)
        {
            /**
             * Indica que la fecha fin coicide exactamente con la fecha fin del evento.
             * **/
            codigo = 3;
        }
        else
        {
            codigo = 4;
        }
        return(codigo);
    }
コード例 #3
0
ファイル: Consultas.cs プロジェクト: icanul/PruebaHibernate
        public static void setDreams(DateTime fecha_inicio, DateTime fecha_fin, string comentarios, int usuario_id, int tipo_actividad_id, byte automatico, int semaforo_id)
        {
            using (ISession session = NHibernateSession.openSession())
            {
                try
                {
                    using (ITransaction transaction = session.BeginTransaction())
                    {
                        Dreams ob = new Dreams();

                        ob.fecha_inicio      = fecha_inicio;
                        ob.fecha_fin         = fecha_fin;
                        ob.comentarios       = comentarios;
                        ob.usuario_id        = usuario_id;
                        ob.tipo_actividad_id = tipo_actividad_id;
                        ob.automatico        = automatico;
                        ob.semaforo_id       = semaforo_id;

                        session.Save(ob);
                        transaction.Commit();
                    }
                    // getSumaDeDiferencias(dreams);
                }
                catch (Exception e)
                {
                    System.Console.WriteLine(e.ToString());

                    //errorLog.Error("Error:\n" + e);
                }
                finally
                {
                    session.Close();
                }
            }
        }
コード例 #4
0
    public static void GetDiferenciaFechas(Dreams evento)
    {
        var d    = evento.fecha_fin ?? DateTime.Now;
        var diff = d - evento.fecha_inicio;

        evento.duracion = diff.TotalMinutes;
    }
コード例 #5
0
ファイル: MonitorHelper.cs プロジェクト: evazquez96/AppSueno
    public static Dreams getUltimoEvento(Dreams evento, ISession session)
    {
        List <Dreams> dreams = session.QueryOver <Dreams>().Where(x => x.usuario_id == evento.usuario_id).OrderBy(x => x.id).Desc.Take(10).List().ToList();

        /***
         * Regresa el ultimo evento.
         * **/
        return(dreams[0]);
    }
コード例 #6
0
 public TeleportTrigger(EntityData data, Vector2 offset) : base(data, offset)
 {
     bonfire     = data.Bool("bonfire");
     room        = data.Attr("room");
     spawnPointX = data.Int("spawnPointX");
     spawnPointY = data.Int("spawnPointY");
     dreams      = data.Enum("Dreaming", Dreams.NoChange);
     keepKey     = data.Bool("KeepKey", true);
 }
コード例 #7
0
        public void StartNewDream()
        {
            if (CurrentDream != null && CurrentDream.IsActive())
            {
                return;
            }

            Dreams.Add(new Dream());
            CurrentDream.Start();
        }
コード例 #8
0
ファイル: DBHelperClass_Dreams.cs プロジェクト: shimanov/Memo
 /// <summary>
 /// Извлечение новой записи из таблицы Dreams
 /// </summary>
 /// <param name="newDream"></param>
 public void Insert(Dreams newDream)
 {
     using (var dbConn = new SQLiteConnection(App.DB_PATH))
     {
         dbConn.RunInTransaction(() =>
         {
             dbConn.Insert(newDream);
         });
     }
 }
コード例 #9
0
        public void Initialize()
        {
            var    network = Main.Network;
            Random random  = new Random();

            for (int i = 0; i < NumberOfImages; i++)
            {
                // Generate random input vectors
                Dreams.Add(new Sample());
            }
        }
コード例 #10
0
ファイル: DBHelperClass_Dreams.cs プロジェクト: shimanov/Memo
 /// <summary>
 /// Удаление выбранной записи
 /// </summary>
 /// <param name="Id"></param>
 public void DeleteDream(Dreams Id)
 {
     using (var dbConn = new SQLiteConnection(App.DB_PATH))
     {
         var existingDream = dbConn.Query <Dreams>("select * from Dreams where Id =" + Id).FirstOrDefault();
         if (existingDream != null)
         {
             dbConn.RunInTransaction(() =>
             {
                 dbConn.Delete(existingDream);
             });
         }
     }
 }
コード例 #11
0
ファイル: Character.cs プロジェクト: Cerdaemon/BrennusCharGen
 public void passAmountODreamsAndNightmares()
 {
     Dreams.Clear();
     Nightmares.Clear();
     for (int i = 0; i < TotalDreams; i++)
     {
         Dream d = new Dream();
         Dreams.Add(d);
     }
     for (int i = 0; i < TotalNightmares; i++)
     {
         Nightmare n = new Nightmare();
         Nightmares.Add(n);
     }
 }
コード例 #12
0
    public virtual Dreams GetTemporal()
    {
        Dreams d = new Dreams();

        d.fecha_inicio      = this.fecha_inicio;
        d.fecha_fin         = this.fecha_fin;
        d.usuario_id        = this.usuario_id;
        d.semaforo_id       = this.semaforo_id;
        d.tipo_actividad_id = this.tipo_actividad_id;
        d.duracion          = this.duracion;
        d.actividad         = this.actividad;
        d.comentarios       = this.comentarios;
        d.sql_id            = this.sql_id;
        d.automatico        = this.automatico;
        return(d);
    }
コード例 #13
0
ファイル: DBHelperClass_Dreams.cs プロジェクト: shimanov/Memo
        /// <summary>
        /// Обновление выбранной записи
        /// </summary>
        /// <param name="dreams"></param>
        public void UpdateDream(Dreams dreams)
        {
            using (var dbConn = new SQLiteConnection(App.DB_PATH))
            {
                var existingDream = dbConn.Query <Dreams>("select * from Dreams where Id =" + dreams.Id).FirstOrDefault();

                if (existingDream != null)
                {
                    existingDream.Date = dreams.Date;
                    existingDream.Text = dreams.Text;
                    existingDream.Star = dreams.Star;
                    existingDream.Tag  = dreams.Tag;
                    dbConn.RunInTransaction(() =>
                    {
                        dbConn.Update(existingDream);
                    });
                }
            }
        }
コード例 #14
0
ファイル: MonitorHelper.cs プロジェクト: evazquez96/AppSueno
    public static int insertaSuenoEnActivo(int id_evento_arriba, int id_evento_abajo, String comentarios, DateTime inicio, DateTime fin, bool esPrimero)
    {
        int    response = -1;
        String c        = comentarios.Equals("") ? "Sueño Manual" : comentarios;

        if (esPrimero)
        {
            using (ISession session = NHibernateSession.openSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    try
                    {
                        Dreams evento_arriba = session.QueryOver <Dreams>().Where(x => x.id == id_evento_arriba).List().Single();//Obtiene el evento de arriba.
                        Dreams nuevo         = new Dreams();
                        nuevo.fecha_inicio      = inicio;
                        nuevo.fecha_fin         = fin;
                        nuevo.comentarios       = c;
                        nuevo.usuario_id        = evento_arriba.usuario_id;
                        nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                        nuevo.sql_id            = 0;
                        nuevo.automatico        = 0;
                        nuevo.semaforo_id       = calcularSemaforoId(inicio, fin);
                        session.Save(nuevo);
                        transaction.Commit();
                        response = 0;
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        response = -1;
                    }
                    finally
                    {
                        if (session != null)
                        {
                            session.Close();//Cerramos la sesión.
                        }
                    }
                }
            }
        }
        else
        {
            using (ISession session = NHibernateSession.openSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    try
                    {
                        Dreams evento_arriba   = session.QueryOver <Dreams>().Where(x => x.id == id_evento_arriba).List().Single(); //Obtiene el evento de arriba.
                        Dreams evento_abajo    = session.QueryOver <Dreams>().Where(x => x.id == id_evento_abajo).List().Single();  //Obtiene el evento de abajo.
                        int    codigoOperacion = codigoOperacionEnActivo(evento_arriba, evento_abajo, inicio, fin);
                        Dreams nuevo           = new Dreams();

                        switch (codigoOperacion)
                        {
                        case 1:
                            nuevo.fecha_inicio      = evento_arriba.fecha_fin ?? DateTime.Now;
                            nuevo.fecha_fin         = evento_abajo.fecha_inicio;
                            nuevo.comentarios       = c;
                            nuevo.usuario_id        = evento_abajo.usuario_id;
                            nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                            nuevo.sql_id            = 0;
                            nuevo.automatico        = 0;
                            nuevo.semaforo_id       = calcularSemaforoId(inicio, fin);
                            session.Save(nuevo);
                            transaction.Commit();
                            response = 0;
                            break;

                        case 2:
                            nuevo.fecha_inicio      = evento_arriba.fecha_fin ?? DateTime.Now;
                            nuevo.fecha_fin         = fin;
                            nuevo.comentarios       = c;
                            nuevo.usuario_id        = evento_abajo.usuario_id;
                            nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                            nuevo.sql_id            = 0;
                            nuevo.automatico        = 0;
                            DateTime z = evento_arriba.fecha_fin ?? DateTime.Now;
                            nuevo.semaforo_id = calcularSemaforoId(z, fin);
                            session.Save(nuevo);
                            transaction.Commit();
                            response = 0;
                            break;

                        case 3:
                            nuevo.fecha_inicio      = inicio;
                            nuevo.fecha_fin         = evento_abajo.fecha_inicio;
                            nuevo.comentarios       = c;
                            nuevo.usuario_id        = evento_abajo.usuario_id;
                            nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                            nuevo.sql_id            = 0;
                            nuevo.automatico        = 0;
                            nuevo.semaforo_id       = calcularSemaforoId(inicio, evento_abajo.fecha_inicio);
                            session.Save(nuevo);
                            transaction.Commit();
                            response = 0;
                            break;

                        case 4:
                            nuevo.fecha_inicio      = inicio;
                            nuevo.fecha_fin         = fin;
                            nuevo.comentarios       = c;
                            nuevo.usuario_id        = evento_abajo.usuario_id;
                            nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                            nuevo.sql_id            = 0;
                            nuevo.automatico        = 0;
                            nuevo.semaforo_id       = calcularSemaforoId(inicio, fin);
                            session.Save(nuevo);
                            transaction.Commit();
                            response = 0;
                            break;

                        default:
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        response = -1;
                    }
                    finally
                    {
                        if (session != null)
                        {
                            session.Close();//Cerramos la sesión.
                        }
                    }
                }
            }
        }



        return(response);
    }
コード例 #15
0
    public static List <Dreams> GetEventosActivos(List <Dreams> eventos, DateTime fecha_fin)
    {
        /**
         * Este metodo agregara los eventos
         * **/
        List <Dreams> nueva = new List <Dreams>();
        Dreams        actual;
        Dreams        siguiente;
        Dreams        activo;

        //if(fecha_inicio_primero > fecha_fin ) omite el primer registro.

        for (int index = 0; index < eventos.Count; index++)
        {
            if (index == 0)
            {
                var primero = eventos.ElementAt(index);
                if (primero.fecha_inicio > fecha_fin)
                {
                }
                else
                {
                    actual = eventos.ElementAt(index);
                    LogsysDreamControllerHelper.GetDiferenciaFechas(actual);
                    nueva.Add(actual);

                    /**
                     * A la nueva lista se le agrega el evento actual.
                     * */

                    if (index + 1 < eventos.Count)
                    {
                        siguiente = eventos.ElementAt(index + 1);//Se obtiene el siguiente elemento.
                        if (!actual.fecha_inicio.Equals(siguiente.fecha_fin))
                        {
                            activo = new Dreams();
                            activo.tipo_actividad_id = (int)StatusActividad.ACTIVO;
                            activo.actividad         = "activo";
                            DateTime z = siguiente.fecha_fin ?? DateTime.Now;
                            //activo.fecha_inicio = siguiente.fecha_fin;
                            activo.fecha_inicio = z;

                            activo.fecha_fin  = actual.fecha_inicio;
                            activo.usuario_id = actual.usuario_id;
                            GetDiferenciaFechas(activo);
                            nueva.Add(activo);
                        }
                    }
                }
            }
            else
            {
                actual = eventos.ElementAt(index);
                LogsysDreamControllerHelper.GetDiferenciaFechas(actual);
                nueva.Add(actual);

                /**
                 * A la nueva lista se le agrega el evento actual.
                 * */

                if (index + 1 < eventos.Count)
                {
                    siguiente = eventos.ElementAt(index + 1);//Se obtiene el siguiente elemento.
                    if (!actual.fecha_inicio.Equals(siguiente.fecha_fin))
                    {
                        activo = new Dreams();
                        activo.tipo_actividad_id = (int)StatusActividad.ACTIVO;
                        activo.actividad         = "activo";
                        DateTime s = siguiente.fecha_fin ?? DateTime.Now;
                        //activo.fecha_inicio = siguiente.fecha_fin;
                        activo.fecha_inicio = s;
                        activo.fecha_fin    = actual.fecha_inicio;
                        activo.usuario_id   = actual.usuario_id;
                        GetDiferenciaFechas(activo);
                        nueva.Add(activo);
                    }
                }
            }
        }

        return(nueva);
    }
コード例 #16
0
ファイル: MonitorHelper.cs プロジェクト: evazquez96/AppSueno
    public static int insertarSueno(int id_evento, String comentarios, DateTime inicio, DateTime fin)
    {
        int    response = -1;
        String c        = comentarios.Equals("") ? "Sueño Manual" : comentarios;

        using (ISession session = NHibernateSession.openSession())
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                try
                {
                    Dreams evento = session.QueryOver <Dreams>().Where(x => x.id == id_evento).List().Single();//Obtiene el primer elemento
                    Dreams temporal;
                    temporal = evento.GetTemporal();
                    int      codigoOp;
                    DateTime aux = Convert.ToDateTime("0001-01-01");
                    if (fin == Convert.ToDateTime("0001-01-01 00:00:00"))
                    {
                        /***
                         * Verifica si la fecha que se manda desde el servicio es null,
                         * para insertar sueño en el evento actual.
                         * ***/
                        Dreams ultimo = getUltimoEvento(evento, session);
                        ultimo.fecha_fin   = inicio;
                        ultimo.semaforo_id = calcularSemaforoId(ultimo.fecha_inicio, ultimo.fecha_fin);
                        if (ultimo.fecha_inicio == inicio)
                        {
                            ultimo.tipo_actividad_id = (int)StatusActividad.SUENO;
                            ultimo.fecha_fin         = null;
                            session.Update(ultimo);
                        }
                        else
                        {
                            Dreams nuevo = new Dreams();
                            nuevo.fecha_inicio = inicio;
                            nuevo.fecha_fin    = null;
                            nuevo.semaforo_id  = calcularSemaforoId(inicio, null);
                            nuevo.comentarios  = c;
                            nuevo.sql_id       = 999;
                            nuevo.automatico   = 0;
                            nuevo.usuario_id   = ultimo.usuario_id;

                            if (ultimo.tipo_actividad_id == (int)StatusActividad.SUENO)
                            {
                                /**Verificamos si el evento actual sea un sueño**/
                                nuevo.tipo_actividad_id = (int)StatusActividad.INACTIVO;
                            }
                            else
                            {
                                nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                            }
                            session.SaveOrUpdate(ultimo);
                            session.Save(nuevo);
                        }
                        //transaction.Commit();
                        response = 0;
                    }
                    else
                    {
                        //Inicio
                        if (evento.fecha_fin == null)
                        {
                            int auxActividad = evento.tipo_actividad_id;

                            /**
                             * El if Verifica si la fecha_fin es null
                             * **/
                            if (evento.fecha_inicio == inicio)
                            {//Verifica si la fecha_inicio del evento coincide con la fecha inicio del sueño
                                /*****/
                                evento.fecha_fin         = fin;
                                evento.tipo_actividad_id = (int)StatusActividad.SUENO;
                                evento.comentarios       = c;
                                evento.semaforo_id       = calcularSemaforoId(evento.fecha_inicio, evento.fecha_fin);
                                Dreams nuevo = new Dreams();
                                nuevo.fecha_inicio = fin;
                                nuevo.fecha_fin    = null;
                                //nuevo.comentarios = c;
                                nuevo.comentarios = "Automatico";
                                nuevo.usuario_id  = evento.usuario_id;
                                //nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                                nuevo.tipo_actividad_id = auxActividad;
                                //nuevo.sql_id = 0;
                                nuevo.sql_id      = 999;
                                nuevo.automatico  = 0;
                                nuevo.semaforo_id = calcularSemaforoId(nuevo.fecha_inicio, DateTime.Now);//Se agrego
                                response          = 0;
                                session.Update(evento);
                                session.Save(nuevo);
                                response = 0;
                            }
                            else if (inicio > evento.fecha_inicio)
                            {
                                evento.fecha_fin   = inicio;
                                evento.semaforo_id = calcularSemaforoId(evento.fecha_inicio, evento.fecha_fin);
                                Dreams nuevo = new Dreams();
                                var    d     = evento.fecha_fin ?? DateTime.Now;
                                nuevo.fecha_inicio      = d;
                                nuevo.fecha_fin         = fin;
                                nuevo.comentarios       = c;
                                nuevo.usuario_id        = evento.usuario_id;
                                nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                                nuevo.sql_id            = 0;
                                nuevo.automatico        = 0;
                                nuevo.semaforo_id       = calcularSemaforoId(nuevo.fecha_inicio, nuevo.fecha_fin);//Se agrego
                                Dreams nuevo2 = new Dreams();
                                //var b = evento.fecha_fin ?? DateTime.Now;
                                nuevo2.fecha_inicio      = fin;
                                nuevo2.fecha_fin         = null;
                                nuevo2.comentarios       = "Automatico";
                                nuevo2.comentarios       = evento.comentarios;
                                nuevo2.usuario_id        = evento.usuario_id;
                                nuevo2.tipo_actividad_id = evento.tipo_actividad_id;
                                nuevo2.sql_id            = 999;
                                nuevo2.automatico        = 0;
                                nuevo2.semaforo_id       = calcularSemaforoId(nuevo2.fecha_inicio, DateTime.Now);//Se agrego
                                session.Update(evento);
                                session.Save(nuevo);
                                session.Save(nuevo2);
                                response = 0;
                                //nuevo.semaforo_id = calcularSemaforoId(inicio, fin);
                            }
                        }
                        else
                        {
                            codigoOp = codigoOperacion(evento, inicio, fin);
                            switch (codigoOp)
                            {
                            case 1:    //Cambia el status actual del evento a sueño.
                                evento.tipo_actividad_id = (int)StatusActividad.SUENO;
                                evento.comentarios       = c;
                                session.Update(evento);
                                response = 0;
                                break;

                            case 2:    //La fecha inicio del sueño coincide con la fecha_inicio del evento
                                evento.tipo_actividad_id = (int)StatusActividad.SUENO;
                                evento.comentarios       = c;
                                evento.fecha_fin         = fin;
                                evento.semaforo_id       = calcularSemaforoId(evento.fecha_inicio, evento.fecha_fin);
                                temporal.fecha_inicio    = fin;
                                temporal.semaforo_id     = calcularSemaforoId(temporal.fecha_inicio, temporal.fecha_fin);//Se agrego
                                session.Save(temporal);
                                session.Update(evento);
                                response = 0;
                                break;

                            case 3:    //La fecha fin del sueño coincide con la fecha_fin del evento pero el inicio del sueño no coincide con la fecha_inicio del evento
                                evento.fecha_inicio      = inicio;
                                evento.comentarios       = c;
                                evento.tipo_actividad_id = (int)StatusActividad.SUENO;    //Agregue 22/11/2018
                                evento.semaforo_id       = calcularSemaforoId(evento.fecha_inicio, evento.fecha_fin);
                                temporal.fecha_fin       = inicio;
                                temporal.semaforo_id     = calcularSemaforoId(temporal.fecha_inicio, temporal.fecha_fin);//Se agrego
                                session.Save(temporal);
                                session.Update(evento);
                                response = 0;
                                break;

                            case 4:    //Cuando el inicio y el fin del sueño no coiciden exactamente con la fecha_inicio y fecha_fin del evento.
                                evento.fecha_fin   = inicio;
                                evento.semaforo_id = calcularSemaforoId(evento.fecha_inicio, evento.fecha_fin);
                                Dreams nuevo = new Dreams();
                                nuevo.fecha_inicio      = inicio;
                                nuevo.fecha_fin         = fin;
                                nuevo.comentarios       = c;
                                nuevo.usuario_id        = evento.usuario_id;
                                nuevo.tipo_actividad_id = (int)StatusActividad.SUENO;
                                nuevo.sql_id            = 0;
                                nuevo.automatico        = 0;
                                nuevo.semaforo_id       = calcularSemaforoId(inicio, fin);//Se agrego
                                Dreams nuevo2 = new Dreams();
                                nuevo2.fecha_inicio      = fin;
                                nuevo2.fecha_fin         = temporal.fecha_fin;
                                nuevo2.comentarios       = temporal.comentarios;
                                nuevo2.usuario_id        = temporal.usuario_id;
                                nuevo2.tipo_actividad_id = temporal.tipo_actividad_id;
                                nuevo2.sql_id            = temporal.sql_id;
                                nuevo2.semaforo_id       = calcularSemaforoId(nuevo.fecha_inicio, nuevo.fecha_fin);//Se agrego
                                nuevo.automatico         = temporal.automatico;
                                nuevo.semaforo_id        = calcularSemaforoId(fin, temporal.fecha_fin);
                                session.Save(nuevo);
                                session.Save(nuevo2);
                                session.Update(evento);
                                response = 0;
                                break;

                            default:
                                break;
                            }
                            //fin
                        }
                    }


                    Recalculo recalculo = new Recalculo();
                    recalculo.Id_Evento = id_evento;
                    recalculo.Procesado = 0;

                    /*
                     * Se manda un registro a la tabla de recalculo
                     * **/
                    session.Save(recalculo);

                    transaction.Commit();

                    /***
                     * Se manda a llamar al storedProcedure para recalcular semaforos
                     * en la  base de datos de logsys_dreams.
                     * **/
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    response = -1;
                }
                finally
                {
                    if (session != null)
                    {
                        session.Close();//Cerramos la sesión.
                    }
                }
            }
        }

        return(response);
    }
コード例 #17
0
    public static void getEventMonitor(List <Dreams> dreams, int user_id, DateTime fecha, Boolean isBitacora)
    {
        /**
         * El parametro Fecha corresponde a la fecha_fin que se le pondra al
         * evento actual, es decir el evento que esta en monitor.
         **/
        using (ISession session = NHibernateSession.openSession())
        {
            try
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    List <Monitor> monitor = null;
                    if (isBitacora)
                    {
                        monitor = session.QueryOver <Monitor>().Where(x => x.Usuario_Id == user_id).And(x => x.Actividad_Actual_Id != (int)StatusActividad.ACTIVO).List().ToList();
                        //Aqui entrara para la app de la Bitacora.
                    }
                    else
                    {
                        monitor = session.QueryOver <Monitor>().
                                  Where(x => x.Usuario_Id == user_id).List().ToList();
                        //Aqui entrara para la app de Monitor.
                    }

                    /**
                     * La bandera isBitacora sirve para identificar si el llamado al metodo es para la Bitacora, ya que en bitacora solo
                     * nos interesa los de estado inactivo, para la app de monitor tambien nos importan los activos.
                     * **/
                    Dreams nuevo  = new Dreams();
                    var    m      = monitor.Single();
                    var    existe = false;
                    foreach (Dreams dream in dreams)
                    {
                        if (dream.fecha_inicio == m.Fecha_Inicio)
                        {
                            /**Si entra indica que el evento ya esta en dreams**/
                            dream.fecha_fin = fecha;
                            existe          = true;
                            break;
                        }
                    }
                    if (!existe)
                    {
                        nuevo.fecha_inicio      = m.Fecha_Inicio;
                        nuevo.fecha_fin         = fecha;
                        nuevo.id                = m.Id;
                        nuevo.usuario_id        = m.Usuario_Id;
                        nuevo.tipo_actividad_id = m.Actividad_Actual_Id;
                        if (isBitacora)
                        {
                            dreams.Add(nuevo);
                        }
                        else
                        {
                            dreams.Insert(0, nuevo);    //Agrega el evento de monitor en el primer indice para la app de Monitor.
                        }
                    }
                    else
                    {
                        /*
                         * var temporal = dreams.ElementAt(dreams.Count - 1);//El ultimo elemento
                         * dreams.Insert(0, temporal);
                         * dreams.RemoveAt(dreams.Count-1);*/
                    }
                }
            }catch (Exception e)
            {
            }
            finally
            {
                session.Close();
            }
        }
    }