private async Task <PaginatedList <Hotel> > GetPaginatedHotels(IQueryable <Hotel> hotels, QueryParams queryParams) { var filteredHotels = FilterByParams(hotels, queryParams); var orderedHotels = QueryableUtils <Hotel> .OrderCustom(filteredHotels, queryParams); return(await PaginatedList <Hotel> .CreateAsync(orderedHotels, queryParams.CurrentPage, queryParams.PageSize)); }
public void OrderCustom_ShouldRetainOrder_WithWrongParams() { var source = GetSource(); var queryParams = new QueryParams { OrderBy = "NotExisting" }; var ordered = QueryableUtils <Model> .OrderCustom(source, queryParams); Assert.Equal(source, ordered); }
public void OrderCustom_ShouldOrderByDesc_WithInt() { var source = GetSource(); var queryParams = new QueryParams { OrderBy = "Value", Desc = true }; var ordered = QueryableUtils <Model> .OrderCustom(source, queryParams); Assert.Equal(5, ordered.Count()); Assert.Equal(5, ordered.First().Value); Assert.Equal(1, ordered.Last().Value); }
public void OrderCustom_ShouldOrderByAsc_WithString() { var source = GetSource(); var queryParams = new QueryParams { OrderBy = "Name", Desc = false }; var ordered = QueryableUtils <Model> .OrderCustom(source, queryParams); Assert.Equal(5, ordered.Count()); Assert.Equal("A", ordered.First().Name); Assert.Equal("E", ordered.Last().Name); }