Exemplo n.º 1
0
        public ActionResult Index(ProductsFiltrationModel model)
        {
            // Фильтруем
            var availableProjects = CurrentUser.ProjectUsers.Select(p => p.ProjectId).ToArray();
            IEnumerable <ProductType> products = DataContext.ProductTypes.Where(w => availableProjects.Contains(w.ProjectId));

            if (model.ProjectIds.Length > 0)
            {
                products = products.Where(p => model.ProjectIds.Contains(p.ProjectId));
            }
            if (!String.IsNullOrEmpty(model.Term))
            {
                var term = model.Term.ToLower();
                products =
                    products.Where(
                        p =>
                        p.Article.ToLower().Contains(term) || p.Title.ToLower().Contains(term) ||
                        p.Description.ToLower().Contains(term));
            }
            if (model.InStock)
            {
                products = products.Where(p => p.WarehouseProducts.Any(wp => wp.Quantity > 0));
            }
            if (model.Ordered)
            {
                products =
                    products.Where(p => p.FEAOrderItems.Any(f => f.FEAOrder.Status != (short)FEAOrderStatus.Completed));
            }

            model.Fetched = products.OrderBy(p => p.Title).ToList();

            PushNavigationItem("Управление товарами", "/manage/products");
            PushNavigationItem("Список товаров", "#");

            return(View(model));
        }
        public ActionResult Index(ProductsFiltrationModel model)
        {
            // Фильтруем
            var availableProjects = CurrentUser.ProjectUsers.Select(p => p.ProjectId).ToArray();
            IEnumerable<ProductType> products = DataContext.ProductTypes.Where(w => availableProjects.Contains(w.ProjectId));
            if (model.ProjectIds.Length > 0)
            {
                products = products.Where(p => model.ProjectIds.Contains(p.ProjectId));
            }
            if (!String.IsNullOrEmpty(model.Term))
            {
                var term = model.Term.ToLower();
                products =
                    products.Where(
                        p =>
                            p.Article.ToLower().Contains(term) || p.Title.ToLower().Contains(term) ||
                            p.Description.ToLower().Contains(term));
            }
            if (model.InStock)
            {
                products = products.Where(p => p.WarehouseProducts.Any(wp => wp.Quantity > 0));
            }
            if (model.Ordered)
            {
                products =
                    products.Where(p => p.FEAOrderItems.Any(f => f.FEAOrder.Status != (short) FEAOrderStatus.Completed));
            }

            model.Fetched = products.OrderBy(p => p.Title).ToList();

            PushNavigationItem("Управление товарами","/manage/products");
            PushNavigationItem("Список товаров","#");

            return View(model);
        }