// GET: Solicitud/Delete
        public ActionResult Delete(int id)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }

            SolicitudCEN solicitudCEN = new SolicitudCEN();
            SolicitudEN  solicitudEN  = solicitudCEN.ReadOID(id);

            Solicitud solicitud = new AssemblerSolicitud().ConvertENToModelUI(solicitudEN);

            //Cliente
            if (Session["modoAdmin"].ToString() == "false")
            {
                return(View("./VistaUsuario/DeleteCliente", solicitud));
            }

            //Admin
            if (Session["esAdmin"].ToString() == "true")
            {
                if (Session["modoAdmin"].ToString() == "false")
                {
                    Session["modoAdmin"] = "true";
                }
            }

            return(View(solicitud));
        }
        public ActionResult Delete(int id, Solicitud solicitud)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }

            SolicitudCEN solicitudCEN = new SolicitudCEN();
            SolicitudEN  solicitudEN  = solicitudCEN.ReadOID(id);

            try
            {
                UsuarioCEN usuarioCEN = new UsuarioCEN();
                UsuarioEN  usuarioEN  = usuarioCEN.ReadOID(solicitudEN.UsuarioSolicitante.Id);

                ProyectoCEN proyectoCEN = new ProyectoCEN();
                ProyectoEN  proyectoEN  = proyectoCEN.ReadOID(solicitudEN.ProyectoSolicitado.Id);

                TempData["bien"] = "Se ha borrado correctamente la solicitud del usuario " + usuarioEN.Nick + " en el proyecto " + proyectoEN.Nombre;

                solicitudCEN.Destroy(id);


                //Cliente
                if (Session["modoAdmin"].ToString() == "false")
                {
                    return(RedirectToAction("AdministrarSolicitudes", new { proyectoId = solicitudEN.ProyectoSolicitado.Id }));
                }

                //Admin
                if (Session["esAdmin"].ToString() == "true")
                {
                    if (Session["modoAdmin"].ToString() == "false")
                    {
                        Session["modoAdmin"] = "true";
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch
            {
                TempData["mal"] = "Ocurrió un problema al intentar borrar la solicitud";
                //Cliente
                if (Session["modoAdmin"].ToString() == "false")
                {
                    return(RedirectToAction("AdministrarSolicitudes", new { proyectoId = solicitudEN.ProyectoSolicitado.Id }));
                }

                //Admin
                if (Session["esAdmin"].ToString() == "true")
                {
                    if (Session["modoAdmin"].ToString() == "false")
                    {
                        Session["modoAdmin"] = "true";
                    }
                }
                return(RedirectToAction("Index"));
            }
        }
        // GET: Solicitud
        public ActionResult Index(int?pag)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }
            if (Session["esAdmin"].ToString() == "false")
            {
                return(View("../NoAdministrador"));
            }
            if (Session["modoAdmin"].ToString() == "false")
            {
                Session["modoAdmin"] = "true";
            }

            SolicitudCEN      solicitudCEN  = new SolicitudCEN();
            UsuarioCEN        usuarioCEN    = new UsuarioCEN();
            IList <UsuarioEN> listaUsuarios = usuarioCEN.ReadAll(0, -1).ToList();
            ArrayList         listaNicks    = new ArrayList();

            foreach (var e in listaUsuarios)
            {
                listaNicks.Add(e.Nick);
            }

            ViewData["ListaNicks"] = listaNicks;

            ArrayList listaEstados = new ArrayList();

            listaEstados.Add("Todos");
            listaEstados.Add("Pendiente");
            listaEstados.Add("Aceptada");
            listaEstados.Add("Rechazada");
            ViewData["estados"] = listaEstados;


            //Paginacion
            int tamPag  = 10;
            int numPags = (solicitudCEN.ReadAll(0, -1).Count - 1) / tamPag;

            if (pag == null || pag < 0)
            {
                pag = 0;
            }
            else if (pag >= numPags)
            {
                pag = numPags;
            }
            ViewData["pag"]           = pag;
            ViewData["numeroPaginas"] = numPags;
            int inicio = (int)pag * tamPag;

            IList <SolicitudEN>     listaSolicitudes = solicitudCEN.ReadAll(inicio, tamPag).ToList();
            IEnumerable <Solicitud> solicitudes      = new AssemblerSolicitud().ConvertListENToModel(listaSolicitudes).ToList();

            return(View(solicitudes));
        }
        // POST: Usuario/CambioEstadoCliente2/
        public ActionResult CambioEstadoCliente2(int proyectoId, String cambioEstado)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }

            ViewData["proyectoId"] = proyectoId;
            try
            {
                UsuarioCEN usuarioCEN = new UsuarioCEN();
                UsuarioEN  usuarioEN  = usuarioCEN.ReadNick(Session["usuario"].ToString());

                ProyectoCEN proyectoCEN = new ProyectoCEN();
                ProyectoEN  proyectoEN  = proyectoCEN.ReadOID(proyectoId);

                if (proyectoEN == null)
                {
                    return(RedirectToAction("./VistaUsuario/AdministrarSolicitudes", proyectoId));
                }

                SolicitudCEN        solicitudCEN     = new SolicitudCEN();
                SolicitudEN         solicitudEN      = new SolicitudEN();
                IList <SolicitudEN> listaSolicitudes = solicitudCEN.DameSolicitudesPendientesPorProyectoDeUsuario(proyectoId, usuarioEN.Id);

                if (listaSolicitudes.Count > 1)
                {
                    TempData["mal"] = "Ocurrió un problema al intentar modificar la solicitud";
                    return(RedirectToAction("./VistaUsuario/AdministrarSolicitudes", proyectoId));
                }

                foreach (SolicitudEN e in listaSolicitudes)
                {
                    solicitudEN = e;
                }


                if (cambioEstado == "Aceptar")
                {
                    solicitudCEN.Aceptar(solicitudEN.Id);
                }
                else
                {
                    solicitudCEN.Rechazar(solicitudEN.Id);
                }

                TempData["bien"] = "Se ha modificado correctamente el estado de la solicitud" + solicitudEN.Id;
                return(RedirectToAction("./VistaUsuario/AdministrarSolicitudes", proyectoId));
            }
            catch
            {
                TempData["mal"] = "Ocurrió un problema al intentar modificar la solicitud";
                return(RedirectToAction("./VistaUsuario/AdministrarSolicitudes", new { proyectoId = proyectoId }));
            }
        }
        // GET: Solicitud/DetailsCliente/5
        public ActionResult DetailsCliente(int id)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }

            SolicitudCEN solicitudCEN = new SolicitudCEN();
            SolicitudEN  solicitudEN  = solicitudCEN.ReadOID(id);

            Solicitud solicitud = new AssemblerSolicitud().ConvertENToModelUI(solicitudEN);

            return(View("./VistaUsuario/DetailsCliente", solicitud));
        }
        //*************************************
        //|||||||||||  VISTA CLIENTE  ||||||||
        //*************************************



        // GET: Solicitud/EnviarSolicitud/
        public ActionResult EnviarSolicitud(int proyectoId)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }


            UsuarioCEN usuarioCEN = new UsuarioCEN();
            UsuarioEN  usuarioEN  = usuarioCEN.ReadNick(Session["usuario"].ToString());

            ProyectoCEN proyectoCEN = new ProyectoCEN();
            ProyectoEN  proyectoEN  = proyectoCEN.ReadOID(proyectoId);

            //Comprobamos si ese usuario ya pertenece a ese proyecto
            bool pertenece = false;
            IList <ProyectoEN> proyectosALosQuePertenece = proyectoCEN.DameProyectosUsuarioPertenece(usuarioEN.Id);

            foreach (ProyectoEN e in proyectosALosQuePertenece)
            {
                if (e.Id == proyectoId)
                {
                    pertenece = true;
                }
            }
            //Usuario pertenece al proyecto
            if (pertenece)
            {
                ViewData["titulo"]        = "Ya perteneces al proyecto " + proyectoEN.Nombre;
                ViewData["esParticpante"] = "true";
            }
            //No pertenece al proyecto
            ViewData["titulo"] = "Desea participar en el proyecto " + proyectoEN.Nombre + " ?";

            //Comprobamos que no tenga una peticion pendiente en ese proyecto
            SolicitudCEN        solicitudCEN  = new SolicitudCEN();
            IList <SolicitudEN> solicitudesEN = solicitudCEN.DameSolicitudesPendientesPorProyectoDeUsuario(proyectoEN.Id, usuarioEN.Id);

            if (solicitudesEN.Count >= 1)
            {
                ViewData["titulo"]        = "Su solicitud esta pendiente, recibira una notificacion con la respuesta";
                ViewData["esParticpante"] = "true";
            }


            return(View("./VistaUsuario/EnviarSolicitud", proyectoEN));
        }
        // GET: Solicitud/Details
        public ActionResult Details(int id)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }
            if (Session["esAdmin"].ToString() == "false")
            {
                return(View("../NoAdministrador"));
            }
            if (Session["modoAdmin"].ToString() == "false")
            {
                Session["modoAdmin"] = "true";
            }

            SolicitudCEN solicitudCEN = new SolicitudCEN();
            SolicitudEN  solicitudEN  = solicitudCEN.ReadOID(id);

            Solicitud solicitud = new AssemblerSolicitud().ConvertENToModelUI(solicitudEN);

            return(View(solicitud));
        }
        // POST: Usuario/Edit/5
        public ActionResult CambioEstado(int id, String cambioEstado)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }
            if (Session["esAdmin"].ToString() == "false")
            {
                return(View("../NoAdministrador"));
            }
            if (Session["modoAdmin"].ToString() == "false")
            {
                Session["modoAdmin"] = "true";
            }

            try
            {
                SolicitudCEN solicitudCEN = new SolicitudCEN();
                if (cambioEstado == "Aceptar")
                {
                    solicitudCEN.Aceptar(id);
                }
                else
                {
                    solicitudCEN.Rechazar(id);
                }

                TempData["bien"] = "Se a modificado correctamente el estado de la solicitud " + id;

                //return RedirectToAction("Index");
                return(RedirectToAction("Details", new { id }));
            }
            catch
            {
                TempData["mal"] = "Ocurrio un problema al intentar modificar la solicitud " + id;
                return(RedirectToAction("Index"));
            }
        }
        // POST: Usuario/CambioEstadoCliente/
        public ActionResult CambioEstadoCliente(int id, String cambioEstado)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }

            /*if (Session["esAdmin"].ToString() == "false")
             *  return View("../NoAdministrador");
             * if (Session["modoAdmin"].ToString() == "false")
             *  Session["modoAdmin"] = "true";*/

            SolicitudCEN solicitudCEN = new SolicitudCEN();
            SolicitudEN  solicitudEN  = solicitudCEN.ReadOID(id);

            try
            {
                if (cambioEstado == "Aceptar")
                {
                    solicitudCEN.Aceptar(id);
                }
                else
                {
                    solicitudCEN.Rechazar(id);
                }

                TempData["bien"] = "Se ha modificado correctamente el estado de la solicitud " + id;

                return(RedirectToAction("AdministrarSolicitudes", new { proyectoId = solicitudEN.ProyectoSolicitado.Id }));
            }
            catch
            {
                TempData["mal"] = "Ocurrió un problema al intentar modificar la solicitud " + id;
                return(RedirectToAction("AdministrarSolicitudes", new { proyectoId = solicitudEN.ProyectoSolicitado.Id }));
            }
        }
Exemple #10
0
        public void Destroy(int p_Proyecto_OID)
        {
            /*PROTECTED REGION ID(MultitecUAGenNHibernate.CP.MultitecUA_Proyecto_destroy) ENABLED START*/

            IProyectoCAD proyectoCAD = null;
            ProyectoCEN  proyectoCEN = null;



            try
            {
                SessionInitializeTransaction();
                proyectoCAD = new ProyectoCAD(session);
                proyectoCEN = new  ProyectoCEN(proyectoCAD);

                ProyectoEN proyectoEN = proyectoCAD.ReadOID(p_Proyecto_OID);

                UsuarioCEN usuarioCEN = new UsuarioCEN();

                List <int> moderadores = new List <int>();
                foreach (UsuarioEN moderador in usuarioCEN.DameModeradoresProyecto(p_Proyecto_OID))
                {
                    moderadores.Add(moderador.Id);
                }
                proyectoCAD.EliminaModeradores(p_Proyecto_OID, moderadores);

                List <int> participantes = new List <int>();
                foreach (UsuarioEN participante in usuarioCEN.DameParticipantesProyecto(p_Proyecto_OID))
                {
                    participantes.Add(participante.Id);
                }
                proyectoCAD.EliminaParticipantes(p_Proyecto_OID, participantes);


                NotificacionCEN notificacionCEN  = new NotificacionCEN();
                int             OID_notificacion = notificacionCEN.New_("Proyecto eliminado", "El proyecto " + proyectoEN.Nombre + " ha sido eliminado");

                NotificacionUsuarioCEN notificacionUsuarioCEN = new NotificacionUsuarioCEN();

                foreach (UsuarioEN usuario in usuarioCEN.DameParticipantesProyecto(p_Proyecto_OID))
                {
                    notificacionUsuarioCEN.New_(usuario.Id, OID_notificacion);
                }

                SolicitudCEN solicitudCEN = new SolicitudCEN();
                foreach (SolicitudEN solicitud in solicitudCEN.DameSolicitudesPorProyectoYEstado(p_Proyecto_OID, Enumerated.MultitecUA.EstadoSolicitudEnum.Pendiente))
                {
                    notificacionUsuarioCEN.New_(solicitud.UsuarioSolicitante.Id, OID_notificacion);
                }

                EventoCEN eventoCEN = new EventoCEN();
                foreach (EventoEN eventoEN in eventoCEN.DameEventosPorProyecto(p_Proyecto_OID))
                {
                    eventoCEN.EliminaProyectosAsociados(eventoEN.Id, new List <int> {
                        p_Proyecto_OID
                    });
                }

                proyectoCAD.Destroy(p_Proyecto_OID);


                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }


            /*PROTECTED REGION END*/
        }
Exemple #11
0
        public static void InitializeData()
        {
            /*PROTECTED REGION ID(initializeDataMethod) ENABLED START*/
            try
            {
                // Insert the initilizations of entities using the CEN classes

                /*USUARIOS*/
                UsuarioCEN usuarioCEN = new UsuarioCEN();
                int        OIDUsuario = usuarioCEN.New_("Judith", "12345", null, "*****@*****.**", "BenhMM");
                usuarioCEN.Modify(OIDUsuario, "Victor", "54321", "*****@*****.**", "Nedyar94", null);
                Console.WriteLine("Login key: " + usuarioCEN.Login(OIDUsuario, "dsfsdfgdsf"));
                //int OIDUsuarioABorrar = usuarioCEN.New_ ("Judith", "12345", null, "*****@*****.**", "BenhasdfasdfMM");
                // en lugar de destroy tiene cambiar rol usuarioCEN.Destroy (OIDUsuarioABorrar);
                usuarioCEN.CambiarRol(OIDUsuario, MultitecUAGenNHibernate.Enumerated.MultitecUA.RolUsuarioEnum.Administrador);
                Console.WriteLine("Administradores: " + usuarioCEN.DameUsuariosPorRol(MultitecUAGenNHibernate.Enumerated.MultitecUA.RolUsuarioEnum.Administrador).Count);
                Console.WriteLine("Usuarios por nick: " + usuarioCEN.ReadNick("Nedyar94"));

                /*CATEGORIAS DE USUARIOS*/
                CategoriaUsuarioCEN categoriaUsuarioCEN = new CategoriaUsuarioCEN();

                List <int> OIDsCategorias = new List <int>();
                int        OIDCategoria   = categoriaUsuarioCEN.New_("Programado");
                categoriaUsuarioCEN.Modify(OIDCategoria, "Programador");
                OIDsCategorias.Add(OIDCategoria);
                OIDCategoria = categoriaUsuarioCEN.New_("Dise�ador");
                OIDsCategorias.Add(OIDCategoria);
                OIDCategoria = categoriaUsuarioCEN.New_("Puto Amo");
                OIDsCategorias.Add(OIDCategoria);

                categoriaUsuarioCEN.Modify(OIDCategoria, "Putisimo Amo");

                //categoriaUsuarioCEN.Destroy (OIDCategoria);

                Console.WriteLine("Categoria Usuario con OID " + OIDCategoria + ": " + categoriaUsuarioCEN.ReadOID(OIDCategoria).Id);
                usuarioCEN.AgregaCategorias(OIDUsuario, OIDsCategorias);

                OIDsCategorias.RemoveAt(2);
                usuarioCEN.EliminaCategorias(OIDUsuario, OIDsCategorias);

                Console.WriteLine("Usuarios por categoria: " + usuarioCEN.DameUsuariosPorCategoria(OIDCategoria).Count);

                Console.WriteLine("Usuarios totales: " + usuarioCEN.ReadAll(0, -1).Count);
                Console.WriteLine("Usuario con OID " + OIDUsuario + ": " + usuarioCEN.ReadOID(OIDUsuario).Id);
                Console.WriteLine("Categorias Usuarios totales: " + categoriaUsuarioCEN.ReadAll(0, -1).Count);
                Console.WriteLine("Categoria Usuario con OID " + OIDCategoria + ": " + categoriaUsuarioCEN.ReadOID(OIDCategoria).Id);

                CategoriaUsuarioCP categoriaUsuarioCP = new CategoriaUsuarioCP();
                categoriaUsuarioCP.Destroy(OIDCategoria);
                Console.WriteLine("Usuario con OID " + OIDUsuario + ": " + usuarioCEN.ReadOID(OIDUsuario).Id);
                Console.WriteLine("Categorias Usuarios totales: " + categoriaUsuarioCEN.ReadAll(0, -1).Count);

                /*PROYECTO*/
                ProyectoCEN proyectoCEN        = new ProyectoCEN();
                int         OIDProyecto        = proyectoCEN.New_("APPANIC", "App que te ayuda en la vida", OIDUsuario, null);
                ProyectoCP  proyectoCP         = new ProyectoCP();
                int         OIDProyectoABorrar = proyectoCEN.New_("APPANICasdasd", "App que te ayuda en la vida", OIDUsuario, null);

                int aux = usuarioCEN.New_("Sergio", "12345", null, "*****@*****.**", "Yupipi93");
                usuarioCEN.CambiarRol(aux, MultitecUAGenNHibernate.Enumerated.MultitecUA.RolUsuarioEnum.MiembroHonor);
                List <int> aaux = new List <int>();
                aaux.Add(aux);
                proyectoCP.AgregaParticipantes(OIDProyecto, aaux);
                proyectoCP.AgregaModeradores(OIDProyecto, aaux);
                proyectoCP.EliminaModeradores(OIDProyecto, aaux);
                aaux [0] = usuarioCEN.New_("Judith", "12345", null, "*****@*****.**", "BenhMM");
                proyectoCP.AgregaParticipantes(OIDProyecto, aaux);
                proyectoCP.EliminaParticipantes(OIDProyecto, aaux);
                proyectoCP.Modify(OIDProyecto, "APPPanic", "App que te ayuda en la vida", null);

                proyectoCEN.CambiarEstado(OIDProyecto, MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoProyectoEnum.EnDesarrollo);
                Console.WriteLine("Proyectos por estado: " + proyectoCEN.DameProyectosPorEstado(MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoProyectoEnum.EnDesarrollo).Count);

                Console.WriteLine("Proyectos usuario pertenece: " + proyectoCEN.DameProyectosUsuarioPertenece(OIDUsuario).Count);

                Console.WriteLine("Participantes proyecto: " + usuarioCEN.DameParticipantesProyecto(OIDProyecto).Count);
                Console.WriteLine("Moderadores proyecto: " + usuarioCEN.DameModeradoresProyecto(OIDProyecto).Count);

                Console.WriteLine("Usuarios: " + usuarioCEN.DameUsuariosPorRol(MultitecUAGenNHibernate.Enumerated.MultitecUA.RolUsuarioEnum.Miembro).Count);
                Console.WriteLine("Miembros de honor: " + usuarioCEN.DameUsuariosPorRol(MultitecUAGenNHibernate.Enumerated.MultitecUA.RolUsuarioEnum.MiembroHonor).Count);


                Console.WriteLine("Proyecto con OID " + OIDProyecto + ": " + proyectoCEN.ReadOID(OIDProyecto).Id);



                /*CATEGORIA PROYECTO*/
                CategoriaProyectoCEN categoriaProyectoCEN = new CategoriaProyectoCEN();

                List <int> listaCategoriasProyecto = new List <int>();

                int OIDCategoriaProyecto = categoriaProyectoCEN.New_("Salu");
                categoriaProyectoCEN.Modify(OIDCategoriaProyecto, "Salud");
                listaCategoriasProyecto.Add(OIDCategoriaProyecto);
                OIDCategoriaProyecto = categoriaProyectoCEN.New_("Tecnologico");
                listaCategoriasProyecto.Add(OIDCategoriaProyecto);
                OIDCategoriaProyecto = categoriaProyectoCEN.New_("Puto Amo2");
                listaCategoriasProyecto.Add(OIDCategoriaProyecto);
                proyectoCEN.AgregaCategoriasProyecto(OIDProyecto, listaCategoriasProyecto);

                listaCategoriasProyecto.RemoveAt(2);
                proyectoCEN.EliminaCategoriasProyecto(OIDProyecto, listaCategoriasProyecto);
                Console.WriteLine("Proyectos por categoria: " + proyectoCEN.DameProyectosPorCategoria(OIDCategoriaProyecto).Count);

                proyectoCEN.AgregaCategoriasUsuario(OIDProyecto, OIDsCategorias);
                OIDsCategorias.RemoveAt(0);
                proyectoCEN.EliminaCategoriasUsuario(OIDProyecto, OIDsCategorias);

                Console.WriteLine("Categorias Proyecto totales: " + categoriaProyectoCEN.ReadAll(0, -1).Count);
                Console.WriteLine("Categoria Proyecto con OID " + OIDCategoriaProyecto + ": " + categoriaProyectoCEN.ReadOID(OIDCategoriaProyecto).Id);

                CategoriaProyectoCP categoriaProyectoCP = new CategoriaProyectoCP();
                categoriaProyectoCP.Destroy(OIDCategoriaProyecto);



                /*EVENTOS*/
                EventoCEN eventoCEN = new EventoCEN();
                int       OIDEvento = eventoCEN.New_("Evento1", "El Mas guay", DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, null);
                eventoCEN.PublicaEvento(OIDEvento);
                int OIDEventoABorrar = eventoCEN.New_("EventoABorrar", "El Mas guay", DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, null);
                eventoCEN.PublicaEvento(OIDEventoABorrar);
                EventoCP eventoCP = new EventoCP();
                eventoCEN.AgregaCategorias(OIDEvento, listaCategoriasProyecto);
                listaCategoriasProyecto.RemoveAt(0);
                eventoCEN.EliminaCategorias(OIDEvento, listaCategoriasProyecto);

                List <int> listaEventos = new List <int>();
                listaEventos.Add(OIDEvento);
                listaEventos.Add(OIDEventoABorrar);

                proyectoCP.AgregaEventos(OIDProyecto, listaEventos);
                Console.WriteLine("Eventos por proyecto: " + eventoCEN.DameEventosPorProyecto(OIDProyecto).Count);

                Console.WriteLine("Proyectos por evento: " + proyectoCEN.DameProyectosPorEvento(OIDEvento).Count);
                eventoCP.Modify(OIDEvento, "Evento", "El Mas guay", DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, null);
                //eventoCP.Destroy (OIDEventoABorrar);

                listaEventos.Remove(OIDEventoABorrar);

                proyectoCP.EliminaEventos(OIDProyecto, listaEventos);

                Console.WriteLine("Eventos filtrados: " + eventoCEN.DameEventosFiltrados(-1, DateTime.Parse("01/01/2030"), null).Count);

                Console.WriteLine("Eventos totales: " + eventoCEN.ReadAll(0, -1).Count);
                Console.WriteLine("Evento con OID " + OIDEvento + ": " + eventoCEN.ReadOID(OIDEvento).Id);


                /*SOLICITUD*/

                SolicitudCEN solicitudCEN = new SolicitudCEN();
                int          OIDSolicitud = solicitudCEN.New_(OIDUsuario, OIDProyecto);
                solicitudCEN.Aceptar(OIDSolicitud);
                solicitudCEN.Rechazar(OIDSolicitud);


                int OIDSolicitud2 = solicitudCEN.New_(OIDUsuario, OIDProyecto);
                solicitudCEN.Aceptar(OIDSolicitud2);

                solicitudCEN.New_(OIDUsuario, OIDProyecto);

                //Filtros de SOLICITUD
                Console.WriteLine("DameSolicitudesPorProyectoYEstado: " + solicitudCEN.DameSolicitudesPorProyectoYEstado(OIDProyecto, MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoSolicitudEnum.Aceptada).Count);
                Console.WriteLine("DameSolicitudesPorUsuarioYEstado: " + solicitudCEN.DameSolicitudesPorUsuarioYEstado(OIDUsuario, MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoSolicitudEnum.Aceptada).Count);
                Console.WriteLine("DameSolicidudesPorUsuarioYProyecto: " + solicitudCEN.DameSolicidudesPorUsuarioYProyecto(OIDProyecto, OIDUsuario).Count);
                Console.WriteLine("DameSolicitudesPendientesPorProyectoDe: " + solicitudCEN.DameSolicitudesPendientesPorProyectoDeUsuario(OIDProyecto, OIDUsuario).Count);

                solicitudCEN.EnviarSolicitud(OIDSolicitud2);

                solicitudCEN.Destroy(OIDSolicitud);

                Console.WriteLine("Solicitud con OID " + OIDSolicitud2 + ": " + solicitudCEN.ReadOID(OIDSolicitud2).Id);
                Console.WriteLine("Solicitudes totales: " + solicitudCEN.ReadAll(0, -1).Count);


                Console.WriteLine("Proyecto con OID " + OIDProyecto + ": " + proyectoCEN.ReadOID(OIDProyecto).Id);
                proyectoCP.Destroy(OIDProyecto);
                Console.WriteLine("Proyectos totales: " + proyectoCEN.ReadAll(0, -1).Count);



                /*MENSAJES*/
                MensajeCEN mensajeCEN = new MensajeCEN();
                int        OIDMensaje = mensajeCEN.New_("Esto es un mensaje", "Mi primerito mensaje", OIDUsuario, OIDUsuario, null);

                Console.WriteLine("Mensajes por receptor: " + mensajeCEN.DameMensajesPorReceptor(OIDUsuario).Count);

                Console.WriteLine("Mensajes por autor: " + mensajeCEN.DameMensajesPorAutor(OIDUsuario).Count);

                mensajeCEN.CambiarEstado(OIDMensaje, MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoLecturaEnum.Leido);

                Console.WriteLine("Mensajes por autor filtrados (Archivados) : " + mensajeCEN.DameMensajesPorAutorFiltrados(OIDUsuario, DateTime.Parse("01/01/2030"), DateTime.Parse("01/01/1800"), MultitecUAGenNHibernate.Enumerated.MultitecUA.BandejaMensajeEnum.Archivado).Count);
                Console.WriteLine("Mensajes por receptor filtrados (Archivados) : " + mensajeCEN.DameMensajesPorReceptorFiltrados(OIDUsuario, DateTime.Parse("01/01/2030"), DateTime.Parse("01/01/1800"), MultitecUAGenNHibernate.Enumerated.MultitecUA.BandejaMensajeEnum.Archivado).Count);

                mensajeCEN.CambiarBandejaAutor(OIDMensaje, MultitecUAGenNHibernate.Enumerated.MultitecUA.BandejaMensajeEnum.Archivado);
                mensajeCEN.CambiarBandejaReceptor(OIDMensaje, MultitecUAGenNHibernate.Enumerated.MultitecUA.BandejaMensajeEnum.Archivado);

                Console.WriteLine("Mensajes por autor filtrados (Archivados) : " + mensajeCEN.DameMensajesPorAutorFiltrados(OIDUsuario, DateTime.Parse("01/01/2030"), DateTime.Parse("01/01/1800"), MultitecUAGenNHibernate.Enumerated.MultitecUA.BandejaMensajeEnum.Archivado).Count);
                Console.WriteLine("Mensajes por receptor filtrados (Archivados) : " + mensajeCEN.DameMensajesPorReceptorFiltrados(OIDUsuario, DateTime.Parse("01/01/2030"), DateTime.Parse("01/01/1800"), MultitecUAGenNHibernate.Enumerated.MultitecUA.BandejaMensajeEnum.Archivado).Count);

                mensajeCEN.EnviarMensaje(OIDMensaje);

                Console.WriteLine("Mensajes totales: " + mensajeCEN.ReadAll(0, -1).Count);
                Console.WriteLine("Mensajes con OID " + OIDMensaje + ": " + mensajeCEN.ReadOID(OIDMensaje).Id);

                mensajeCEN.Destroy(OIDMensaje);


                /*SERVICIOS*/
                ServicioCEN servicioCEN = new ServicioCEN();
                int         OIDServicio = servicioCEN.New_("Hosting", "Servicio de alojamiento web", MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoServicioEnum.Disponible, null);
                servicioCEN.Modify(OIDServicio, "Hosting Ilimitado", "Servicio de alojamiento web sin limites", MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoServicioEnum.Disponible, null);
                OIDServicio = servicioCEN.New_("Prueba", "Probando el insertar mas servicios para ver si funciona la fecha", MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoServicioEnum.NoDisponible, null);
                OIDServicio = servicioCEN.New_("Borrar", "Pues... Aqui voy a probar que funcione el destroy", MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoServicioEnum.Disponible, null);
                servicioCEN.Destroy(OIDServicio);
                OIDServicio = servicioCEN.New_("Borrar2", "Este realmente se va a quedar", MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoServicioEnum.Disponible, null);
                IList <ServicioEN> listaServicios = servicioCEN.ReadAll(0, -1);
                Console.WriteLine("**** LISTANDO LOS SERVICIOS");
                foreach (ServicioEN elemento in listaServicios)
                {
                    Console.WriteLine(elemento.Nombre + " " + elemento.Estado);
                }
                servicioCEN.CambiarDisponibilidad(OIDServicio, MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoServicioEnum.NoDisponible);
                listaServicios = servicioCEN.ReadAll(0, -1);
                Console.WriteLine("**** LISTANDO LOS SERVICIOS");
                foreach (ServicioEN elemento in listaServicios)
                {
                    Console.WriteLine(elemento.Nombre + " " + elemento.Estado);
                }
                IList <ServicioEN> listaServiciosNoDispo = servicioCEN.DameServiciosPorEstado(MultitecUAGenNHibernate.Enumerated.MultitecUA.EstadoServicioEnum.NoDisponible);
                Console.WriteLine("********* SERVICIOS NO DISPONIBLES");
                foreach (ServicioEN elemento in listaServiciosNoDispo)
                {
                    Console.WriteLine(elemento.Nombre + " " + elemento.Estado);
                }


                /*RECUERDO*/
                RecuerdoCEN recuerdoCEN = new RecuerdoCEN();
                int         OIDRecuerdo = recuerdoCEN.New_("Recuerdo1", "esto es un recuerdo", OIDEvento, null);
                recuerdoCEN.Modify(OIDRecuerdo, "Recuerdo", "Esto es un recuerdo modificado", null);
                OIDRecuerdo = recuerdoCEN.New_("Recuerdo2", "Este es un segundo recuerdo", OIDEvento, null);
                OIDRecuerdo = recuerdoCEN.New_("Recuerdo3", "Haciendo mas recuerdos", OIDEvento, null);
                OIDRecuerdo = recuerdoCEN.New_("Recuerdo4", "Otro recuerdo", OIDEvento, null);


                IList <RecuerdoEN> listaRecuerdosFiltro = recuerdoCEN.DameRecuerdosPorProyecto(OIDEvento);
                Console.WriteLine("**** FILTRO DE RECUERDOS ******");
                foreach (RecuerdoEN elemento in listaRecuerdosFiltro)
                {
                    Console.WriteLine(elemento.Titulo + ": " + elemento.Cuerpo);
                }

                eventoCP.Destroy(OIDEvento);

                /*NOTICIA*/
                NoticiaCEN noticiaCEN = new NoticiaCEN();
                int        OIDNoticia = noticiaCEN.New_("Noticia 1", "cuerpo", null);
                noticiaCEN.Modify(OIDNoticia, "Noticia 1 Modificada", "Noticion informativo", null);
                OIDNoticia = noticiaCEN.New_("Noticia 2", "cuerpo", null);
                OIDNoticia = noticiaCEN.New_("Noticia 3", "cuerpo", null);
                OIDNoticia = noticiaCEN.New_("Noticia 4", "cuerpo", null);
                OIDNoticia = noticiaCEN.New_("Noticia 5", "cuerpo", null);
                OIDNoticia = noticiaCEN.New_("Noticia 6", "cuerpo", null);
                OIDNoticia = noticiaCEN.New_("Noticia 7", "cuerpo", null);


                foreach (NoticiaEN noticia in noticiaCEN.DameNUltimasNoticias(4))
                {
                    Console.WriteLine(noticia.Titulo + ": " + noticia.Cuerpo);
                }

                Console.WriteLine(noticiaCEN.ReadAll(0, -1).Count);
                noticiaCEN.ReadOID(OIDNoticia);

                noticiaCEN.Destroy(OIDNoticia);



                /*NOTIFICACION USUARIO*/
                NotificacionUsuarioCEN notificacionUsuarioCEN = new NotificacionUsuarioCEN();
                Console.WriteLine("Notificaciones por usuario: " + notificacionUsuarioCEN.DameNotificacionesPorUsuario(OIDUsuario).Count);
                Console.WriteLine("Notificaciones no leidas por usuario: " + notificacionUsuarioCEN.DameNotificacionesNoLeidasPorUsuario(OIDUsuario).Count);
                notificacionUsuarioCEN.LeerNotificacion(notificacionUsuarioCEN.DameNotificacionesPorUsuario(OIDUsuario) [0].Id);
                Console.WriteLine("Notificaciones no leidas por usuario: " + notificacionUsuarioCEN.DameNotificacionesNoLeidasPorUsuario(OIDUsuario).Count);



                Console.WriteLine("Todo ha ido bien");
                /*PROTECTED REGION END*/
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.InnerException);
                throw ex;
            }
        }
        // POST: Solicitud/EnviarSolicitudPost/
        public ActionResult EnviarSolicitudPost(int proyectoId)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }


            UsuarioCEN usuarioCEN = new UsuarioCEN();
            UsuarioEN  usuarioEN  = usuarioCEN.ReadNick(Session["usuario"].ToString());

            ProyectoCEN proyectoCEN = new ProyectoCEN();
            ProyectoEN  proyectoEN  = proyectoCEN.ReadOID(proyectoId);

            SolicitudCEN solicitudCEN = new SolicitudCEN();

            try
            {
                SessionInitialize();
                UsuarioCAD usuarioCAD   = new UsuarioCAD(session);
                MensajeCAD solicitudCAD = new MensajeCAD(session);



                bool denegar = false;
                //No crear solicitud si ya existe una solicitud aceptada o pendiente
                foreach (SolicitudEN e in solicitudCEN.DameSolicidudesPorUsuarioYProyecto(proyectoEN.Id, usuarioEN.Id))
                {
                    if (e.Estado.ToString() == "Pendiente" || e.Estado.ToString() == "Aceptada")
                    {
                        denegar = true;
                    }
                }

                if (denegar)
                {
                    ViewData["mal"]           = "El proyecto " + proyectoEN.Nombre + " ya tiene una solicitud Pendiente o Aceptada del usuario " + usuarioEN.Nick;
                    ViewData["esParticpante"] = "true";
                    SessionClose();
                    //return RedirectToAction("../Proyecto/Detalles", proyectoEN);
                    return(View("./VistaUsuario/EnviarSolicitud", proyectoEN));
                }
                if (!denegar)
                {
                    ViewData["titulo"]        = "Se envió correctamente una solicitud al proyecto " + proyectoEN.Nombre;
                    ViewData["esParticpante"] = "true";
                }
                //Creamos solicitud
                int solicitudId = solicitudCEN.New_(usuarioEN.Id, proyectoEN.Id);
                solicitudCEN.EnviarSolicitud(solicitudId);
                SessionClose();
                //return RedirectToAction("../Proyecto/Detalles", proyectoEN);
                return(View("./VistaUsuario/EnviarSolicitud", proyectoEN));
            }
            catch
            {
                ViewData["mal"] = "Ocurrio un problema al intentar crear la solicitud ";
                SessionClose();
                //return RedirectToAction("../Proyecto/Detalles", proyectoEN);
                return(View("./VistaUsuario/EnviarSolicitud", proyectoEN));
            }
        }
        public ActionResult FiltroUsuarioProyectoEstado(int?pag, FormCollection filtro)
        {
            if (filtro == null)
            {
                //Falta el mensajito de pagina no encontraada
                return(RedirectToAction("Index"));
            }

            SessionInitialize();
            UsuarioCAD   usuarioCAD   = new UsuarioCAD(session);
            MensajeCAD   solicitudCAD = new MensajeCAD(session);
            UsuarioCEN   usuarioCEN   = new UsuarioCEN();
            ProyectoCEN  proyectoCEN  = new ProyectoCEN();
            SolicitudCEN solicitudCEN = new SolicitudCEN();

            ArrayList listaEstados = new ArrayList();

            listaEstados.Add("Todos");
            listaEstados.Add("Pendiente");
            listaEstados.Add("Aceptada");
            listaEstados.Add("Rechazada");
            ViewData["estados"] = listaEstados;

            IList <SolicitudEN> listaSolicitudes = new List <SolicitudEN>();
            IList <SolicitudEN> aux = new List <SolicitudEN>();

            listaSolicitudes = solicitudCEN.ReadAll(0, -1);
            aux = solicitudCEN.ReadAll(0, -1);

            if (filtro["proyecto"] != "")
            {
                //Optenemos el Id del proyecto por el que queremos filtrar
                ProyectoEN proyectoEN = proyectoCEN.ReadNombre(filtro["proyecto"]);
                if (proyectoEN == null)
                {
                    TempData["mal"] = "No existe ningún proyecto de nombre " + filtro["proyecto"];
                    return(RedirectToAction("Index"));
                }
                //Eliminamos las solicitudes que no tengan ese proyecto
                foreach (SolicitudEN s in listaSolicitudes)
                {
                    if (s.ProyectoSolicitado.Id != proyectoEN.Id)
                    {
                        aux.Remove(s);
                    }
                }
                ViewData["filtro"] = filtro["proyecto"] + " (Proyecto) ";
            }

            if (filtro["usuario"] != "")
            {
                //Optenemos el Id del usuario por el que queremos filtrar
                UsuarioEN usuarioEN = usuarioCEN.ReadNick(filtro["usuario"]);
                //Eliminamos las solicitudes que no tengan ese usuario
                if (usuarioEN == null)
                {
                    TempData["mal"] = "No existe ningún usuario con el Nick " + filtro["usuario"];
                    return(RedirectToAction("Index"));
                }
                foreach (SolicitudEN s in listaSolicitudes)
                {
                    if (s.UsuarioSolicitante.Id != usuarioEN.Id)
                    {
                        aux.Remove(s);
                    }
                }
                ViewData["filtro"] = ViewData["filtro"] + filtro["usuario"] + " (Usuario) ";
            }

            if (filtro["estado"] != "" && filtro["estado"] != "Todos")
            {
                //Eliminamos las solicitudes que no tengan ese estado
                foreach (SolicitudEN s in listaSolicitudes)
                {
                    if (s.Estado.ToString() != filtro["estado"])
                    {
                        aux.Remove(s);
                    }
                }
                ViewData["filtro"] = ViewData["filtro"] + filtro["estado"] + " (Estado) ";
            }
            if (listaSolicitudes.Count <= 0)
            {
                TempData["mal"] = "No hay resultados con esos filtros";
            }

            listaSolicitudes = aux;

            //Paginacion
            int tamPag  = 10;
            int numPags = (listaSolicitudes.Count - 1) / tamPag;

            if (pag == null || pag < 0)
            {
                pag = 0;
            }
            else if (pag >= numPags)
            {
                pag = numPags;
            }

            int inicio = (int)pag * tamPag;

            numPags = (listaSolicitudes.Count - 1) / tamPag;
            if (pag == null || pag < 0)
            {
                pag = 0;
            }
            else if (pag >= numPags)
            {
                pag = numPags;
            }

            ViewData["pag"]           = pag;
            ViewData["numeroPaginas"] = numPags;

            IEnumerable <Solicitud> solicitudes = new AssemblerSolicitud().ConvertListENToModel(listaSolicitudes).ToList();

            SessionClose();
            return(View(solicitudes));
        }
Exemple #14
0
        public static void InitializeData()
        {
            /*PROTECTED REGION ID(initializeDataMethod) ENABLED START*/

            try
            {
                // Insert the initilizations of entities using the CEN classes

                //prueba cambio
                // p.e. CustomerCEN customer = new CustomerCEN();
                // customer.New_ (p_user:"******", p_password:"******");
                //lub_lecCEN club = new Club_lecCEN();
                //           w DateTime(2020, 11, 21),
                //creamos USUARIOS y ADMINS
                UsuarioCEN usuCEN = new UsuarioCEN();
                int        idUSU1 = usuCEN.New_("password", "*****@*****.**", "fotoperf", "usu1", 0);
                int        idUSU2 = usuCEN.New_("password", "*****@*****.**", "fotoperf", "usu2", 0);
                int        idUSU3 = usuCEN.New_("password", "*****@*****.**", "fotoperf", "usu3", 0);
                AdminCEN   adCEN  = new AdminCEN();
                int        idAD1  = adCEN.New_("password", "*****@*****.**", "fotoperf", "Admin1", 0);


                //creamos AUTORES
                AutorCEN auCEN = new AutorCEN();
                int      idAUT = auCEN.New_("Edgar Allan Poe", 0, new DateTime(2020, 01, 22), "foto.png");

                int idAUT2 = auCEN.New_("Laura Gallego", 0, new DateTime(2020, 01, 22), "foto2.png");
                //creamos LIBROS
                LibroCEN libCEN = new LibroCEN();
                int      idLIB  = libCEN.PublicarLibro("El cuervo", "Terror", new DateTime(2020, 01, 22), "ingles", "Portada.jpg", 4.4, "enlacecompra.com", 200, 50, idUSU1, 0, idAUT);
                int      idLIB2 = libCEN.PublicarLibro("El cuervo 2", "Terror 2", new DateTime(2020, 01, 22), "ingles 2", "Portada2.jpg", 4.4, "enlacecompra2.com", 200, 60, idUSU3, 0, idAUT);
                int      idLIB3 = libCEN.PublicarLibro("El cuervo 3", "Terror 3", new DateTime(2020, 01, 22), "ingles 3", "Portada3.jpg", 4.4, "enlacecompra3.com", 200, 300, idUSU1, 1, idAUT);
                int      idLIB4 = libCEN.PublicarLibro("El cuervo 4", "Terror 4", new DateTime(2020, 01, 22), "ingles 4", "Portada4.jpg", 4.4, "enlacecompra4.com", 200, 30, idUSU1, 1, idAUT);
                int      idLIB5 = libCEN.PublicarLibro("El cuervo 5", "Terror 5", new DateTime(2020, 01, 22), "ingles 5", "Portada5.jpg", 4.4, "enlacecompra5.com", 500, 30, idUSU1, 1, idAUT);
                int      idLIB6 = libCEN.PublicarLibro("Memorias de idhun", "Drama", new DateTime(2020, 01, 22), "español", "Portada6.jpg", 4.4, "enlacecompra6.com", 500, 30, idUSU2, 1, idAUT2);
                //creamos PUNTUACION
                PuntuacionCEN punCEN = new PuntuacionCEN();
                int           idPUN  = punCEN.New_(4, idUSU1, idLIB);

                //creamos CLUB con un libro
                Club_lecCEN clubCEN = new Club_lecCEN();
                int         idCLUB  = clubCEN.New_(new DateTime(2020, 12, 22), 150, true, idLIB);

                //creamos COMENTARIO con un libro y usuario
                ComentarioCEN comCEN = new ComentarioCEN();
                int           idCOM  = comCEN.PublicarComentario("titulo", new DateTime(2020, 01, 22), "contenido texto etc este es amigo", idLIB, idUSU2, 125);
                int           idCOM2 = comCEN.PublicarComentario("titulo", new DateTime(2020, 01, 22), "contenido texto etc este no es amigo", idLIB, idUSU2, 120);
                //creamos SOLICITUD AMISTAD y la inciamos ACEPTADA
                SolicitudCEN soliCEN = new SolicitudCEN();
                int          idSOLI  = soliCEN.CrearSolicitud(TiposolicitudEnum.aceptado, idUSU1, idUSU2);
                //cen customizado y ver que esta pendiente

                //creamos LISTA
                ListaCEN lisCEN = new ListaCEN();
                int      idLIS  = lisCEN.New_(TipolistaEnum.favorito, idUSU1);



                /* ==== NUEVA COMPRA ====*/
                CompraCP compraCP = new CompraCP();
                compraCP.New_(idUSU1, idLIB, "paypal", "87237136763-CV123", new DateTime(2020, 01, 22), "terminal", "amazon");
                // Mostramos por pantalla con un console log que se han actualizado las compras del libro
                LibroEN   libEN = libCEN.ReadOID(idLIB);                   // Primero sacamos el libro actual
                UsuarioEN usuEN = usuCEN.ReadOID(libEN.Creador.UsuarioID); // Sacamos el usuario asociado a la id del libro
                Console.WriteLine("Las compras del libro con nombre \"" + libEN.Nombre + "\" son: " + libEN.Compras);
                Console.WriteLine("El usuario: " + usuEN.Nombre + " ha recibido " + libEN.Precio + "EUROS. Su total ahora es de: " + usuEN.Dineroventa);

                /* ==== NUEVA COMPRA ====*/
                compraCP.New_(idUSU2, idLIB, "mastercard", "2828282828-C33", new DateTime(2020, 01, 22), "terminal2", "amazon");
                // Mostramos por pantalla con un console log que se han actualizado las compras del libro
                libEN = libCEN.ReadOID(idLIB);                   // Primero sacamos el libro actual
                usuEN = usuCEN.ReadOID(libEN.Creador.UsuarioID); // Sacamos el usuario asociado a la id del libro
                Console.WriteLine("Las compras del libro con nombre \"" + libEN.Nombre + "\" son: " + libEN.Compras);
                Console.WriteLine("El usuario: " + usuEN.Nombre + " ha recibido " + libEN.Precio + "EUROS. Su total ahora es de: " + usuEN.Dineroventa);

                /* ==== NUEVA COMPRA ====*/
                compraCP.New_(idUSU2, idLIB2, "mastercard", "2828282828-C33", new DateTime(2020, 01, 22), "terminal2", "amazon");
                // Mostramos por pantalla con un console log que se han actualizado las compras del libro
                libEN = libCEN.ReadOID(idLIB2);                  // Primero sacamos el libro actual
                usuEN = usuCEN.ReadOID(libEN.Creador.UsuarioID); // Sacamos el usuario asociado a la id del libro
                Console.WriteLine("Las compras del libro con nombre \"" + libEN.Nombre + "\" son: " + libEN.Compras);
                Console.WriteLine("El usuario: " + usuEN.Nombre + " ha recibido " + libEN.Precio + "EUROS. Su total ahora es de: " + usuEN.Dineroventa);

                // ACEPTAR SOLICITUD

                /*
                 * try
                 * {
                 *  solCEN.aceptar(idSol1);
                 * }
                 * catch (Exception e)
                 * {
                 *  System.Console.WriteLine(e.Message);
                 * }
                 *
                 * solCEN.aceptar(idSol1);
                 *
                 * SolicitudEN solEN = new SolicitudCAD().ReadOIDDefault(idSol1);
                 * Console.WriteLine("La solicitud ha sido aceptada");
                 */

                // ZONA FILTROS
                Console.WriteLine("==== FILTROS ====");
                Console.WriteLine(":::::Lista de usuarios registrados:::::");
                IList <UsuarioEN> listaUsus = usuCEN.ReadFilter();
                foreach (UsuarioEN usu in listaUsus)
                {
                    Console.WriteLine("Nombre:" + usu.Nombre + " Email:" + usu.Mail);
                }
                Console.WriteLine(":::::::::::::::::::::::::::::::::::::::");
                Console.WriteLine();
                Console.WriteLine(":::::Filtrado de comentarios:::::");
                Console.WriteLine("Lista comentarios filtrados por paginas (100)");
                IList <ComentarioEN> listaCom = comCEN.ReadFilter(100);
                foreach (ComentarioEN com in listaCom)
                {
                    Console.WriteLine("Autor: " + com.Titulo);
                    Console.WriteLine("Comentario: " + com.Contenido);
                    Console.WriteLine();
                }
                Console.WriteLine(":::::::::::::::::::::::::::::::::::::::");
                Console.WriteLine();
                Console.WriteLine(":::::Lista libros por precio:::::");
                Console.WriteLine(" Un filtro por los mas caros a partir de un precio (establecido por nosotros, 500)");
                IList <LibroEN> listaLibros = libCEN.ReadFilter(500);
                foreach (LibroEN libro in listaLibros)
                {
                    Console.WriteLine("Libro: " + libro.Nombre + " Precio: " + libro.Precio);
                }
                Console.WriteLine(":::::::::::::::::::::::::::::::::::::::");
                Console.WriteLine();
                Console.WriteLine(":::::Bestsellers de un vendedor:::::");
                Console.WriteLine(" Un filtro de libros por el dinero total que han dado a un usuario concreto (usu1)");
                usuEN       = usuCEN.ReadOID(idUSU1);
                listaLibros = libCEN.FiltroBestSeller(usuEN.Mail);
                foreach (LibroEN libro in listaLibros)
                {
                    double precio = libro.Precio * (double)libro.Compras;
                    Console.WriteLine("Libro: " + libro.Nombre + " con " + libro.Compras + " unidades a un precio de " + libro.Precio + " // Total ingresos: " + precio);
                }
                Console.WriteLine(":::::::::::::::::::::::::::::::::::::::");

                /*PROTECTED REGION END*/
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.InnerException);
                throw ex;
            }
        }
        // GET: Solicitud/AdministrarSolicitudes
        public ActionResult AdministrarSolicitudes(int proyectoId, int?pag)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }

            SessionInitialize();
            UsuarioCAD   usuarioCAD   = new UsuarioCAD(session);
            MensajeCAD   solicitudCAD = new MensajeCAD(session);
            SolicitudCEN solicitudCEN = new SolicitudCEN();

            UsuarioCEN usuarioCEN = new UsuarioCEN();
            UsuarioEN  usuarioEN  = usuarioCEN.ReadNick(Session["usuario"].ToString());

            ProyectoCEN proyectoCEN = new ProyectoCEN();
            ProyectoEN  proyectoEN  = proyectoCEN.ReadOID(proyectoId);


            if (proyectoEN == null)
            {
                TempData["mal"] = "No existe ningún proyecto con la id " + proyectoId;
                return(RedirectToAction("../Proyecto/ProyectosPresentados"));
            }

            ViewData["nombreProyecto"] = proyectoEN.Nombre;
            ViewData["proyectoId"]     = proyectoId;


            IList <SolicitudEN> listaSolicitudes = new List <SolicitudEN>();
            IList <SolicitudEN> aux = new List <SolicitudEN>();

            listaSolicitudes = solicitudCEN.ReadAll(0, -1);
            aux = solicitudCEN.ReadAll(0, -1);



            //Eliminamos las solicitudes que no tengan ese proyecto
            foreach (SolicitudEN s in listaSolicitudes)
            {
                if (s.ProyectoSolicitado.Id != proyectoEN.Id)
                {
                    aux.Remove(s);
                }
            }
            ViewData["filtro"] = proyectoEN.Nombre + " (Proyecto) ";



            listaSolicitudes = aux;

            //Paginacion
            int tamPag  = 10;
            int numPags = (listaSolicitudes.Count - 1) / tamPag;

            if (pag == null || pag < 0)
            {
                pag = 0;
            }
            else if (pag >= numPags)
            {
                pag = numPags;
            }

            int inicio = (int)pag * tamPag;

            numPags = (listaSolicitudes.Count - 1) / tamPag;
            if (pag == null || pag < 0)
            {
                pag = 0;
            }
            else if (pag >= numPags)
            {
                pag = numPags;
            }

            ViewData["pag"]           = pag;
            ViewData["numeroPaginas"] = numPags;

            IEnumerable <Solicitud> solicitudes = new AssemblerSolicitud().ConvertListENToModel(listaSolicitudes).ToList();

            SessionClose();
            return(View("./VistaUsuario/AdministrarSolicitudes", solicitudes));
        }
        public MultitecUAGenNHibernate.EN.MultitecUA.SolicitudEN New_(int p_usuarioSolicitante, int p_proyectoSolicitado)
        {
            /*PROTECTED REGION ID(MultitecUAGenNHibernate.CP.MultitecUA_Solicitud_new_) ENABLED START*/

            ISolicitudCAD solicitudCAD = null;
            SolicitudCEN  solicitudCEN = null;

            MultitecUAGenNHibernate.EN.MultitecUA.SolicitudEN result = null;


            try
            {
                SessionInitializeTransaction();
                solicitudCAD = new SolicitudCAD(session);
                solicitudCEN = new  SolicitudCEN(solicitudCAD);



                int oid;
                //Initialized SolicitudEN
                SolicitudEN solicitudEN;
                solicitudEN = new SolicitudEN();

                if (p_usuarioSolicitante != -1)
                {
                    solicitudEN.UsuarioSolicitante    = new MultitecUAGenNHibernate.EN.MultitecUA.UsuarioEN();
                    solicitudEN.UsuarioSolicitante.Id = p_usuarioSolicitante;
                }


                if (p_proyectoSolicitado != -1)
                {
                    solicitudEN.ProyectoSolicitado    = new MultitecUAGenNHibernate.EN.MultitecUA.ProyectoEN();
                    solicitudEN.ProyectoSolicitado.Id = p_proyectoSolicitado;
                }


                solicitudEN.Fecha = DateTime.Now;

                solicitudEN.Estado = Enumerated.MultitecUA.EstadoSolicitudEnum.Pendiente;
                //Call to SolicitudCAD

                oid    = solicitudCAD.New_(solicitudEN);
                result = solicitudCAD.ReadOIDDefault(oid);



                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }
            return(result);


            /*PROTECTED REGION END*/
        }
        public ActionResult Create(Solicitud solicitud)
        {
            if (Session["usuario"] == null)
            {
                return(RedirectToAction("Login", "Sesion"));
            }
            if (Session["esAdmin"].ToString() == "false")
            {
                return(View("../NoAdministrador"));
            }
            if (Session["modoAdmin"].ToString() == "false")
            {
                Session["modoAdmin"] = "true";
            }

            try
            {
                UsuarioCEN usuarioCEN = new UsuarioCEN();
                UsuarioEN  usuarioEN  = usuarioCEN.ReadNick(solicitud.Nick_Solicitante);

                ProyectoCEN proyectoCEN = new ProyectoCEN();
                ProyectoEN  proyectoEN  = proyectoCEN.ReadNombre(solicitud.Nombre_Proyecto);

                SolicitudCEN solicitudCEN = new SolicitudCEN();


                bool denegar = false;
                //No crear usuarios nuevos si ya existe una solicitud aceptada

                foreach (SolicitudEN e in solicitudCEN.DameSolicidudesPorUsuarioYProyecto(proyectoEN.Id, usuarioEN.Id))
                {
                    if (e.Estado.ToString() == "Pendiente" || e.Estado.ToString() == "Aceptada")
                    {
                        denegar         = true;
                        TempData["mal"] = "El proyecto " + proyectoEN.Nombre + " ya tiene una solicitud Pendiente o Aceptada del usuario " + usuarioEN.Nick;
                    }
                }
                //Denegar si alguno de los proyectos en los que participa ese usuario es el proyecto que esta solicitando participar
                foreach (UsuarioEN e in usuarioCEN.DameParticipantesProyecto(proyectoEN.Id))
                {
                    if (e.Id == usuarioEN.Id)
                    {
                        denegar         = true;
                        TempData["mal"] = "El usuario " + usuarioEN.Nick + " ya participa en el proyecto " + proyectoEN.Nombre;
                    }
                }

                if (denegar)
                {
                    return(RedirectToAction("Index"));
                }
                if (!denegar)
                {
                    TempData["bien"] = "Se ha creado correctamente una solicitud del usuario " + usuarioEN.Nick + " al proyecto " + proyectoEN.Nombre;
                }

                int solicitudId = solicitudCEN.New_(usuarioEN.Id, proyectoEN.Id);
                solicitudCEN.EnviarSolicitud(solicitudId);

                return(RedirectToAction("Index"));
            }
            catch
            {
                TempData["mal"] = "Ocurrió un problema al intentar crear la solicitud ";
                return(RedirectToAction("Index"));
            }
        }