public IActionResult PostUsuario([FromBody] Usuario usuario)
        {
            try
            {
                if (usuario.userName.Length == 0 || usuario.password.Length == 0 || usuario.isAdmin.Length == 0)
                {
                    throw new Exception("Los datos son obligatorios.");
                }

                usuarios = new UsuarioRepositor(_config, Request);

                if (usuarios.Exist(usuario.userName))
                {
                    throw new Exception(String.Format("El usuario {0} ya se encuentra registrado", usuario.userName));
                }

                return(Ok(new
                {
                    statusCode = 200,
                    message = "Success",
                    user = usuarios.Agregar(usuario)
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }
        public IActionResult DenyPermission([FromBody] List <Permissions> permissions)
        {
            try
            {
                foreach (Permissions permiso in permissions)
                {
                    if (permiso.userName.Length == 0 || permiso.module.Length == 0 || permiso.permission.Length == 0)
                    {
                        throw new Exception("Los datos son obligatorios.");
                    }
                }

                usuarios = new UsuarioRepositor(_config, Request);

                usuarios.DenyPermission(permissions);

                return(Ok(new
                {
                    statusCode = 200,
                    message = "Success"
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }
        public IActionResult PutUsuario(string userName, [FromBody] Usuario usuario)
        {
            try
            {
                if (userName != usuario.userName)
                {
                    throw new Exception("Verifique que los datos solicitados esten correctamente diligenciados");
                }

                usuarios = new UsuarioRepositor(_config, Request);

                if (!usuarios.Exist(userName))
                {
                    throw new Exception("El usuario no existe");
                }

                return(Ok(new
                {
                    statusCode = 200,
                    message = "Success",
                    user = usuarios.Actualizar(usuario)
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }
        public IActionResult GetUsuarios()
        {
            try
            {
                usuarios = new UsuarioRepositor(_config, Request);

                return(Ok(new
                {
                    statusCode = 200,
                    message = "success",
                    users = usuarios.Cargar().Tables[0]
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }
        public IActionResult Permissions([FromBody] Usuario usuario)
        {
            try
            {
                usuarios = new UsuarioRepositor(_config, Request);

                return(Ok(new
                {
                    statusCode = 200,
                    message = "Success",
                    permissions = usuarios.Permissions(usuario).Tables[0]
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }
        public IActionResult RestorePassword([FromBody] Usuario usuario)
        {
            try
            {
                usuarios = new UsuarioRepositor(_config, Request);

                usuarios.RestablecerContraseña(usuario);

                return(Ok(new
                {
                    statusCode = 200,
                    message = "El usuario debera cerrar la sesión y volverla a abrir.",
                    user = usuarios.CargarPorId(usuario.userName).Tables[0]
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }
        public IActionResult GetUsuario(string userName)
        {
            try
            {
                usuarios = new UsuarioRepositor(_config, Request);

                if (!usuarios.Exist(userName))
                {
                    throw new Exception("El usuario no existe");
                }

                return(Ok(new
                {
                    statusCode = 200,
                    message = "success",
                    user = usuarios.CargarPorId(userName).Tables[0]
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }
        public IActionResult DeleteUsuario(string userName)
        {
            try
            {
                usuarios = new UsuarioRepositor(_config, Request);

                if (!usuarios.Exist(userName))
                {
                    throw new Exception("El usuario no existe");
                }

                usuarios.Borrar(userName);

                return(Ok(new
                {
                    statusCode = 200,
                    message = "success"
                }));
            }
            catch (Exception ex)
            {
                return(new ResponseContext().getFauilureResponse(ex));
            }
        }