public void Filter_Order_WhenOrderFilterInputIsNull_ShouldReturnPrimaryQueryable() { OrderFilterInput filterInput = null; var queryable = Mock.QueryableItems.Filter(filterInput); Assert.Equal(queryable, Mock.QueryableItems); }
public void Filter_Order_WhenJustOrderIsPassed_ShouldReturnOrderedQueryable() { var orderInput = new List <OrderInput> { new OrderInput { Property = "Date", Order = OrderTypeEnum.Desc }, new OrderInput { Property = "Name", Order = OrderTypeEnum.Desc } }; var orderFilterInput = new OrderFilterInput { Order = orderInput }; var filteredResult = Mock.QueryableItems.Filter(orderFilterInput); var normalResult = Mock.QueryableItems .OrderByDescending(p => p.Date) .ThenByDescending(p => p.Name); AssertUtil.EnumarableAreEqual(filteredResult, normalResult); }
public void Filter_Order_WhenJustFilterIsPassed_ShouldReturnFilteredQueryable() { 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 orderFilterInput = new OrderFilterInput { Filter = filterInput }; 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)); AssertUtil.EnumarableAreEqual(filteredResult, normalResult); }
public void Filter_Order_WhenOrderFilterInputIsPassed_ShouldReturnFilteredAndOrderedQueryable() { 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 orderInput = new List <OrderInput> { new OrderInput { Property = "Date", Order = OrderTypeEnum.Desc }, new OrderInput { Property = "Name", Order = OrderTypeEnum.Desc } }; var orderFilterInput = new OrderFilterInput { Order = orderInput, Filter = filterInput }; 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.Date) .ThenByDescending(p => p.Name); AssertUtil.QueryablesAreEqual(filteredResult, normalResult); }
public static IOrderedQueryable <T> DynamicQueryNetFilter <T>(this IQueryable <T> input, OrderFilterInput 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, OrderFilterInput orderFilterInput) { return((IOrderedQueryable <T>)(orderFilterInput != null ? input.Filter(orderFilterInput.Filter).Order(orderFilterInput.Order) : input)); }