public void Filter_Order_WhenOrderFilterNonFilterInputIsPassed_ShouldReturnOrderedQueryable() { var filterInput = new List <FilterInput> { new FilterInput { Operation = OperationTypeEnum.GreaterThanOrEqual, Property = "Date", Value = "2017/04/07", Type = InputTypeEnum.String }, new FilterInput { Operation = OperationTypeEnum.LessThanOrEqual, Property = "Date", Value = "2017/04/10", Type = InputTypeEnum.String } }; var nonFilterInput = new Dictionary <string, string> { { "TestName1", "TestValue1" }, { "TestName2", "TestValue2" }, { "TestName3", "TestValue3" } }; var orderInput = new List <OrderInput> { new OrderInput { Property = "Number", Order = OrderTypeEnum.Desc } }; var orderFilterInput = new OrderFilterNonFilterInput() { Order = orderInput, Filter = filterInput, NonFilter = nonFilterInput }; var filteredResult = Mock.QueryableItems.Filter(orderFilterInput); var normalResult = Mock.QueryableItems.Where(p => (string.Compare(p.Date, "2017/04/07") >= 0) && (string.Compare(p.Date, "2017/04/10") <= 0)) .OrderByDescending(p => p.Number); AssertUtil.EnumarableAreEqual(filteredResult, normalResult); }
public void Filter_Order_WhenJustOrderIsPassed_AndItsPropertyIsInteger_ShouldReturnOrderedQueryable() { var orderInput = new List <OrderInput> { new OrderInput { Property = "Number", Order = OrderTypeEnum.Desc } }; var orderFilterInput = new OrderFilterNonFilterInput() { Order = orderInput }; var filteredResult = Mock.QueryableItems.Filter(orderFilterInput); var normalResult = Mock.QueryableItems.OrderByDescending(p => p.Number); AssertUtil.EnumarableAreEqual(filteredResult, normalResult); }
public static IOrderedQueryable <T> DynamicQueryNetFilter <T>(this IQueryable <T> input, OrderFilterNonFilterInput orderFilterInput) => (IOrderedQueryable <T>)((IOrderedQueryable <T>)orderFilterInput != null ? input.DynamicQueryNetFilter(orderFilterInput.Filter).DynamicQueryNetOrder(orderFilterInput.Order) : input);
public static IOrderedQueryable <T> Filter <T>(this IQueryable <T> input, OrderFilterNonFilterInput orderFilterInput) { return((IOrderedQueryable <T>)(orderFilterInput != null ? input.Filter(orderFilterInput.Filter).Order(orderFilterInput.Order) : input)); }