Exemplo n.º 1
0
        public void Delete(string id)
        {
            SessionInitialize();
            UsuarioCAD   usuCAD = new UsuarioCAD(session);
            UsuarioCEN   usuCEN = new UsuarioCEN(usuCAD);
            UsuarioEN    usuEN  = usuCEN.ReadOID(id);
            UsuarioModel tema   = UsuarioAssembler.crearUsu(usuEN);

            TemaCAD           temCAD = new TemaCAD(session);
            TemaCEN           temCEN = new TemaCEN(temCAD);
            IList <TemaEN>    temEN  = temCEN.DameTemaPorEmail(id);
            IList <TemaModel> temasU = new TemaAssembler().ConvertListENToModel(temEN);

            RespuestaCAD           res2CAD = new RespuestaCAD(session);
            RespuestaCEN           res2CEN = new RespuestaCEN(res2CAD);
            IList <RespuestaEN>    res2EN  = res2CEN.DameRespuestaPorEmail(id);
            IList <RespuestaModel> resU    = RespuestaAssembler.ConvertListENToModel(res2EN);

            VideoCAD           videoCAD = new VideoCAD(session);
            VideoCEN           videoCEN = new VideoCEN(videoCAD);
            IList <VideoEN>    videoEN  = videoCEN.DameVideoPorEmail(id);
            IList <VideoModel> videosU  = VideoAssembler.convertListENToModel(videoEN);

            ComentarioCAD           comentarioCAD = new ComentarioCAD(session);
            ComentarioCEN           comentarioCEN = new ComentarioCEN(comentarioCAD);
            IList <ComentarioEN>    comentarioEN  = comentarioCEN.DameComentarioPorEmail(id);
            IList <ComentarioModel> comentarioU   = ComentarioAssembler.convertListENToModel(comentarioEN);

            ValoracionCAD           valoracionCAD = new ValoracionCAD(session);
            ValoracionCEN           valoracionCEN = new ValoracionCEN(valoracionCAD);
            IList <ValoracionEN>    valoracionEN  = valoracionCEN.DameValoracionPorEmail(id);
            IList <ValoracionModel> valoracionU   = ValoracionAssembler.convertListENToModel(valoracionEN);

            GrupoCAD           gruposTCAD = new GrupoCAD(session);
            GrupoCEN           gruposTCEN = new GrupoCEN(gruposTCAD);
            IList <GrupoEN>    gruposTEN  = gruposTCEN.DameGrupoPorUsuario(id);
            IList <GrupoModel> gruposTU   = GrupoAssembler.convertListToModelUI(gruposTEN);

            NotificacionCAD           notiCAD = new NotificacionCAD(session);
            NotificacionCEN           notiCEN = new NotificacionCEN(notiCAD);
            IList <NotificacionEN>    notiEN  = notiCEN.DameNotificacionPorEmail(id);
            IList <NotificacionModel> notisU  = NotificacionAssembler.ConvertListENToModel(notiEN);

            SugerenciaCAD           sugCAD = new SugerenciaCAD(session);
            SugerenciaCEN           sugCEN = new SugerenciaCEN(sugCAD);
            IList <SugerenciaEN>    sugEN  = sugCEN.DameSugerenciaPorEmail(id);
            IList <SugerenciaModel> sugU   = SugerenciaAssembler.convertListENToModel(sugEN);

            SessionClose();

            foreach (RespuestaModel r in resU)
            {
                new RespuestaCEN().Destroy(r.Id);
            }

            foreach (TemaModel t in temasU)
            {
                SessionInitialize();
                RespuestaCAD           resCAD = new RespuestaCAD(session);
                RespuestaCEN           resCEN = new RespuestaCEN(resCAD);
                IList <RespuestaEN>    resEN  = resCEN.DameRespuestaPorTema(t.Id);
                IList <RespuestaModel> res    = RespuestaAssembler.ConvertListENToModel(resEN);
                SessionClose();

                foreach (RespuestaModel r in res)
                {
                    new RespuestaCEN().Destroy(r.Id);
                }

                new TemaCEN().Destroy(t.Id);
            }

            foreach (ComentarioModel c in comentarioU)
            {
                new ComentarioCEN().Destroy(c.Id);
            }

            foreach (ValoracionModel v in valoracionU)
            {
                new ValoracionCEN().Destroy(v.Id);
            }

            foreach (VideoModel v in videosU)
            {
                SessionInitialize();
                ComentarioCAD           comCAD = new ComentarioCAD(session);
                ComentarioCEN           comCEN = new ComentarioCEN(comCAD);
                IList <ComentarioEN>    comEN  = comCEN.DameComentarioPorVideoID(v.Id);
                IList <ComentarioModel> cres   = ComentarioAssembler.convertListENToModel(comEN);
                SessionClose();

                foreach (ComentarioModel c in cres)
                {
                    new ComentarioCEN().Destroy(c.Id);
                }

                SessionInitialize();
                ValoracionCAD           valCAD = new ValoracionCAD(session);
                ValoracionCEN           valCEN = new ValoracionCEN(valCAD);
                IList <ValoracionEN>    valEN  = valCEN.DameValoracionPorVideoID(v.Id);
                IList <ValoracionModel> vals   = ValoracionAssembler.convertListENToModel(valEN);
                SessionClose();

                foreach (ValoracionModel valo in vals)
                {
                    new ValoracionCEN().Destroy(valo.Id);
                }

                new VideoCEN().Destroy(v.Id);
            }

            foreach (SugerenciaModel s in sugU)
            {
                new SugerenciaCEN().Destroy(s.Id);
            }

            foreach (NotificacionModel n in notisU)
            {
                new NotificacionCEN().Destroy(n.Id);
            }

            foreach (GrupoModel g in gruposTU)
            {
                if (g.Lider == id)
                {
                    SessionInitialize();
                    UsuarioCAD           usu2CAD = new UsuarioCAD(session);
                    UsuarioCEN           usu2CEN = new UsuarioCEN(usuCAD);
                    IList <UsuarioEN>    usu2EN  = usuCEN.DameUsuarioPorGrupo(g.Nombre);
                    IList <UsuarioModel> usu     = UsuarioAssembler.crearListaUsus(usu2EN);
                    SessionClose();

                    foreach (UsuarioModel usuf in usu)
                    {
                        GrupoCEN        grupo        = new GrupoCEN();
                        NotificacionCEN notificacion = new NotificacionCEN();

                        GrupoEN grupoEN = grupo.ReadOID(g.Nombre);
                        grupo.SacarUsuario(p_Grupo_OID: g.Nombre, p_miembros_OIDs: new List <string>()
                        {
                            usuf.Email
                        });

                        string descripcion = "Expulsado del grupo" + grupoEN.Nombre;

                        notificacion.New_(p_descripcion: descripcion, p_usuario: usuf.Email);
                    }
                }
                else
                {
                    GrupoCEN grupo   = new GrupoCEN();
                    GrupoEN  grupoEN = grupo.ReadOID(g.Nombre);
                    grupo.SacarUsuario(p_Grupo_OID: g.Nombre, p_miembros_OIDs: new List <string>()
                    {
                        id
                    });
                }
                new GrupoCEN().Destroy(g.Nombre);
            }
            new UsuarioCEN().Destroy(id);
        }
Exemplo n.º 2
0
        public static void InitializeData()
        {
            /*PROTECTED REGION ID(initializeDataMethod) ENABLED START*/
            try
            {
                // Insert the initilizations of entities using the CEN classes


                // p.e. CustomerCEN customer = new CustomerCEN();
                // customer.New_ (p_user:"******", p_password:"******");


                //CREACION DE OBJETOS CEN Y VARIOS OBJETOS DE LAS CLASES



                UsuarioCEN usuario = new UsuarioCEN();
                usuario.New_(p_email: "*****@*****.**", p_nombre: "Juanito", p_apellidos: "Palotes Vidal", p_nick: "JuanitoPV", p_contrasenya: "4321", p_fecha_nac: new DateTime(1992, 2, 4), p_rol: (DSMGitGenNHibernate.Enumerated.DSMGit.RolEnum) 3, p_imagen: "/Images/Uploads/defaultUser.png", p_descripcion: "hola");
                usuario.New_(p_email: "*****@*****.**", p_nombre: "Pepito", p_apellidos: "Palotes Vidal", p_nick: "JuanitoPeter", p_contrasenya: "1234", p_fecha_nac: new DateTime(1992, 2, 4), p_rol: (DSMGitGenNHibernate.Enumerated.DSMGit.RolEnum) 1, p_imagen: "/Images/Uploads/defaultUser.png", p_descripcion: "hola");

                VideoCEN video    = new VideoCEN();
                int      idVideo1 = video.New_(p_titulo: "Haz tu vida mas facil con GitHub", p_descripcion: "Amazing life Hacks", p_usuario: "*****@*****.**", p_fecha_subida: new DateTime(2015, 1, 3), p_miniatura: "/Images/Uploads/Miniaturas/defaultUser.png", p_url: "https://www.youtube.com/embed/aJ7Tv6ukASw");
                int      idVideo2 = video.New_(p_titulo: "Investigacion de MAC", p_descripcion: "Mi proyecto de MAC", p_usuario: "*****@*****.**", p_fecha_subida: new DateTime(2015, 1, 3), p_miniatura: "/Images/Uploads/Miniaturas/defaultUser.png", p_url: "https://www.youtube.com/embed/aJ7Tv6ukASw");
                int      idVideo3 = video.New_(p_titulo: "Video de Investigacion", p_descripcion: "Me at the zoo", p_usuario: "*****@*****.**", p_fecha_subida: new DateTime(2017, 1, 3), p_miniatura: "/Images/Uploads/Miniaturas/defaultUser.png", p_url: "https://www.youtube.com/embed/aJ7Tv6ukASw");
                int      idVideo4 = video.New_(p_titulo: "Video Terror Halloween", p_descripcion: "you WONT BELIEVE this. MUST WATCH. Best thing in ur life", p_usuario: "*****@*****.**", p_fecha_subida: new DateTime(2017, 2, 3), p_miniatura: "/Images/Uploads/Miniaturas/defaultUser.png", p_url: "https://www.youtube.com/embed/aJ7Tv6ukASw");
                //Date time: year month day

                ValoracionCEN valoracion = new ValoracionCEN();
                valoracion.New_(p_valor: 5, p_usuario: "*****@*****.**", p_video: idVideo1);
                valoracion.New_(p_valor: 4, p_usuario: "*****@*****.**", p_video: idVideo1);


                IList <string> enviaUsu = new List <string>();
                enviaUsu.Add("*****@*****.**");

                GrupoCEN grupo = new GrupoCEN();
                grupo.New_(p_nombre: "Grupo1", p_imagen: "/Images/Uploads/defaultGroup.png", p_descripcion: "El mejor grupo", p_miembros: enviaUsu, p_lider: "*****@*****.**", p_aceptaMiembros: true);
                grupo.New_(p_nombre: "Grupo2", p_imagen: "/Images/Uploads/defaultGroup.png", p_descripcion: "El segundo mejor grupo", p_miembros: null, p_lider: "*****@*****.**", p_aceptaMiembros: true);
                //Grupo usado para la mayoria de ejemplos de cps:
                grupo.New_(p_nombre: "Excalibur", p_imagen: "/Images/Uploads/defaultGroup.png", p_descripcion: "Grupo de fans de las espadas", p_miembros: null, p_lider: "*****@*****.**", p_aceptaMiembros: true);


                InvitacionCEN invitacion = new InvitacionCEN();
                invitacion.New_(p_descripcion: "Invitacion 1", p_grupo: "Grupo1", p_invitador: "*****@*****.**");
                invitacion.New_(p_descripcion: "Invitacion 2", p_grupo: "Grupo2", p_invitador: "*****@*****.**");
                invitacion.New_(p_descripcion: "Invitacion 3", p_grupo: "Grupo2", p_invitador: "*****@*****.**");

                TemaCEN tema    = new TemaCEN();
                int     idtema  = tema.New_(p_descripcion: "Hola, buenas tardes", p_estado: DSMGitGenNHibernate.Enumerated.DSMGit.EstadoTemaEnum.cerrado, p_usuario: "*****@*****.**", p_titulo: "Pregunta personal", p_fecha: new DateTime(2015, 1, 3));
                int     idtema2 = tema.New_(p_descripcion: "Como sacar un 10?", p_estado: DSMGitGenNHibernate.Enumerated.DSMGit.EstadoTemaEnum.abierto, p_usuario: "*****@*****.**", p_titulo: "Desesperacion", p_fecha: new DateTime(2017, 5, 1));
                int     idtema3 = tema.New_(p_descripcion: "Adios", p_estado: DSMGitGenNHibernate.Enumerated.DSMGit.EstadoTemaEnum.cerrado, p_usuario: "*****@*****.**", p_titulo: "Despedida", p_fecha: new DateTime(2017, 12, 3));



                RespuestaCEN respuesta = new RespuestaCEN();
                respuesta.New_(p_descripcion: "Buenas tardes", p_tema: idtema, p_usuario: "*****@*****.**", p_fecha: new DateTime(2017, 9, 9));
                respuesta.New_(p_descripcion: "Es imposible", p_tema: idtema2, p_usuario: "*****@*****.**", p_fecha: new DateTime(2017, 9, 9));
                respuesta.New_(p_descripcion: "rt", p_tema: idtema2, p_usuario: "*****@*****.**", p_fecha: new DateTime(2017, 9, 9));
                respuesta.New_(p_descripcion: "Hasta luego", p_tema: idtema3, p_usuario: "*****@*****.**", p_fecha: new DateTime(2017, 9, 9));

                NotificacionCEN notificacion = new NotificacionCEN();
                notificacion.New_(p_descripcion: "Tienes una nueva invitacion de grupo", p_usuario: "*****@*****.**");
                notificacion.New_(p_descripcion: "El usuario Pepito ha aceptado tu peticion", p_usuario: "*****@*****.**");
                notificacion.New_(p_descripcion: "Tienes una nueva valoracion en uno de tus videos", p_usuario: "*****@*****.**");


                SugerenciaCEN sugerencia = new SugerenciaCEN();
                sugerencia.New_(p_titulo: "Reproductor", p_descripcion: "El tama�o del reproductor esta un poco desproporcionado", p_usuario: "*****@*****.**");
                sugerencia.New_(p_titulo: "Temas", p_descripcion: "Deberia haber mas control en los temas", p_usuario: "*****@*****.**");
                sugerencia.New_(p_titulo: "Grupos", p_descripcion: "Mejora en el manejo de las invitaciones porfa", p_usuario: "*****@*****.**");


                ValoracionCEN valoracion1 = new ValoracionCEN();
                valoracion1.New_(p_valor: 97, p_usuario: "*****@*****.**", p_video: idVideo4);
                valoracion1.New_(p_valor: 65, p_usuario: "*****@*****.**", p_video: idVideo2);
                valoracion1.New_(p_valor: 32, p_usuario: "*****@*****.**", p_video: idVideo3);



                ComentarioCEN comentario = new ComentarioCEN();
                comentario.New_(p_texto: "Me ha parecido que esta bastante guapa", p_usuario: "*****@*****.**", p_video: idVideo1);
                comentario.New_(p_texto: "tbh me esperaba mas", p_usuario: "*****@*****.**", p_video: idVideo2);
                comentario.New_(p_texto: "un poco desagradable", p_usuario: "*****@*****.**", p_video: idVideo3);



                System.Console.WriteLine("\n---------Sentencias HQLS / Readfilter ------------\n");


                //HQLS USUARIO
                System.Console.WriteLine("*HQLS/ReadFilter DE USUARIO*");

                IList <UsuarioEN> usuarios = usuario.DameUsuarioPorNick("Juan");
                System.Console.WriteLine("DAME USUARIO POR NICK - Juan");
                foreach (UsuarioEN usu in usuarios)
                {
                    System.Console.WriteLine(usu.Nick);
                }

                IList <UsuarioEN> usuarios2 = usuario.DameUsuarioPorEmail("*****@*****.**");
                System.Console.WriteLine("DAME USUARIO POR EMAIL - [email protected]");
                foreach (UsuarioEN usu2 in usuarios2)
                {
                    System.Console.WriteLine(usu2.Email);
                }



                IList <UsuarioEN> usuarios3 = usuario.DameUsuarioPorNombreYApellidos("Juan", "J");
                System.Console.WriteLine("DAME USUARIO POR NOMBRE Y APELLIDOS - Juan, J");
                foreach (UsuarioEN usu in usuarios3)
                {
                    System.Console.WriteLine(usu.Nombre + " " + usu.Apellidos);
                }

                IList <UsuarioEN> usuarios6 = usuario.DameUsuarioPorNombreOApellidos("Juan", "J");
                System.Console.WriteLine("DAME USUARIO POR NOMBRE O APELLIDOS - Juan, J");
                foreach (UsuarioEN usu in usuarios6)
                {
                    System.Console.WriteLine(usu.Nombre + " " + usu.Apellidos);
                }

                IList <UsuarioEN> usuarios4 = usuario.DameUsuarioPorRol(3);
                System.Console.WriteLine("DAME USUARIO POR ROL - 3 (3 seria Guionista)");
                foreach (UsuarioEN usu in usuarios4)
                {
                    System.Console.WriteLine(usu.Nombre);
                    //PUEDE DAR PROBLEMA
                    System.Console.WriteLine("ROL=" + usu.Rol);
                }

                IList <UsuarioEN> usuarios5 = usuario.DameUsuarioPorDescripcion("la");
                System.Console.WriteLine("DAME USUARIO POR DESCRIPCION");
                foreach (UsuarioEN usu in usuarios5)
                {
                    System.Console.WriteLine(usu.Nombre);
                }

                //COMPROBACIONES DE HQL VIDEOS
                System.Console.WriteLine("*HQLS/ReadFilter DE VIDEO*");
                IList <VideoEN> videos = video.DameVideoPorDescripcion("life");
                System.Console.WriteLine("DAME VIDEO POR DESCRIPCION (AUTOCOMPLETA EL PR. Y EL FINAL) - life");
                foreach (VideoEN vid in videos)
                {
                    System.Console.WriteLine(vid.Titulo);
                    System.Console.WriteLine("Desripcion: " + vid.Descripcion);
                }
                IList <VideoEN> videos2 = video.DameVideoPorDescripcion("hack");
                System.Console.WriteLine("DAME VIDEO POR DESCRIPCION (AUTOCOMPLETA EL PR. Y EL FINAL) - hack");
                foreach (VideoEN vid in videos2)
                {
                    System.Console.WriteLine(vid.Titulo);
                    System.Console.WriteLine("Descripcion: " + vid.Descripcion);
                }
                IList <VideoEN> videos3 = video.DameVideoPorTitulo("Investigacion");
                System.Console.WriteLine("DAME VIDEO POR TITULO (AUTOCOMPLETA EL PR. Y EL FINAL) - Investigacion");
                foreach (VideoEN vid in videos3)
                {
                    System.Console.WriteLine(vid.Titulo);
                }
                IList <VideoEN> videos4 = video.DameVideoPorTitulo("Video");
                System.Console.WriteLine("DAME VIDEO POR TITULO (AUTOCOMPLETA EL PR. Y EL FINAL) - Video");
                foreach (VideoEN vid in videos4)
                {
                    System.Console.WriteLine(vid.Titulo);
                }
                IList <VideoEN> videos5 = video.DameVideoPorEmail("*****@*****.**");
                System.Console.WriteLine("DAME VIDEO POR EMAIL - Ejemplo2");
                foreach (VideoEN vid in videos5)
                {
                    System.Console.WriteLine(vid.Titulo);
                }

                //DateTime fecha1 = new DateTime(2017, 1, 3);
                //Date time: year month day

                IList <VideoEN> videos6 = video.DameVideoPorFecha(2017, 1, 3);
                System.Console.WriteLine("DAME VIDEO POR FECHA - 2017 1 3");
                foreach (VideoEN vid in videos6)
                {
                    System.Console.WriteLine(vid.Titulo);
                }

                IList <VideoEN> videos7 = video.DameVideoPorNick("Juanito");
                System.Console.WriteLine("DAME VIDEO POR NICK DE USER (se autocompleta, me va a dar todos los videos de todos los juanitos) - Juanito");
                foreach (VideoEN vid in videos7)
                {
                    System.Console.WriteLine(vid.Titulo);
                }


                IList <VideoEN> videos8 = video.DameVideoPorNick("JuanitoPV");
                System.Console.WriteLine("DAME VIDEO POR NICK DE USER (se autocompleta) - JuanitoPV");
                foreach (VideoEN vid in videos8)
                {
                    System.Console.WriteLine(vid.Titulo);
                }

                //HQLS Valoraciones
                System.Console.WriteLine("*HQLS/ReadFilter DE VALORACIONES*");
                IList <ValoracionEN> valoraciones = valoracion.DameValoracionPorVideoID(idVideo1);
                System.Console.WriteLine("DAME LA VALORACION MEDIANTE LA ID DEL VIDEO - idVideo1");
                foreach (ValoracionEN val in valoraciones)
                {
                    System.Console.WriteLine("Valoracion: " + val.Valor);
                    System.Console.WriteLine("Valorado por");
                    System.Console.WriteLine("Usuario con email: " + val.Usuario.Email);
                }

                //HQLs Comentarios
                System.Console.WriteLine("*HQLS/ReadFilter DE COMENTARIO*");
                IList <ComentarioEN> comentarios = comentario.DameComentarioPorVideoID(idVideo1);
                System.Console.WriteLine("DAME LOS COMENTARIOS POR ID DE VIDEO - idVideo1");
                foreach (ComentarioEN com in comentarios)
                {
                    System.Console.WriteLine("Comentarios: " + com.Texto);
                    System.Console.WriteLine("Comentado por");
                    System.Console.WriteLine("Usuario: " + com.Usuario.Email);
                }

                //HQLS Sugerencias
                System.Console.WriteLine("*HQLS/ReadFilter DE SUGERENCIA*");
                IList <SugerenciaEN> sugerencias = sugerencia.DameSugerenciaPorEmail("*****@*****.**");
                System.Console.WriteLine("DAME SUGERENCIA POR EMAIL - [email protected]");
                foreach (SugerenciaEN vid in sugerencias)
                {
                    System.Console.WriteLine(vid.Descripcion);
                }

                //HQLs Notificaciones
                System.Console.WriteLine("*HQLS/ReadFilter DE NOTIFICACION*");
                IList <NotificacionEN> notificaciones = notificacion.DameNotificacionPorEmail("*****@*****.**");
                System.Console.WriteLine("DAME NOTIFICACION POR EMAIL - [email protected]");
                foreach (NotificacionEN vid in notificaciones)
                {
                    System.Console.WriteLine(vid.Descripcion);
                }

                //HQLs Temas
                System.Console.WriteLine("*HQLS/ReadFilter DE TEMAS*");
                IList <TemaEN> temas = tema.DameTemaPorNick("PV");
                System.Console.WriteLine("DAME TEMA POR NICK - PV");
                foreach (TemaEN tem in temas)
                {
                    System.Console.WriteLine(tem.Titulo);
                }


                IList <TemaEN> temas2 = tema.DameTemaPorEmail("*****@*****.**");
                System.Console.WriteLine("DAME TEMA POR EMAIL - [email protected]");
                foreach (TemaEN tem2 in temas2)
                {
                    System.Console.WriteLine(tem2.Titulo);
                }
                IList <TemaEN> temas3 = tema.DameTemaPorDesc("ue");
                System.Console.WriteLine("DAME TEMA POR DESCRIPCION - ue");
                foreach (TemaEN tem3 in temas3)
                {
                    System.Console.WriteLine(tem3.Titulo);
                }

                IList <TemaEN> temas4 = tema.DameTemaPorTitulo("per");
                System.Console.WriteLine("DAME TEMA POR TITULO - per");
                foreach (TemaEN tem4 in temas4)
                {
                    System.Console.WriteLine(tem4.Titulo);
                    System.Console.WriteLine(tem4.Fecha.ToString());
                }


                IList <TemaEN> listaTemasAbiertos = tema.DameTemasAbiertos();
                System.Console.WriteLine("Dame Temas abiertos");
                foreach (TemaEN te in listaTemasAbiertos)
                {
                    System.Console.WriteLine(te.Titulo);
                }

                IList <TemaEN> listaTemasCerrados = tema.DameTemasCerrados();
                System.Console.WriteLine("Dame Temas cerrados");
                foreach (TemaEN te in listaTemasCerrados)
                {
                    System.Console.WriteLine(te.Titulo);
                }

                //hqls DE RESPUESTAS
                System.Console.WriteLine("*HQLS/ReadFilter DE RESPUESTAS (a un tema)*");
                IList <RespuestaEN> respus = respuesta.DameRespuestaPorEmail("*****@*****.**");
                System.Console.WriteLine("DAME RESPUESTA POR EMAIL - [email protected]");
                foreach (RespuestaEN respu in respus)
                {
                    System.Console.WriteLine(respu.Descripcion);
                    System.Console.WriteLine("Del tema: " + tema.ReadOID(respu.Tema.Id).Titulo);
                    System.Console.WriteLine("Por el usuario: " + usuario.ReadOID(respu.Usuario.Email).Nick);
                }


                IList <RespuestaEN> respus2 = respuesta.DameRespuestaPorNick("Pet");
                System.Console.WriteLine("DAME RESPUESTA POR NICK - Pet");
                foreach (RespuestaEN respu2 in respus2)
                {
                    System.Console.WriteLine(respu2.Descripcion);
                    System.Console.WriteLine("Del tema: " + tema.ReadOID(respu2.Tema.Id).Titulo);
                    System.Console.WriteLine("Por el usuario: " + usuario.ReadOID(respu2.Usuario.Email).Nick);
                }

                IList <RespuestaEN> respus3 = respuesta.DameRespuestaPorTema(idtema2);
                System.Console.WriteLine("DAME RESPUESTA POR TEMA - idtema2");
                foreach (RespuestaEN respu3 in respus3)
                {
                    System.Console.WriteLine(respu3.Descripcion);
                    System.Console.WriteLine("Del tema: " + tema.ReadOID(respu3.Tema.Id).Titulo);
                    System.Console.WriteLine("Por el usuario: " + usuario.ReadOID(respu3.Usuario.Email).Nick);
                }


                //HQLS DE INVITACIONES
                System.Console.WriteLine("*HQLS/ReadFilter DE INVITACIONES (a 1 grupo)*");
                IList <InvitacionEN> invis = invitacion.DameInvitacionEnviadaPorEmail("*****@*****.**");
                System.Console.WriteLine("DAME INVITACION POR EMAIL (INVITADOR) - [email protected]");
                foreach (InvitacionEN invi in invis)
                {
                    System.Console.WriteLine(invi.Descripcion);
                }

                IList <InvitacionEN> invis2 = invitacion.DameInvitacionEnviadaPorGrupo("Grupo2");
                System.Console.WriteLine("DAME INVITACION POR GRUPO - Grupo2");
                foreach (InvitacionEN invi2 in invis2)
                {
                    System.Console.WriteLine(invi2.Descripcion);
                    System.Console.WriteLine("Del grupo: " + invi2.Grupo.Nombre);
                }



                //COMPROBACIONES METODOS

                System.Console.WriteLine("\n------------------\n");
                System.Console.WriteLine("\n---------CUSTOM---------\n");

                //Iniciar Sesion
                System.Console.WriteLine("*INICIAR SESION*");
                System.Console.WriteLine("Pruebas con el usuario [email protected]");
                System.Console.WriteLine("Con email [email protected] y password 4321");



                System.Console.WriteLine("Inicio de sesion: [email protected] - 4321");

                System.Console.WriteLine(usuario.Iniciar_sesion("*****@*****.**", "4321"));
                System.Console.WriteLine("Inicio de sesion: [email protected] - 321");

                System.Console.WriteLine(usuario.Iniciar_sesion("*****@*****.**", "321"));


                System.Console.WriteLine("\n*ABRIR Y CERRAR TEMAS*");

                listaTemasCerrados = tema.DameTemasCerrados();
                System.Console.WriteLine("Temas cerrados");
                foreach (TemaEN te in listaTemasCerrados)
                {
                    System.Console.WriteLine(te.Titulo);
                }
                System.Console.WriteLine("");

                System.Console.WriteLine("Ejecuto abrir de tema (metodo custom) y vuelvo a hacer la HQL:");
                IList <TemaEN> dameElTemaQueQuiero = tema.DameTemaPorTitulo("Pregunta personal");
                int            idQueQuiero         = -1;
                foreach (TemaEN te in listaTemasCerrados)
                {
                    idQueQuiero = te.Id;
                }
                System.Console.WriteLine("");

                System.Console.WriteLine("Abro el tema");
                System.Console.WriteLine("");

                tema.Abrir(idQueQuiero);

                listaTemasAbiertos = tema.DameTemasAbiertos();

                System.Console.WriteLine("Temas abiertos");
                foreach (TemaEN te in listaTemasAbiertos)
                {
                    System.Console.WriteLine(te.Titulo);
                }
                System.Console.WriteLine("");

                listaTemasCerrados = tema.DameTemasCerrados();
                System.Console.WriteLine("Temas cerrados");
                foreach (TemaEN te in listaTemasCerrados)
                {
                    System.Console.WriteLine(te.Titulo);
                }
                System.Console.WriteLine("");

                System.Console.WriteLine("Ahora cierro el tema: Despedida");
                tema.Cerrar(idQueQuiero);
                System.Console.WriteLine("");


                listaTemasAbiertos = tema.DameTemasAbiertos();
                System.Console.WriteLine("Temas abiertos");
                foreach (TemaEN te in listaTemasAbiertos)
                {
                    System.Console.WriteLine(te.Titulo);
                }
                System.Console.WriteLine("");

                listaTemasCerrados = tema.DameTemasCerrados();
                System.Console.WriteLine("Temas cerrados");
                foreach (TemaEN te in listaTemasCerrados)
                {
                    System.Console.WriteLine(te.Titulo);
                }
                System.Console.WriteLine("FIN COMPROBACIONES DE ABRIR-CERRAR TEMA");
                System.Console.WriteLine("");


                System.Console.WriteLine("\n------------------\n");

                System.Console.WriteLine("\n---------CPs---------\n");

                //Grupo Excalibur creado por [email protected]. Empieza sin miembros.
                DSMGitGenNHibernate.CP.DSMGit.InvitacionCP invitacionCP = new DSMGitGenNHibernate.CP.DSMGit.InvitacionCP();

                DSMGitGenNHibernate.CP.DSMGit.GrupoCP grupoCP = new DSMGitGenNHibernate.CP.DSMGit.GrupoCP();

                DSMGitGenNHibernate.CP.DSMGit.UsuarioCP usuarioCP = new DSMGitGenNHibernate.CP.DSMGit.UsuarioCP();

                DSMGitGenNHibernate.CP.DSMGit.VideoCP videoCP = new DSMGitGenNHibernate.CP.DSMGit.VideoCP();

                IList <UsuarioEN>    listaUsuariosExcalibur = new List <UsuarioEN>();
                IList <ValoracionEN> listaValoraciones      = new List <ValoracionEN>();



                //Salir del grupo. El usuario exige salir de un grupo. No puede salir de Excalibur porque no pertenece.
                System.Console.WriteLine("[email protected] - Salir de Excalibur");
                System.Console.WriteLine(usuarioCP.SalirDeGrupo("*****@*****.**", "Excalibur") + "\n");

                //Alternativa agil a utilizar el Relationer, pues se le pasa un unico usuario, y no una lista.
                //Accion del grupo para meter a un usuario.
                System.Console.WriteLine("Excalibur añade a [email protected]");
                System.Console.WriteLine(grupoCP.AnadirUsuario("Excalibur", "*****@*****.**") + "\n");



                listaUsuariosExcalibur = usuario.DameUsuarioPorGrupo("Excalibur");
                System.Console.WriteLine("Veamos los usuarios de Excalibur:");
                foreach (UsuarioEN usu in listaUsuariosExcalibur)
                {
                    System.Console.WriteLine(usu.Nick);
                    System.Console.WriteLine("Email: " + usu.Email);
                }


                //Expulsar Usuario. Accion del grupo para echar a uno de sus usuarios.
                System.Console.WriteLine(" ");
                System.Console.WriteLine("\n Excalibur expulsa a su miembro [email protected]");
                System.Console.WriteLine(grupoCP.ExpulsarUsuario("Excalibur", "*****@*****.**") + "\n");



                listaUsuariosExcalibur = usuario.DameUsuarioPorGrupo("Excalibur");
                System.Console.WriteLine("Veamos los usuarios de Excalibur:");
                foreach (UsuarioEN usu in listaUsuariosExcalibur)
                {
                    System.Console.WriteLine(usu.Nick);
                    System.Console.WriteLine("Email: " + usu.Email);
                }


                //El usuario entra por su cuenta a Excalibur, que acepta nuevos miembros.
                System.Console.WriteLine(" ");
                System.Console.WriteLine("[email protected] - Entrar a Excalibur (peticion)");
                System.Console.WriteLine(usuarioCP.EntrarAGrupo("*****@*****.**", "Excalibur") + "\n");



                listaUsuariosExcalibur = usuario.DameUsuarioPorGrupo("Excalibur");
                System.Console.WriteLine("Veamos los usuarios de Excalibur:");
                foreach (UsuarioEN usu in listaUsuariosExcalibur)
                {
                    System.Console.WriteLine(usu.Nick);
                    System.Console.WriteLine("Email: " + usu.Email);
                }


                //Salir del grupo. El usuario exige salir de un grupo. Pertenece a Excalibur por lo que puede salir. Sale sin problema de Excalibur
                System.Console.WriteLine(" ");
                System.Console.WriteLine("[email protected] - Salir de Excalibur");
                System.Console.WriteLine(usuarioCP.SalirDeGrupo("*****@*****.**", "Excalibur") + "\n");



                listaUsuariosExcalibur = usuario.DameUsuarioPorGrupo("Excalibur");
                System.Console.WriteLine("Veamos los usuarios de Excalibur:");
                foreach (UsuarioEN usu in listaUsuariosExcalibur)
                {
                    System.Console.WriteLine(usu.Nick);
                    System.Console.WriteLine("Email: " + usu.Email);
                }


                //Salir del grupo. El usuario exige salir de un grupo. No puede salir de Excalibur porque ya no pertenece.
                System.Console.WriteLine("\n [email protected] - Salir de Excalibur");
                System.Console.WriteLine(usuarioCP.SalirDeGrupo("*****@*****.**", "Excalibur") + "\n");



                System.Console.WriteLine("\n *Comprobaciones de errores en CP: no meten usuarios nulos o usuarios a grupos nulos, o usuarios/grupos inexistentes.*");
                System.Console.WriteLine("Por lo que todos estos métodos deben dar FALSE.");
                System.Console.WriteLine(grupoCP.AnadirUsuario("Excalibur", null));
                System.Console.WriteLine(grupoCP.AnadirUsuario("Excalibur", "usuarioinexistente"));
                System.Console.WriteLine(grupoCP.AnadirUsuario("grupoinexistente", "*****@*****.**"));
                System.Console.WriteLine(grupoCP.AnadirUsuario("grupoinexistente", "usuarioinexistente"));

                System.Console.WriteLine(usuarioCP.EntrarAGrupo(null, "Excalibur"));
                System.Console.WriteLine(usuarioCP.EntrarAGrupo("*****@*****.**", null));
                System.Console.WriteLine(usuarioCP.EntrarAGrupo("*****@*****.**", "Noexiste"));
                System.Console.WriteLine(usuarioCP.EntrarAGrupo("noexisto", "Excalibur"));

                System.Console.WriteLine(usuarioCP.SalirDeGrupo("*****@*****.**", null));
                System.Console.WriteLine(usuarioCP.SalirDeGrupo(null, "Excalibur"));
                System.Console.WriteLine(usuarioCP.SalirDeGrupo("noexisto", "Excalibur"));
                System.Console.WriteLine(usuarioCP.SalirDeGrupo("*****@*****.**", "noexisto"));

                System.Console.WriteLine(grupoCP.ExpulsarUsuario(null, null));
                System.Console.WriteLine(grupoCP.ExpulsarUsuario("Excalibur", null));
                System.Console.WriteLine(grupoCP.ExpulsarUsuario(null, "*****@*****.**"));
                System.Console.WriteLine(grupoCP.ExpulsarUsuario("noexisto", "*****@*****.**"));
                System.Console.WriteLine(grupoCP.ExpulsarUsuario("Excalibur", "noexisto"));
                System.Console.WriteLine("\n *Fin de metodos CP de Grupos/Usuarios que deben dar error*");

                System.Console.WriteLine("\n---------CPs sobre Video/Valoracion------------\n");

                //Por aqui se pueden probar los metodos CrearInvitacion y AceptarInvitacion
                System.Console.WriteLine("Comprobacion CrearInvitacion");
                System.Console.WriteLine("INVITACIONES USUARIO 1 \n");
                IList <InvitacionEN> inviE1 = invitacion.DameInvitacionEnviadaPorEmail("*****@*****.**");
                IList <InvitacionEN> inviR1 = invitacion.DameInvitacionRecibidaPorEmail("*****@*****.**");
                System.Collections.Generic.IList <string> usuarios_invitados = new List <string>();;
                usuarios_invitados.Add("*****@*****.**");
                foreach (InvitacionEN invi in inviR1)
                {
                    System.Console.WriteLine("--Recibida: " + invi.Descripcion);
                }
                foreach (InvitacionEN invi in inviE1)
                {
                    System.Console.WriteLine("--Enviada: " + invi.Descripcion);
                }
                System.Console.Write("\n");
                System.Console.WriteLine("INVITACIONES USUARIO 2 \n");
                IList <InvitacionEN> inviE2 = invitacion.DameInvitacionEnviadaPorEmail("*****@*****.**");
                IList <InvitacionEN> inviR2 = invitacion.DameInvitacionRecibidaPorEmail("*****@*****.**");
                foreach (InvitacionEN invi in inviR2)
                {
                    System.Console.WriteLine("--Recibida: " + invi.Descripcion);
                }
                foreach (InvitacionEN invi in inviE2)
                {
                    System.Console.WriteLine("--Enviada: " + invi.Descripcion);
                }
                System.Console.Write("\n");
                System.Console.WriteLine("SE INVOCA A CREAR INVITACION, USUARIO 1 LE MANDA INVITACION A USUARIO 2 ");
                invitacionCP.CrearInvitacion(usuarios_invitados, "*****@*****.**", "Grupo1", "Invitacion hecha con el CP crear Invitacion \n");
                System.Console.WriteLine("INVITACIONES USUARIO 1 \n");
                inviE1 = invitacion.DameInvitacionEnviadaPorEmail("*****@*****.**");
                inviR1 = invitacion.DameInvitacionRecibidaPorEmail("*****@*****.**");

                foreach (InvitacionEN invi in inviR1)
                {
                    System.Console.WriteLine("--Recibida: " + invi.Descripcion);
                }
                foreach (InvitacionEN invi in inviE1)
                {
                    System.Console.WriteLine("--Enviada: " + invi.Descripcion);
                }
                System.Console.Write("\n");
                System.Console.WriteLine("INVITACIONES USUARIO 2 \n");
                inviE2 = invitacion.DameInvitacionEnviadaPorEmail("*****@*****.**");
                inviR2 = invitacion.DameInvitacionRecibidaPorEmail("*****@*****.**");
                foreach (InvitacionEN invi in inviR2)
                {
                    System.Console.WriteLine("--Recibida: " + invi.Descripcion);
                }
                foreach (InvitacionEN invi in inviE2)
                {
                    System.Console.WriteLine("--Enviada: " + invi.Descripcion);
                }
                //comprobaciones Aceptar invitacion
                System.Console.Write("\n");
                System.Console.WriteLine("USUARIOS EN EL GRUPO 1 \n");
                IList <UsuarioEN> usuarios_grupo1 = usuario.DameUsuarioPorGrupo("Grupo1");
                foreach (UsuarioEN u in usuarios_grupo1)
                {
                    System.Console.WriteLine("--Usuario: " + u.Email);
                }

                System.Console.Write("\n");
                System.Console.WriteLine("INVITACIONES DEL GRUPO 1 \n");
                IList <InvitacionEN> invi1 = invitacion.DameInvitacionEnviadaPorGrupo("Grupo1");
                foreach (InvitacionEN i in invi1)
                {
                    System.Console.WriteLine("--Usuario: " + i.Descripcion);
                }


                System.Console.Write("\n");
                System.Console.WriteLine("SE INVOCA A ACEPTAR INVITACIÓN DEL USUARIO 2 ");
                invitacionCP.AceptarInvitacion(inviR2 [0].Id, "*****@*****.**");

                System.Console.WriteLine("INVITACIONES USUARIO 1 \n");
                inviE1 = invitacion.DameInvitacionEnviadaPorEmail("*****@*****.**");
                inviR1 = invitacion.DameInvitacionRecibidaPorEmail("*****@*****.**");

                foreach (InvitacionEN invi in inviR1)
                {
                    System.Console.WriteLine("--Recibida: " + invi.Descripcion);
                }
                foreach (InvitacionEN invi in inviE1)
                {
                    System.Console.WriteLine("--Enviada: " + invi.Descripcion);
                }
                System.Console.Write("\n");
                System.Console.WriteLine("INVITACIONES USUARIO 2 \n");
                inviE2 = invitacion.DameInvitacionEnviadaPorEmail("*****@*****.**");
                inviR2 = invitacion.DameInvitacionRecibidaPorEmail("*****@*****.**");
                foreach (InvitacionEN invi in inviR2)
                {
                    System.Console.WriteLine("--Recibida: " + invi.Descripcion);
                }
                foreach (InvitacionEN invi in inviE2)
                {
                    System.Console.WriteLine("--Enviada: " + invi.Descripcion);
                }
                System.Console.Write("\n");
                System.Console.WriteLine("USUARIOS EN EL GRUPO 1 \n");
                usuarios_grupo1 = usuario.DameUsuarioPorGrupo("Grupo1");
                foreach (UsuarioEN u in usuarios_grupo1)
                {
                    System.Console.WriteLine("--Usuario: " + u.Email);
                }

                System.Console.Write("\n");
                System.Console.WriteLine("INVITACIONES DEL GRUPO 1 \n");
                invi1 = invitacion.DameInvitacionEnviadaPorGrupo("Grupo1");
                foreach (InvitacionEN i in invi1)
                {
                    System.Console.WriteLine("--Usuario: " + i.Descripcion);
                }


                //ValoracionMedia de un video. Tiene 2 valoraciones, 5 y 4.

                System.Console.WriteLine("\n Valoracion media del video: " + video.ReadOID(idVideo1).Titulo);
                System.Console.WriteLine(videoCP.Calcular_valoracion(idVideo1));

                //Mostramos las valoraciones que tiene para comprobar que estamos en lo cierto:
                listaValoraciones = valoracion.DameValoracionPorVideoID(idVideo1);
                System.Console.WriteLine("\n HQL - Comprobamos las valoraciones del video: " + video.ReadOID(idVideo1).Titulo);
                foreach (ValoracionEN val in listaValoraciones)
                {
                    System.Console.WriteLine(" Valoracion de: " + val.Usuario.Email);
                    System.Console.WriteLine("Puntuacion: " + val.Valor);
                }

                System.Console.WriteLine("*Comprobaciones Errores CP Valoraciones: Estos metodos deben dar 0 porque el video no tiene valoraciones, o no existe.");
                //En principio este id de video, no existe. Seria mucha casualidad.
                System.Console.WriteLine(videoCP.Calcular_valoracion(-1423798));

                System.Console.WriteLine("*Fin Comprobaciones Errores CP Valoraciones");

                System.Console.WriteLine("\n---------------------\n");

                /*PROTECTED REGION END*/
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.InnerException);
                throw ex;
            }
        }