public ActionResult Detalle(int id)
 {
     Usuario usuario = Uow.Usuarios.Obtener(u => u.UsuarioId == id, u => u.Roles,
                 u => u.UsuarioProveedores, u => u.UsuarioProveedores.Select(m => m.Proveedor));
     var model = new UsuarioModel()
     {
         Usuario = usuario,
         RoleId = usuario.Rol.RoleId
     };
     LlenarControles(model);
     return PartialView(model);
 }
        private void CustomValidation(UsuarioModel model)
        {
            if (WebSecurity.UserExists(model.Usuario.NombreUsuario))
            {
                ModelState.AddModelError("NombreUsuario", "El nombre de usuario ya esta en uso");

            }
        }
        private void LlenarControles(UsuarioModel model)
        {
            var proveedores = Uow.Proveedores.Listado().Where(p => p.CuentaId == UsuarioActual.CuentaId).ToList();
            model.Proveedores = proveedores.Select(r => new SelectListItem()
            {
                Text = r.Nombre,
                Value = r.ProveedorId.ToString()
            }).ToList();

            var listado = Uow.Usuarios.RolesListado().ToList();
            listado.RemoveAt(3);
            var roles = new SelectList(listado, "RoleId", "RoleName").ToList();
            roles.Insert(0, new SelectListItem());
            ViewBag.Roles = new SelectList(roles, "Value", "Text");
        }
        public ActionResult Eliminar(UsuarioModel usuarioModel)
        {
            Usuario usuario = Uow.Usuarios.Obtener(u => u.UsuarioId == usuarioModel.Usuario.UsuarioId,
                u => u.Roles);

            if (usuario == null)
            {
                return HttpNotFound();
            }

            //Verificamos que no sea el ultimo usuario admin.
            if (usuario.UsuarioId == UsuarioActual.Usuario.UsuarioId)
                return PartialView("EliminarError", "No se puede eliminar el usuario ya que el mismo está logueado actualmente");

            Uow.Usuarios.Eliminar(usuario);
            Uow.Commit();
            return new JsonResult() { Data = new { exito = true }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }