public bool SalirDeGrupo(string p_oid, string p_nombreGrupo)
        {
            /*PROTECTED REGION ID(DSMGitGenNHibernate.CP.DSMGit_Usuario_salirDeGrupo) ENABLED START*/


            IUsuarioCAD usuarioCAD         = null;
            IGrupoCAD   grupoCAD           = null;
            UsuarioCEN  usuarioCEN         = null;
            GrupoCEN    grupoCEN           = null;
            Boolean     resultadoOperacion = false;

            if (p_nombreGrupo != null && p_oid != null)
            {
                try
                {
                    SessionInitializeTransaction();
                    usuarioCAD = new UsuarioCAD(session);
                    grupoCAD   = new GrupoCAD(session);
                    usuarioCEN = new UsuarioCEN(usuarioCAD);
                    grupoCEN   = new GrupoCEN(grupoCAD);


                    GrupoEN   grupoEN          = new GrupoEN();
                    UsuarioEN usuarioEN        = new UsuarioEN();
                    Boolean   existe           = false;
                    Boolean   perteneceAlGrupo = false;


                    // Write here your custom transaction ...

                    IList <UsuarioEN> usuarios = usuarioCEN.DameUsuarioPorEmail(p_oid);

                    if (usuarios.Count == 0)
                    {
                        System.Console.WriteLine("No existe ese usuario");
                    }
                    else
                    {
                        IList <GrupoEN> grupos = grupoCEN.DameGruposPorNombre(p_nombreGrupo);

                        if (grupos.Count == 0)
                        {
                            System.Console.WriteLine("No existe ese grupo");
                        }
                        else
                        {
                            if (grupoCEN.ReadOID(p_nombreGrupo) != null)
                            {
                                usuarioEN = usuarioCEN.ReadOID(p_oid);
                                //System.Console.WriteLine("El grupo existe!");
                                grupoEN = grupoCEN.ReadOID(p_nombreGrupo);
                                existe  = true;
                            }
                        }
                    }



                    if (existe == true && usuarioEN.Grupos != null)
                    {
                        foreach (GrupoEN gru in usuarioEN.Grupos)
                        {
                            if (gru.Nombre == p_nombreGrupo)
                            {
                                perteneceAlGrupo = true;
                            }
                        }
                    }



                    if (perteneceAlGrupo == true)
                    {
                        IList <string> emailsQueQuitarDelGrupo = new List <string>();
                        emailsQueQuitarDelGrupo.Add(p_oid);
                        grupoCEN.SacarUsuario(p_nombreGrupo, emailsQueQuitarDelGrupo);
                        resultadoOperacion = true;
                    }


                    SessionCommit();
                }
                catch (Exception ex)
                {
                    SessionRollBack();
                    throw ex;
                }
                finally
                {
                    SessionClose();
                }
            }
            return(resultadoOperacion);
            /*PROTECTED REGION END*/
        }
Example #2
0
        public bool ExpulsarUsuario(string p_oid, string p_email)
        {
            /*PROTECTED REGION ID(DSMGitGenNHibernate.CP.DSMGit_Grupo_expulsarUsuario) ENABLED START*/

            IGrupoCAD   grupoCAD   = null;
            IUsuarioCAD usuarioCAD = null;
            GrupoCEN    grupoCEN   = null;
            UsuarioCEN  usuarioCEN = null;

            Boolean resultado = false;

            if (p_email != null && p_oid != null)
            {
                try
                {
                    SessionInitializeTransaction();
                    usuarioCAD = new UsuarioCAD(session);
                    grupoCAD   = new GrupoCAD(session);
                    usuarioCEN = new UsuarioCEN(usuarioCAD);
                    grupoCEN   = new GrupoCEN(grupoCAD);


                    GrupoEN   grupoEN   = new GrupoEN();
                    UsuarioEN usuarioEN = new UsuarioEN();

                    // Write here your custom transaction ...

                    IList <UsuarioEN> usuarios = usuarioCEN.DameUsuarioPorEmail(p_email);

                    if (usuarios.Count == 0)
                    {
                        System.Console.WriteLine("Usuario inexistente");
                    }
                    else                                         // Si el usuario existe
                    {
                        IList <GrupoEN> grupos = grupoCEN.DameGruposPorNombre(p_oid);

                        if (grupos.Count == 0)
                        {
                            System.Console.WriteLine("No existe ese grupo");
                        }
                        else                                        // Si el grupo tambien existe
                        {
                            GrupoEN           group    = grupoCEN.ReadOID(p_oid);
                            IList <UsuarioEN> usuGrupo = group.Miembros;

                            foreach (UsuarioEN usu in usuGrupo)             // Recorro el grupo
                            {
                                if (usu.Email == p_email)                   // Si existe ese usuario en el grupo
                                {
                                    IList <string> expulsados = new List <string>();
                                    expulsados.Add(p_email);
                                    grupoCEN.SacarUsuario(p_oid, expulsados);
                                    resultado = true;
                                    break;
                                }
                            }
                        }
                    }

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


            /*PROTECTED REGION END*/
        }