public IProductList FindByCategory(IUser currentUser, IProductListInputModel query) { // Find the list of products string url = "ProductService.svc/rest/ListProducts2?"; url += addUserUrlDetails(currentUser); url += "&statusSeed=" + _configuration["Storm:StatusSeed"]; if (query.CategoryIds != null) { url += "&categorySeed=" + string.Join(",", query.CategoryIds); } if (query.FlagIds != null) { url += "&flagSeed=" + string.Join(",", query.FlagIds); } if (!string.IsNullOrEmpty(query.Query)) { url += "&searchString=" + System.Web.HttpUtility.UrlEncode(query.Query); } url += "&pageNo=" + (query.PageNumber > 0 ? query.PageNumber : 1); url += "&pageSize=" + (query.PageSize > 0?query.PageSize:PageSize); url += "&asVariants=1"; var productList = _connectionManager.GetResult <StormProductList>(url); ProductListDto result = new ProductListDto(); result.ProductCount = productList.ItemCount; result.PageSize = PageSize; result.PageNumber = (query.PageNumber > 0 ? query.PageNumber : 1); result.Products = new List <IProduct>(); Dictionary <string, ProductDto> variants = new Dictionary <string, ProductDto>(); foreach (var item in productList.Items) { ProductDto p = (ProductDto)_productBuilder.BuildFromItem(item); if (!string.IsNullOrEmpty(p.GroupByKey)) { if (variants.ContainsKey(p.GroupByKey)) { variants[p.GroupByKey].Variants.Add((VariantDto)p.PrimaryVariant); } else { variants[p.GroupByKey] = p; result.Products.Add(p); } } else { result.Products.Add(p); } } return(result); }
public IList <IProductFilter> FindAllFilters(IUser currentUser, IProductListInputModel query) { // Find the list of products string url = "ProductService.svc/rest/ListProductFilters2?"; url += addUserUrlDetails(currentUser); url += "&statusSeed=" + _configuration["Storm:StatusSeed"]; if (query.CategoryIds != null) { url += "&categorySeed=" + string.Join(",", query.CategoryIds); } if (query.FlagIds != null) { url += "&flagSeed=" + string.Join(",", query.FlagIds); } if (!string.IsNullOrEmpty(query.Query)) { url += "&searchString=" + System.Web.HttpUtility.UrlEncode(query.Query); } var filterList = _connectionManager.GetResult <List <StormFilter> >(url); List <IProductFilter> result = new List <IProductFilter>(); Dictionary <string, ProductDto> variants = new Dictionary <string, ProductDto>(); foreach (var item in filterList) { var dto = new ProductFilterDto(); dto.Items = new List <IProductFilterItem>(); dto.Name = item.Type; dto.Type = item.Name; if (item.Name.Equals("parf")) { foreach (var entry in item.Items) { dto = new ProductFilterDto(); dto.Items = new List <IProductFilterItem>(); dto.Name = entry.Name; dto.Type = entry.Id; if (entry.Items != null) { foreach (var valuef in entry.Items) { var dtoi = new ProductFilterItem(); dtoi.Count = valuef.Count ?? 0; dtoi.Id = valuef.Id; dtoi.Name = valuef.Name; dtoi.Type = valuef.Type; dtoi.Value = valuef.Value; dto.Items.Add(dtoi); } } else if (entry.FalseCount.HasValue) { var dtoi = new ProductFilterItem(); dtoi.Count = entry.Count ?? 0; dtoi.Name = "True"; dto.Items.Add(dtoi); dtoi = new ProductFilterItem(); dtoi.Count = entry.FalseCount ?? 0; dtoi.Name = "False"; dto.Items.Add(dtoi); } result.Add(dto); } } else if (item.Name.Equals("ohf")) { result.Add(dto); var dtoi = new ProductFilterItem(); dtoi.Count = item.Items[0].Count ?? 0; dtoi.Name = "Onhand"; dto.Items.Add(dtoi); } else { foreach (var entry in item.Items) { var dtoi = new ProductFilterItem(); dtoi.Count = entry.Count ?? 0; dtoi.Id = entry.Id; dtoi.Name = entry.Name; dtoi.Type = entry.Type; dtoi.Value = entry.Value; dto.Items.Add(dtoi); } result.Add(dto); } } return(result); }