private ProductBagModel GetData(ProductCommandDescriptor descriptor) { IQueryable <Litium.Domain.Entities.ProductCatalog.Product> products = null; var bagModel = new ProductBagModel(); if (descriptor is CategoryCommandDescriptor) { products = GetDataByCategory(descriptor); bagModel.TypeRequest = RequestType.Category; } if (descriptor is ProductSetCommandDescriptor) { products = GetDataByProductSet(descriptor); } if (descriptor is SearchCommandDescriptor) { products = GetDataByKeyWord((SearchCommandDescriptor)descriptor); bagModel.TypeRequest = RequestType.Search; } if (descriptor is BrandCommandDescriptor) { products = FilterByBrand(products, (BrandCommandDescriptor)descriptor); bagModel.TypeRequest = RequestType.Category; } IList <ProductModel> productModels = products.ToList().ConvertAll(ConvertFrom); productModels = productModels.ApplyCampaigns(); productModels = productModels.OrderByDescending(x => x.IsInCampaign).ThenBy(x => x.CampaignPrice).ToList(); productModels = productModels.ApplyPaging(descriptor.Page, descriptor.PageSize); bagModel.Id = descriptor.EnityId; bagModel.Products = productModels; if (descriptor.EnityId != Guid.Empty) { bagModel.Name = Repository.Data.Get <Category>(descriptor.EnityId).Name; } return(bagModel); }
/// <summary> /// Uses for populating data on Public site /// </summary> /// <param name="descriptor"></param> /// <returns></returns> public ProductBagModel GetProducts(ProductCommandDescriptor descriptor) { return(GetData(descriptor)); }
private IQueryable <Litium.Domain.Entities.ProductCatalog.Product> GetDataByProductSet(ProductCommandDescriptor descriptor) { throw new NotImplementedException(); }
private IQueryable <Litium.Domain.Entities.ProductCatalog.Product> GetDataByCategory(ProductCommandDescriptor descriptor) { var childCategories = new List <Category>(); var category = Repository.Data.Get <Category>(descriptor.EnityId); childCategories = GetAllCategoryRecursively(category); if (childCategories == null) { return(new List <Litium.Domain.Entities.ProductCatalog.Product>().AsQueryable()); } var joinedCollection = from child in childCategories join product in Repository.Data.Get <Litium.Domain.Entities.ProductCatalog.Product>().Where(x => x.Category != null && x.Published).All() on child.Id equals product.Category.Id select product; return(joinedCollection.AsQueryable()); }
private IQueryable<Litium.Domain.Entities.ProductCatalog.Product> GetDataByProductSet(ProductCommandDescriptor descriptor) { throw new NotImplementedException(); }
private IQueryable<Litium.Domain.Entities.ProductCatalog.Product> GetDataByCategory(ProductCommandDescriptor descriptor) { var childCategories = new List<Category>(); var category = Repository.Data.Get<Category>(descriptor.EnityId); childCategories = GetAllCategoryRecursively(category); if(childCategories == null) return new List<Litium.Domain.Entities.ProductCatalog.Product>().AsQueryable(); var joinedCollection = from child in childCategories join product in Repository.Data.Get<Litium.Domain.Entities.ProductCatalog.Product>().Where(x => x.Category != null && x.Published).All() on child.Id equals product.Category.Id select product; return joinedCollection.AsQueryable(); }
private ProductBagModel GetData(ProductCommandDescriptor descriptor) { IQueryable<Litium.Domain.Entities.ProductCatalog.Product> products = null; var bagModel = new ProductBagModel(); if (descriptor is CategoryCommandDescriptor) { products = GetDataByCategory(descriptor); bagModel.TypeRequest = RequestType.Category; } if (descriptor is ProductSetCommandDescriptor) products = GetDataByProductSet(descriptor); if (descriptor is SearchCommandDescriptor) { products = GetDataByKeyWord((SearchCommandDescriptor)descriptor); bagModel.TypeRequest = RequestType.Search; } if (descriptor is BrandCommandDescriptor) { products = FilterByBrand(products, (BrandCommandDescriptor)descriptor); bagModel.TypeRequest = RequestType.Category; } IList<ProductModel> productModels = products.ToList().ConvertAll(ConvertFrom); productModels = productModels.ApplyCampaigns(); productModels = productModels.OrderByDescending(x => x.IsInCampaign).ThenBy(x => x.CampaignPrice).ToList(); productModels = productModels.ApplyPaging(descriptor.Page, descriptor.PageSize); bagModel.Id = descriptor.EnityId; bagModel.Products = productModels; if (descriptor.EnityId != Guid.Empty) bagModel.Name = Repository.Data.Get<Category>(descriptor.EnityId).Name; return bagModel; }
/// <summary> /// Uses for populating data on Public site /// </summary> /// <param name="descriptor"></param> /// <returns></returns> public ProductBagModel GetProducts(ProductCommandDescriptor descriptor) { return GetData(descriptor); }