예제 #1
0
        public static void entradasAmigos()
        {
            try
            {
                IList <EntradaEN> entradas1 = new List <EntradaEN>();

                EntradaCAD entradaCAD = new EntradaCAD();
                EntradaCEN entradaCEN = new EntradaCEN(entradaCAD);

                UsuarioCAD usuarioCAD = new UsuarioCAD();
                UsuarioCEN usuarioCEN = new UsuarioCEN(usuarioCAD);
                MuroCAD    muroCAD    = new MuroCAD();
                MuroCEN    muroCEN    = new MuroCEN(muroCAD);

                MuroEN            muro   = new MuroEN();
                IList <UsuarioEN> amigos = usuarioCEN.ObtenerAmigosSP(id_usuario);

                muro = muroCEN.ObtenerMuroPorUsuario(id_usuario);

                entradas1 = entradaCEN.ObtenerEntradasPorMuro(muro.Id, 0, -1);
                entradas  = entradas.Concat(entradas1).ToList();
                foreach (UsuarioEN am in amigos)
                {
                    muro = muroCEN.ObtenerMuroPorUsuario(am.Id);

                    entradas1 = entradaCEN.ObtenerEntradasPorMuro(muro.Id, 0, -1);

                    // Wait until it is safe to enter.
                    mut.WaitOne();
                    entradas = entradas.Concat(entradas1).ToList();
                    if (entradas.Count >= 5)
                    {
                        // Release the Mutex.
                        mut.ReleaseMutex();
                        break;
                    }
                    // Release the Mutex.
                    mut.ReleaseMutex();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
        }
예제 #2
0
        public static void entradasGrupos()
        {
            try
            {
                IList <EntradaEN> entradas1 = new List <EntradaEN>();

                EntradaCAD entradaCAD = new EntradaCAD();
                EntradaCEN entradaCEN = new EntradaCEN(entradaCAD);

                UsuarioCAD usuarioCAD = new UsuarioCAD();
                UsuarioCEN usuarioCEN = new UsuarioCEN(usuarioCAD);
                MuroCAD    muroCAD    = new MuroCAD();
                MuroCEN    muroCEN    = new MuroCEN(muroCAD);

                SuperUsuarioCAD superuserCAD = new SuperUsuarioCAD();
                SuperUsuarioCEN superuserCEN = new SuperUsuarioCEN(superuserCAD);

                MuroEN muro = new MuroEN();
                IList <SuperUsuarioEN> grupos = superuserCEN.ObtenerGruposPorUsuarioNP(id_usuario);
                foreach (SuperUsuarioEN am in grupos)
                {
                    muro = muroCEN.ObtenerMuroPorGrupo(am.Id);

                    entradas1 = entradaCEN.ObtenerEntradasPorMuro(muro.Id, 0, -1);  //falta paginar
                    // Wait until it is safe to enter.
                    mut.WaitOne();
                    entradas = entradas.Concat(entradas1).ToList();
                    if (entradas.Count >= 5)
                    {
                        // Release the Mutex.
                        mut.ReleaseMutex();
                        break;
                    }
                    // Release the Mutex.
                    mut.ReleaseMutex();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
        }
예제 #3
0
        public List <EntradaEN> ultimas5Entradas1(int pe_usuario)
        {
            try
            {
                SessionInitializeTransaction();

                IList <EntradaEN> entradas1  = new List <EntradaEN>();
                EntradaCAD        entradaCAD = new EntradaCAD();
                EntradaCEN        entradaCEN = new EntradaCEN(entradaCAD);

                //UsuarioCAD usuarioCAD = new UsuarioCAD();
                //UsuarioCEN usuarioCEN = new UsuarioCEN(usuarioCAD);
                MuroCAD muroCAD = new MuroCAD();
                MuroCEN muroCEN = new MuroCEN(muroCAD);
                // SuperUsuarioCAD superuserCAD = new SuperUsuarioCAD();
                // SuperUsuarioCEN superuserCEN = new SuperUsuarioCEN(superuserCAD);

                MuroEN muro = new MuroEN();

                id_usuario = pe_usuario;
                // Thread t1 = new Thread(entradasAmigos);
                //t1.Start();
                //Thread t2 = new Thread(entradasGrupos);
                ///t2.Start();

                muro = muroCEN.ObtenerMuroPorUsuario(pe_usuario);

                entradas1 = entradaCEN.ObtenerEntradasPorMuro(muro.Id, 0, -1);

                // Wait until it is safe to enter.
                mut.WaitOne();
                entradas = entradas.Concat(entradas1).ToList();
                // Release the Mutex.
                mut.ReleaseMutex();

                /*
                 * IList<UsuarioEN> amigos = usuarioCEN.ObtenerAmigos(pe_usuario);
                 * foreach (UsuarioEN am in amigos)
                 * {
                 *  muro = muroCEN.ObtenerMuroPorUsuario(am.Id);
                 *
                 *  entradas1 = entradaCEN.ObtenerEntradasPorMuro(muro.Id);
                 *  entradas.Concat(entradas1);
                 * }
                 *
                 * IList<GrupoEN> grupos = superuserCEN.ObtenerGruposPorUsuario(pe_usuario);
                 * foreach (GrupoEN am in grupos)
                 * {
                 *  muro = muroCEN.ObtenerMuroPorGrupo(am.Id);
                 *
                 *  entradas1 = entradaCEN.ObtenerEntradasPorMuro(muro.Id);  //falta paginar
                 *  entradas.Concat(entradas1);
                 * }
                 */

                entradas.OrderBy(e => e.FechaPublicacion);
                entradas = entradas.Distinct().ToList();
                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }

            return(entradas);
        }