using System.Collections.Generic; using System.Threading.Tasks; namespace VNLib.Plugins.Extensions.Data.Abstractions { /// /// Defines a Data-Store that can retirieve and manipulate paginated /// data /// /// The data-model type public interface IPaginatedDataStore { /// /// Gets a collection of records using a pagination style query, and adds the records to the collecion /// /// The collection to add records to /// Pagination page to get records from /// The maximum number of items to retrieve from the store /// A task that resolves the number of items added to the collection Task GetPageAsync(ICollection collection, int page, int limit); /// /// Gets a collection of records using a pagination style query with constraint arguments, and adds the records to the collecion /// /// The collection to add records to /// Pagination page to get records from /// The maximum number of items to retrieve from the store /// A params array of strings to constrain the result set from the db /// A task that resolves the number of items added to the collection Task GetPageAsync(ICollection collection, int page, int limit, params string[] constraints); } }