/// <summary> Initializes a new instance of the <see cref="ObservableSortedList{T}" /> class. </summary> /// <param name="comparer"> The comparer. </param> /// <param name="filter"> The filter. </param> public ObservableSortedList(IComparer <T> comparer = null, ICollectionFilter <T> filter = null) { _allItems = new List <T>(); _items = new List <T>(); _comparer = comparer ?? (Comparer <T> .Default); Filter = filter ?? new AllPassCollectionFilter <T>(); }
public ObjectResult NotFound <TElement>( ICollectionFilter usedFilter, IPage <IApiResource> resultsPage) where TElement : IApiResource { var result = this.Collection <TElement>(usedFilter, resultsPage.Total, new List <IApiResource>()); return(StatusCode(StatusCodes.Status404NotFound, result)); }
public ObjectResult NotFound <TElement>( ICollectionFilter usedFilter, int totalElementsExisting) where TElement : IApiResource { var result = this.Collection <TElement>(usedFilter, totalElementsExisting, new List <IApiResource>()); return(StatusCode(StatusCodes.Status404NotFound, result)); }
protected ObjectResult Collection <TElement>( ICollectionFilter usedFilter, IPage <IApiResource> resultsPage) where TElement : IApiResource { var filterOverview = usedFilter.GetOverview(); var view = new CollectionView <TElement>(filterOverview, resultsPage.Total, resultsPage.Items); return(new ObjectResult(view)); }
protected ObjectResult Collection <TElement>( ICollectionFilter usedFilter, int totalElementsExisting, IEnumerable <IApiResource> elementsToReturn) where TElement : IApiResource { var filterOverview = usedFilter.GetOverview(); var view = new CollectionView <TElement>(filterOverview, totalElementsExisting, elementsToReturn); return(new ObjectResult(view)); }
/// <summary> /// Performs filtering of the data collection. /// </summary> /// <typeparam name="T">Type of elements in the collection to filter.</typeparam> /// <param name="collection">Sequence of elements to filter.</param> /// <param name="filter">Filter which apply to collection.</param> /// <param name="sortBy">Sorting function.</param> /// <param name="sortAscending">Sorting direction.</param> /// <param name="startRow">Row from which start filtering.</param> /// <param name="pageSize">Count of rows in the page.</param> /// <returns>Collection with specific filtering rules applied.</returns> protected IEnumerable <T> Filter <T>( IQueryable <T> collection, ICollectionFilter <T> filter, Func <T, IComparable> sortBy, bool sortAscending, int startRow, int pageSize) { collection = filter.Filter(collection); if (sortBy == null) { return(collection); } // Perform sorting var sortedCollection = sortAscending ? collection.OrderBy(sortBy) : collection.OrderByDescending(sortBy); // Perform filtering. var pagedCollection = sortedCollection.Skip(startRow).Take(pageSize); return(pagedCollection); }
public static void SetFilter(DependencyObject obj, ICollectionFilter value) { obj.SetValue(FilterProperty, value); }
/// <summary> Initializes a new instance of the <see cref="ObservableSortedList{T}" /> class. </summary> /// <param name="items"> The items. </param> /// <param name="comparer"> The comparer. </param> /// <param name="filter"> The filter. </param> public ObservableSortedList([NotNull] IEnumerable <T> items, IComparer <T> comparer = null, ICollectionFilter <T> filter = null) : this(comparer, filter) { if (items == null) { throw new ArgumentNullException(nameof(items)); } foreach (var item in items) { Add(item); } }