Skip to content

Commit f11ae60

Browse files
committed
feat: general improvements and minor bugs
1 parent e947958 commit f11ae60

25 files changed

Lines changed: 499 additions & 446 deletions

src/WebExpress.WebIndex.Test/Queries/UnitTestQuery.cs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@ public void DefaultQuery()
2121

2222
// validation
2323
Assert.Empty(q.Filters);
24-
Assert.Null(q.OrderBy);
25-
Assert.Null(q.OrderByDescending);
26-
Assert.Null(q.ThenBy);
27-
Assert.Null(q.ThenByDescending);
24+
Assert.Empty(q.OrderBys);
2825
Assert.Null(q.Skip);
2926
Assert.Null(q.Take);
3027
}
@@ -396,8 +393,9 @@ public void OrderByAsc()
396393
.OrderByAsc(key);
397394

398395
// validation
399-
Assert.Equal(key, q.OrderBy);
400-
Assert.Null(q.OrderByDescending);
396+
Assert.Equal(key, q.OrderBys.First().KeySelector);
397+
Assert.False(q.OrderBys.First().Descending);
398+
Assert.Single(q.OrderBys);
401399
}
402400

403401
/// <summary>
@@ -415,8 +413,8 @@ public void OrderByDesc()
415413
.OrderByDesc(key);
416414

417415
// validation
418-
Assert.Equal(key, q.OrderByDescending);
419-
Assert.Null(q.OrderBy);
416+
Assert.Equal(key, q.OrderBys.FirstOrDefault().KeySelector);
417+
Assert.True(q.OrderBys.FirstOrDefault().Descending);
420418
}
421419

422420
/// <summary>
@@ -434,8 +432,8 @@ public void ThenByAsc()
434432
.ThenByAsc(key);
435433

436434
// validation
437-
Assert.Equal(key, q.ThenBy);
438-
Assert.Null(q.ThenByDescending);
435+
Assert.Equal(key, q.OrderBys.Last().KeySelector);
436+
Assert.False(q.OrderBys.Last().Descending);
439437
}
440438

441439
/// <summary>
@@ -453,8 +451,8 @@ public void ThenByDesc()
453451
.ThenByDesc(key);
454452

455453
// validation
456-
Assert.Equal(key, q.ThenByDescending);
457-
Assert.Null(q.ThenBy);
454+
Assert.Equal(key, q.OrderBys.Last().KeySelector);
455+
Assert.True(q.OrderBys.Last().Descending);
458456
}
459457

460458
/// <summary>
@@ -498,9 +496,9 @@ public void Apply()
498496
// arrange
499497
var data = new List<IndexItem>
500498
{
501-
new IndexItem { Name = "Charlie", Value = 30 },
502-
new IndexItem { Name = "Alpha", Value = 10 },
503-
new IndexItem { Name = "Bravo", Value = 20 }
499+
new() { Name = "Charlie", Value = 30 },
500+
new() { Name = "Alpha", Value = 10 },
501+
new() { Name = "Bravo", Value = 20 }
504502
}.AsQueryable();
505503

506504
var query = new Query<IndexItem>()

src/WebExpress.WebIndex/Queries/IQuery.cs

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,28 +29,9 @@ public interface IQuery<TIndexItem>
2929
IEnumerable<Expression<Func<TIndexItem, bool>>> Filters { get; }
3030

3131
/// <summary>
32-
/// Returns the expression used to specify the property or value by which to order
33-
/// index items.
32+
/// Returns the collection of sorting criteria applied to the query.
3433
/// </summary>
35-
Expression<Func<TIndexItem, object>> OrderBy { get; }
36-
37-
/// <summary>
38-
/// Returns the expression used to specify the property or value by which to sort items
39-
/// in descending order.
40-
/// </summary>
41-
Expression<Func<TIndexItem, object>> OrderByDescending { get; }
42-
43-
/// <summary>
44-
/// Returns the expression used to specify an additional sorting criterion for the query
45-
/// after the primary ordering has been applied.
46-
/// </summary>
47-
Expression<Func<TIndexItem, object>> ThenBy { get; }
48-
49-
/// <summary>
50-
/// Returns the expression used to specify a secondary descending sort order for the
51-
/// index items.
52-
/// </summary>
53-
Expression<Func<TIndexItem, object>> ThenByDescending { get; }
34+
public IReadOnlyList<(Expression<Func<TIndexItem, object>> KeySelector, bool Descending)> OrderBys { get; }
5435

5536
/// <summary>
5637
/// Returns the number of items to skip before starting to return results.

0 commit comments

Comments
 (0)