public List<Product> GetProducts()
        {
            Sorting<Common.Domain.Models.Product> [] sortings = new Sorting<Common.Domain.Models.Product>[]
                {
                    new Sorting<Common.Domain.Models.Product>()
                        {
                            SortingType = SortingType.Desc,
                            Expression = p=>p.Name
                        },
                    new Sorting<Common.Domain.Models.Product>()
                        {
                            SortingType = SortingType.Asc,
                            Expression = p=>p.Description
                        }
                };
            var queryParams = new GeneralQueryParams<Common.Domain.Models.Product>()
                {
                    WhereExpressions = null,//new Expression<Func<Common.Domain.Models.Product, bool>>[] { p => p.Name.StartsWith("fir") },
                    SortExpressions = sortings

                };
            var commonProducts = new ProductsService().GetProducts("parentCat", queryParams);
            return commonProducts.Select(cp => new Product()
                {
                    Id = cp.Id,
                    Name = cp.Name,
                    CategoryName = cp.Categories.Single().Name,
                    Description = cp.Description,
                    CreatedTime = cp.CreatedTime,
                    Energy = cp.AttributeValues.Single(av => av.Attribute.Name == "Energy").Value
                }).ToList();
        }
Esempio n. 2
0
        //include childs categoriess
        public List<Product> GetProducts(string name, GeneralQueryParams<Product> queryParams)
        {
            using (var uow = new UnitOfWork())
            {
                var categories = GetChildCategories(name, uow.CategoryRepository);
                long[] ids = categories.Select(c => c.Id).ToArray();
                var rep = uow.ProductRepository;
                IQueryable<Product> allIncluding =
                    rep.AllIncluding(p => p.Categories, p => p.AttributeValues, p => p.AttributeValues.Select(av => av.Attribute))
                       .Where(p => p.Categories.Any(c => ids.Contains(c.Id)));
                allIncluding = allIncluding.AddFilteringAndpaging(queryParams);

                return allIncluding.ToList();
            }
        }