fiz a instalação do System.Linq.Dynamic.Core usando o gerenciador de pacotes NuGet.
porém quando o orderby não está sendo usado ele fica nulo e dá um erro mesmo sem usar o filtro.
Classe LivroOrdemExtensions
using Alura.ListaLeitura.Modelos;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Linq.Dynamic.Core;
using System.Linq;
namespace Alura.WebApi.Api.Modelos
{
public static class LivroOrdemExtensions
{
public static IQueryable<Livro> AplicaOrdem(this IQueryable<Livro> query, LivroOrdem ordem)
{
if (ordem != null)
{
query = query.OrderBy(ordem.OrdenarPor);
}
return query;
}
}
public class LivroOrdem
{
public string OrdenarPor { get; set; }
}
}
erro é o n unhandled exception occurred while processing the request.
ArgumentNullException: Value cannot be null. Parameter name: ordering System.Linq.Dynamic.Core.Validation.Check.NotEmpty(string value, string parameterName) in Check.cs, line 93
Classe Livros2Controller
[HttpGet]
public IActionResult ListaDeLivros(
[FromQuery] LivroFiltro filtro,
[FromQuery] LivroOrdem ordem,
[FromQuery] LivrosPaginacao paginacao)
{
var model = _repo.All
.AplicaFiltro(filtro)
.AplicaOrdem(ordem)
.Select(l => l.ToApi())
.ToList();
return Ok(model);
}