public IEnumerable <Producto> ObtenerTodos(int pagina = 1, int elementosPorPagina = 20) { if (pagina < 1) { throw new ArgumentOutOfRangeException("La pagina no puede ser menor a 1"); } if (elementosPorPagina < 1) { throw new ArgumentOutOfRangeException("El valor indicado para los elementos por pagina es inválido"); } if (elementosPorPagina > 500) { throw new ArgumentOutOfRangeException("Por motivos de rendimiento no se permite obtener mas de 500 registros en una sola petición"); } var cantidadDeProductos = productos.ContarTodos(); var ultimaPagina = Math.Ceiling((double)cantidadDeProductos / elementosPorPagina); if (pagina > ultimaPagina) { throw new ArgumentOutOfRangeException($"La pagina no puede ser mayor a {ultimaPagina}."); } var skip = (pagina - 1) * elementosPorPagina; var take = elementosPorPagina; return(productos.ObtenerTodos(skip, take)); }
public HttpResponseMessage ObtenerTodos() { try { if (ValidarAutorizacion()) { var x = ProductosRepositorio.ObtenerTodos(); return(OkResponse(x)); } else { return(OkResponse("No tiene acceso")); } } catch (Exception) { return(ErrorResponse("Ha ocurrido un error al Obtener Todos")); throw; } }