/// <summary> /// Asynchronously returns a paginated list of the documents matching the filter condition. /// </summary> /// <typeparam name="TDocument">The type representing a Document.</typeparam> /// <param name="filter">A LINQ expression filter.</param> /// <param name="sortSelector">The property selector.</param> /// <param name="ascending">Order of the sorting.</param> /// <param name="skipNumber">The number of documents you want to skip. Default value is 0.</param> /// <param name="takeNumber">The number of documents you want to take. Default value is 50.</param> /// <param name="partitionKey">An optional partition key.</param> public virtual async Task <List <TDocument> > GetSortedPaginatedAsync <TDocument>( Expression <Func <TDocument, bool> > filter, Expression <Func <TDocument, object> > sortSelector, bool ascending = true, int skipNumber = 0, int takeNumber = 50, string partitionKey = null) where TDocument : IDocument <TKey> { return(await MongoDbReader.GetSortedPaginatedAsync <TDocument, TKey>(filter, sortSelector, ascending, skipNumber, takeNumber, partitionKey)); }