public AplicacionQuery consultarAplicacion(string idAplicacion)
        {
            AplicacionQuery appQ = null;

            try
            {
                Aplicacion app = _ufw.RepositoryQueryAplicacion().Find(new AplicacionSpecification(idAplicacion)).FirstOrDefault();

                if (app == null)
                {
                    throw new Exception("La aplicación es inválida");
                }

                appQ       = new AplicacionQuery();
                appQ.Roles = new List <RolQuery>();

                foreach (Rol r in app.Roles)
                {
                    RolQuery rolQ = new RolQuery();
                    rolQ.Id          = r.Id;
                    rolQ.Nombre      = r.Display;
                    rolQ.Descripcion = r.Descripcion;
                    appQ.Roles.Add(rolQ);
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(appQ);
        }
Exemplo n.º 2
0
        public IEnumerable <RolQuery> rolesPorAplicacion(string idAplicacion)
        {
            List <RolQuery> roles = null;

            try
            {
                Aplicacion app = _ufw.RepositoryQueryAplicacion().Find(new AplicacionSpecification(idAplicacion)).FirstOrDefault();

                if (app == null)
                {
                    throw new Exception("La aplicación es inválida");
                }


                roles = new List <RolQuery>();

                foreach (Rol r in app.Roles)
                {
                    RolQuery rol = new RolQuery();
                    rol.Id          = r.Id;
                    rol.Nombre      = r.Display;
                    rol.Descripcion = r.Descripcion;

                    roles.Add(rol);
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(roles);
        }
Exemplo n.º 3
0
        public UsuarioQuery verRolesPorUsuario(string usuario)
        {
            UsuarioQuery usrQ = null;

            try
            {
                Usuario usrE = _ufw.UserIdentityRepository().ReadByNameUser(usuario);

                if (usrE == null)
                {
                    throw new Exception("El usuario es inválido");
                }

                List <Rol> roles = _ufw.RoleIdentityRepository().GetAllRoles(usrE).ToList();


                usrQ                = new UsuarioQuery();
                usrQ.IdUsuario      = usrE.Id;
                usrQ.Usuario        = usrE.UserName;
                usrQ.Nombres        = usrE.Nombres;
                usrQ.Apellidos      = usrE.Apellidos;
                usrQ.Identificacion = usrE.Identificacion;
                usrQ.TelefonoMovil  = usrE.PhoneNumber;
                usrQ.Identificacion = usrE.Identificacion;
                usrQ.Organizacion   = usrE.Organizacion;
                usrQ.Cargo          = usrE.Cargo;
                usrQ.Description    = usrE.Description;
                usrQ.EsExterno      = usrE.EsExterno;


                usrQ.Roles = new List <RolQuery>();

                foreach (Rol r in roles)
                {
                    RolQuery rolQ = new RolQuery();
                    rolQ.Id          = r.Id;
                    rolQ.Nombre      = r.Display;
                    rolQ.Descripcion = r.Descripcion;
                    usrQ.Roles.Add(rolQ);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return(usrQ);
        }
        public AplicacionQuery registrarAplicacion(AplicacionCmd aplicacion)
        {
            AplicacionQuery      appQ      = null;
            AlgoritmoDeSeguridad algoritmo = null;

            try
            {
                if (aplicacion.EsValido())
                {
                    Aplicacion otherApp = _ufw.RepositoryQueryAplicacion().Find(new AplicacionSpecification(aplicacion.IdAplicacion)).FirstOrDefault();

                    if (otherApp == null)
                    {
                        if (aplicacion.PermiteJWT)
                        {
                            algoritmo = _ufw.RepositoryQueryAlgoritmo().Find(new AlgoritmoSpecification(aplicacion.AlgoritmoDeSeguridad)).FirstOrDefault();

                            if (algoritmo == null)
                            {
                                throw new Exception("El algoritmo es inválido");
                            }
                        }


                        Aplicacion app = new Aplicacion();
                        app.IdAplicacion         = aplicacion.IdAplicacion;
                        app.Nombre               = aplicacion.Nombre;
                        app.EmailContacto        = aplicacion.EmailContacto;
                        app.Estado               = true;
                        app.PermiteJWT           = aplicacion.PermiteJWT;
                        app.AlgoritmoDeSeguridad = aplicacion.AlgoritmoDeSeguridad;
                        app.LlaveSecreta         = aplicacion.LlaveSecreta;
                        app.MinutosDeVida        = aplicacion.MinutosDeVida;
                        app.FechaExpiracionLlave = aplicacion.FechaExpiracionLlave;
                        app.EstadoLlave          = (aplicacion.PermiteJWT && (aplicacion.LlaveSecreta != null)) ? true : false;

                        _ufw.BeginTransaction();
                        _ufw.RepositoryCommandAplicacion().Add(app);

                        foreach (RolQuery r in aplicacion.Roles)
                        {
                            _ufw.RoleIdentityRepository().CreateRoleAsync(aplicacion.IdAplicacion, r.Nombre, r.Nombre, r.Descripcion);
                        }

                        _ufw.SaveChanges();
                        _ufw.Commit();
                        app = _ufw.RepositoryQueryAplicacion().Find(new AplicacionSpecification(app.IdAplicacion)).FirstOrDefault();

                        appQ = new AplicacionQuery();
                        appQ.IdAplicacion         = app.IdAplicacion;
                        appQ.Nombre               = app.Nombre;
                        appQ.EmailContacto        = app.EmailContacto;
                        appQ.PermiteJWT           = app.PermiteJWT;
                        appQ.AlgoritmoDeSeguridad = app.AlgoritmoDeSeguridad;
                        appQ.NombreAlgoritmo      = (algoritmo != null) ? algoritmo.Valor : "";
                        appQ.LlaveSecreta         = app.LlaveSecreta;
                        appQ.MinutosDeVida        = app.MinutosDeVida;
                        appQ.FechaExpiracionLlave = app.FechaExpiracionLlave;
                        appQ.Roles = new List <RolQuery>();

                        foreach (Rol r in app.Roles)
                        {
                            RolQuery rolQ = new RolQuery();
                            rolQ.Id          = r.Id;
                            rolQ.Nombre      = r.Display;
                            rolQ.Descripcion = r.Descripcion;
                            appQ.Roles.Add(rolQ);
                        }
                    }
                    else
                    {
                        throw new Exception("Ya existe una Aplicación con ese Identificador");
                    }
                }
                else
                {
                    throw new Exception("La configuración es inválida");
                }
            }
            catch (Exception e)
            {
                _ufw.Rollback();
                throw e;
            }


            return(appQ);
        }