feat: update product service to support in-stock filtering and enhance top-selling product retrieval
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 23m11s
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 23m11s
- Modified `GetTopSellingAsync` methods in `ProductService` and `DiscountProductService` to include an optional `inStock` parameter for filtering products based on availability. - Introduced a constant for the top product count in `Index.razor.cs` to improve maintainability and readability. - Updated the product retrieval logic in `Index.razor.cs` to utilize the new in-stock filtering feature. These changes enhance the product listing functionality by allowing users to view only in-stock top-selling products, improving the overall shopping experience.
This commit is contained in:
@@ -71,12 +71,12 @@ public class ProductService
|
||||
return result.Products;
|
||||
}
|
||||
|
||||
public Task<ProductListResult> GetTopSellingAsync(int count = 6)
|
||||
=> GetProductsPagedAsync(sortBy: "SaleCount desc", page: 1, pageSize: count);
|
||||
public Task<ProductListResult> GetTopSellingAsync(int count = 6, bool? inStock = null)
|
||||
=> GetProductsPagedAsync(sortBy: "SaleCount desc", page: 1, pageSize: count, inStock: inStock);
|
||||
|
||||
public async Task<ProductListResult> GetProductsPagedAsync(
|
||||
string? query = null, long? categoryId = null, string? sortBy = null,
|
||||
int page = 1, int pageSize = 12)
|
||||
int page = 1, int pageSize = 12, bool? inStock = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -87,20 +87,25 @@ public class ProductService
|
||||
PageNumber = page,
|
||||
PageSize = pageSize
|
||||
},
|
||||
Filter = new GetAllProductsByFilterFilter
|
||||
{
|
||||
Title = query ?? string.Empty,
|
||||
Description = query ?? string.Empty,
|
||||
ShortInfomation = query ?? string.Empty,
|
||||
FullInformation = query ?? string.Empty
|
||||
}
|
||||
Filter = new GetAllProductsByFilterFilter()
|
||||
};
|
||||
|
||||
// فقط Title — CMS فیلترها را AND میزند؛ ارسال query در همه فیلدها جستجو را میشکند
|
||||
if (!string.IsNullOrWhiteSpace(query))
|
||||
{
|
||||
request.Filter.Title = query.Trim();
|
||||
}
|
||||
|
||||
if (categoryId is { } value)
|
||||
{
|
||||
request.Filter.CategoryId = value;
|
||||
}
|
||||
|
||||
if (inStock.HasValue)
|
||||
{
|
||||
request.Filter.InStock = inStock.Value;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(sortBy))
|
||||
{
|
||||
request.SortBy = sortBy;
|
||||
|
||||
Reference in New Issue
Block a user