private void UpdateBrandDDL() { if (WAFShopHelper.SiteHasShop(WAFContext.Request.SiteId)) { int brandId = Utils.GetIntegerOnly(ddlBrandFilter.SelectedValue); // if (WAFShopHelper.GetCurrentShopId() > 0) { Shop shop = WAFContext.Session.GetContent<Shop>(WAFShopHelper.GetCurrentShopId()); List<Manufacturer> manufacturers = new List<Manufacturer>(); AqlQuery q = WAFContext.Session.CreateQuery(); AqlAliasShop aliasShop = new AqlAliasShop(); AqlAliasProductCategory aliasProdCat = new AqlAliasProductCategory(); AqlAliasProductBase aliasProduct = new AqlAliasProductBase(); AqlAliasManufacturer aliasManufacturer = new AqlAliasManufacturer(); AqlAliasRelShopProductCategory relShopCategories = new AqlAliasRelShopProductCategory(aliasShop, aliasProdCat); AqlAliasRelProductCategoryProducts relAliasProdCatProducts = new AqlAliasRelProductCategoryProducts(relShopCategories, aliasProduct, aliasProdCat); AqlAliasRelManufacturerProducts aliasRelManufacturerProducts = new AqlAliasRelManufacturerProducts(aliasManufacturer, relAliasProdCatProducts, aliasProduct); q.From(aliasRelManufacturerProducts); AqlResultContent<Manufacturer> manufacturer = q.Select<Manufacturer>(aliasManufacturer); AqlResultShortString name = q.Select(aliasManufacturer.Name); q.Where(aliasShop.NodeId == WAFShopHelper.GetCurrentShopId()); q.Distinct(); q.OrderBy(aliasManufacturer.Name); AqlResultSet rs = q.Execute(); while (rs.Read()) { manufacturers.Add(manufacturer.Value); } ddlBrandFilter.DataSource = manufacturers; ddlBrandFilter.DataBind(); // } if (brandId > 0) { ddlBrandFilter.SelectedValue = brandId.ToString(); } } }
public void UpdateProductSelection(ProductFilter filter) { if (WAFShopHelper.SiteHasShop(GetSiteId())) { // if (WAFShopHelper.GetCurrentShopId() > 0) { AqlQuery query = WAFContext.Session.CreateQuery(); AqlAliasShop aliasShop = new AqlAliasShop(); AqlAliasProductCategory aliasProdCat = new AqlAliasProductCategory(); AqlAliasProductBase aliasProduct = new AqlAliasProductBase(); AqlAliasManufacturer aliasManufacturer = new AqlAliasManufacturer(); AqlAliasRelShopProductCategory relShopCategories = new AqlAliasRelShopProductCategory(aliasShop, aliasProdCat); AqlAliasRelProductCategoryProducts relAliasProdCatProducts = new AqlAliasRelProductCategoryProducts(relShopCategories, aliasProduct, aliasProdCat); AqlAliasRelManufacturerProducts aliasRelManufacturerProducts = new AqlAliasRelManufacturerProducts(aliasManufacturer, relAliasProdCatProducts, aliasProduct); switch (filter) { case ProductFilter.NoFilter: query.From(aliasProduct); break; case ProductFilter.ProductCategory: int prodCatId = Utils.GetIntegerOnly(ddlProductCategoryFilter.SelectedValue); if (prodCatId > 0) { query.Where(aliasProdCat.NodeId == prodCatId); } query.From(relAliasProdCatProducts); break; case ProductFilter.Stock: int rangeType = Utils.GetIntegerOnly(ddlStockCriteria.SelectedValue); switch ((RangeCriteria)rangeType) { case RangeCriteria.Above: int aboveNumber = Utils.GetIntegerOnly(txtStockFilterLevel1.Text); query.Where(aliasProduct.NumberInStock >= aboveNumber); break; case RangeCriteria.Below: int belowNum = Utils.GetIntegerOnly(txtStockFilterLevel1.Text); query.Where(aliasProduct.NumberInStock <= belowNum); break; case RangeCriteria.Between: int level1Num = Utils.GetIntegerOnly(txtStockFilterLevel1.Text); int level2Num = Utils.GetIntegerOnly(txtStockFilterLevel2.Text); query.Where(aliasProduct.NumberInStock > level1Num & aliasProduct.NumberInStock < level2Num); break; case RangeCriteria.EqualTo: int stockNumber = Utils.GetIntegerOnly(txtStockFilterLevel1.Text); query.Where(aliasProduct.NumberInStock == stockNumber); break; default: break; } query.From(relAliasProdCatProducts); break; case ProductFilter.Price: int criteriaType = Utils.GetIntegerOnly(ddlPriceCriteria.SelectedValue); switch ((RangeCriteria)criteriaType) { case RangeCriteria.Above: int aboveNumber = Utils.GetIntegerOnly(txtPriceFilterLevel1.Text); query.Where(aliasProduct.PriceExVat >= aboveNumber); break; case RangeCriteria.Below: int belowNum = Utils.GetIntegerOnly(txtPriceFilterLevel1.Text); query.Where(aliasProduct.PriceExVat <= belowNum); break; case RangeCriteria.Between: int level1Num = Utils.GetIntegerOnly(txtPriceFilterLevel1.Text); int level2Num = Utils.GetIntegerOnly(txtPriceFilterLevel2.Text); query.Where(aliasProduct.PriceExVat > level1Num & aliasProduct.PriceExVat < level2Num); break; case RangeCriteria.EqualTo: int priceNumber = Utils.GetIntegerOnly(txtPriceFilterLevel1.Text); query.Where(aliasProduct.PriceExVat == priceNumber); break; default: break; } query.From(relAliasProdCatProducts); break; case ProductFilter.Brand: int brandId = Utils.GetIntegerOnly(ddlBrandFilter.SelectedValue); if (brandId > 0) { query.Where(aliasManufacturer.NodeId == brandId); } query.From(aliasRelManufacturerProducts); break; case ProductFilter.Search: query.Where(Aql.Like(aliasProduct.Name, "*" + txtSearch.Text + "*")); query.From(relAliasProdCatProducts); break; default: query.From(relAliasProdCatProducts); break; } if (!chkShowVariantNodes.Checked) { query.Where(aliasProduct.Subvariant == false); } //query.Distinct(); query.Select<ProductBase>(); query.Select(aliasProduct.NumberInStock); query.Select(aliasProduct.NodeId); query.Select(aliasProduct.PriceExVat); query.Select(aliasProduct.Name); query.Select(aliasProduct.CreateDate); query.Select(aliasProduct.ChangeDate); if (WAFShopHelper.SiteHasShop(WAFContext.Request.SiteId)) { if (filter == ProductFilter.NoFilter) { query.Where(aliasProduct.SiteId == WAFContext.Session.SiteId); } else { query.Where(AqlShop.NodeId == WAFShopHelper.GetCurrentShopId()); } // } else { query.Where(AqlSite.NodeId == WAFContext.Request.SiteId); } query.IncludeUnpublished = true; contentListProducts.Query = query; contentListProducts.DataBind(); } else { contentListProducts.Enabled = false; } }