/// <summary> /// Assigns the number of items per page in the query result to be returned. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="itemsPerPage"> /// The items per page. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder ItemsPerPage(this IProductContentQueryBuilder builder, long itemsPerPage) { if (itemsPerPage < 1) { itemsPerPage = 10; } builder.ItemsPerPage = itemsPerPage; return(builder); }
/// <summary> /// Assigns the page in the paging query result to be returned. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="page"> /// The page. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder Page(this IProductContentQueryBuilder builder, long page) { if (page < 1) { page = 1; } builder.Page = page; return(builder); }
/// <summary> /// Adds a constraint by a collection of <see cref="IProductCollection"/>. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="collections"> /// The collections. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder ConstrainBy(this IProductContentQueryBuilder builder, IEnumerable <IProductCollection> collections) { builder.AddConstraint(collections); return(builder); }
/// <summary> /// Adds a constraint by a <see cref="IProductCollection"/>. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="collection"> /// The collection. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder ConstrainBy(this IProductContentQueryBuilder builder, IProductCollection collection) { builder.AddConstraint(collection); return(builder); }
/// <summary> /// Adds a constraint by a collection of <see cref="IProductFilter"/>. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="filters"> /// The filters. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder ConstrainBy(this IProductContentQueryBuilder builder, IEnumerable <IProductFilter> filters) { builder.AddConstraint(filters); return(builder); }
/// <summary> /// Adds a constraint by a <see cref="IProductFilter"/>. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="filter"> /// The filter. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder ConstrainBy(this IProductContentQueryBuilder builder, IProductFilter filter) { builder.AddConstraint(filter); return(builder); }
/// <summary> /// Sets a value indicating whether the query should be inclusive or exclusive with respect to the collection constraints. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="clusivity"> /// The clusivity. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> /// <remarks> /// Only relevant in queries that are constrained by collections /// </remarks> public static IProductContentQueryBuilder Clusivity(this IProductContentQueryBuilder builder, CollectionClusivity clusivity) { builder.CollectionClusivity = clusivity; return(builder); }
/// <summary> /// Sets the ordering of the query result. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="orderByExpression"> /// The order by expression. /// </param> /// <param name="sortDirection"> /// The sort direction. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder OrderByCustomExpression(this IProductContentQueryBuilder builder, string orderByExpression, SortDirection sortDirection = SortDirection.Ascending) { builder.CustomOrderByExpression = orderByExpression; builder.SortDirection = sortDirection; return(builder); }
/// <summary> /// Sets the ordering of the query result. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="sortBy"> /// The sort by. /// </param> /// <param name="sortDirection"> /// The sort direction. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> public static IProductContentQueryBuilder OrderBy(this IProductContentQueryBuilder builder, ProductSortField sortBy, SortDirection sortDirection = SortDirection.Ascending) { builder.SortBy = sortBy; builder.SortDirection = sortDirection; return(builder); }
/// <summary> /// Directly adds a constraint by a <see cref="IEntityCollection"/> key. /// </summary> /// <param name="builder"> /// The builder. /// </param> /// <param name="collectionKey"> /// The collection key. /// </param> /// <returns> /// The <see cref="IProductContentQueryBuilder"/>. /// </returns> /// <remarks> /// Filters and Collections are actually both <see cref="IEntityCollection"/>s and the underlying query just uses the /// collection key(s) so they can be added directly. /// </remarks> public static IProductContentQueryBuilder ConstrainByCollectionKey(this IProductContentQueryBuilder builder, Guid collectionKey) { builder.AddCollectionKeyConstraint(collectionKey); return(builder); }