Пример #1
0
 public BaseController()
 {
     _context = new ApplicationDbContext();
     this.CategoryFilterViewModel             = new CategoryFilterViewModel();
     this.CategoryFilterViewModel.Categories  = _context.Categories.ToList();
     this.ViewData["CategoryFilterViewModel"] = this.CategoryFilterViewModel;
 }
        public ActionResult Index(string slug, int productPageSize = 9, string preContentColumnId = null,
                                  string postContentColumnId       = null)
        {
            var model = LoadCategoryModel(slug, preContentColumnId, postContentColumnId);

            IndexSetup(model);

            var viewName = GetViewName(model);

            if (viewName == null || !viewName.StartsWith("DrillDown"))
            {
                LoadSubCategories(model);
                LoadProducts(model, productPageSize);
            }
            else
            {
                var filter = new CategoryFilterViewModel
                {
                    CategoryId           = model.LocalCategory.Bvin,
                    PageNumber           = 1,
                    IsConsiderSearchable = false
                };
                var sett    = new CategoryModuleSettings(ModuleContext.ModuleId);
                var ddModel = BuildDrillDownModel(filter, sett, 1, productPageSize);
                model.DrillDownJsonModel = JsonConvert.SerializeObject(ddModel);
                model.SortSelectList     = LoadSortSelectList(model.LocalCategory, GetSort(model.LocalCategory), true);
            }

            LogCategoryViewActivity(model.LocalCategory);

            return(View(viewName, model));
        }
Пример #3
0
        public Design()
        {
            var eventsService = new DesignEventsService();
            var result        = eventsService.GetEventPoolAsync(null, CancellationToken.None).Result;
            var pool          = result.Pool;

            pool.Items = result.ChildrenItems.Values.ToArray();
            var itemRequest = new ViewEventItemRequest(0, true);

            CategoryFilter = new CategoryFilterViewModel(new DesignPluginSettings(), pool);
            EventItem      = new EventItemViewModel(new DesignDataCache(), new DesignNavigationService(), new DesignBrowserService(),
                                                    new DesignEventsService(), new DesignPluginSettings(),
                                                    itemRequest);
            EventPool = new EventPoolViewModel(new DesignDataCache(), new DesignNavigationService(), new DesignEventsService(),
                                               new DesignPluginSettings(), new DesignEmailPrompt(), new DesignCodeScanner(),
                                               -1);
            Settings  = new SettingsViewModel(new DesignPluginSettings());
            TagFilter = new TagFilterViewModel(new DesignPluginSettings(), pool);

            CategoryFilter.OnNavigatedTo();
            EventItem.OnNavigatedToAsync();
            EventPool.OnNavigatedToAsync();
            Settings.OnNavigatedTo();
            TagFilter.OnNavigatedTo();
        }
Пример #4
0
        protected void LoadFilterSettings()
        {
            var filter = CategoryFilterViewModel.GetCategoryFilter(_views);

            chkbShowAllDocuments.Checked           = filter.ShowAllDocuments;
            chkbShowUncategorisedDocuments.Checked = filter.ShowUncategorizedDocuments;
        }
        public ActionResult CategoriesFilter()
        {
            CategoryFilterViewModel vView = new CategoryFilterViewModel();

            vView.CategoryDropDownList = new SelectList(db.Categories, "id", "CategoryName");
            //vView.Nominees = new List<Nominee>();
            vView.Category = db.Categories.Include(c => c.Nominees).First();

            return(View(vView));
        }
Пример #6
0
        public ActionResult Dashboard(DateTime? date, string userId)
        {
            var viewModel = new CategoryFilterViewModel
            {
                Categories = _categoryRepository.GetAll(),
                ApplicationUsers = _context.Users.ToList()
            };

            viewModel.Categories = GetCategoriesFiltered(viewModel.Categories, date, userId);
            return View(viewModel);
        }
Пример #7
0
        public ActionResult Index(string slug, int productPageSize = 9, string preContentColumnId = null,
                                  string postContentColumnId       = null)
        {
            var model = LoadCategoryModel(slug, preContentColumnId, postContentColumnId);

            IndexSetup(model);

            var viewName = GetViewName(model);

            if (viewName == null || !viewName.StartsWith("DrillDown"))
            {
                LoadSubCategories(model);
                LoadProducts(model, productPageSize);
            }
            else
            {
                var filter = new CategoryFilterViewModel
                {
                    CategoryId           = model.LocalCategory.Bvin,
                    PageNumber           = 1,
                    IsConsiderSearchable = false,
                    SortOrder            = model.LocalCategory.DisplaySortOrder
                };
                var sett    = new CategoryModuleSettings(ModuleContext.ModuleId);
                var ddModel = BuildDrillDownModel(filter, sett, 1, productPageSize);
                model.DrillDownJsonModel = JsonConvert.SerializeObject(ddModel);
                model.SortSelectList     = LoadSortSelectList(model.LocalCategory, GetSort(model.LocalCategory), true);
            }

            if (AuthorizedToEditCatalog())
            {
                if (!string.IsNullOrEmpty(model.LocalCategory.Bvin))
                {
                    model.CategoryAnalyticsUrl = string.Format(CategoryAnalyticsUrlFormat, model.LocalCategory.Bvin);
                    model.CategoryEditUrl      = string.Format(CategoryEditUrlFormat, model.LocalCategory.Bvin);
                }
                else
                {
                    model.CategoriesManagementUrl = CategoriesAdminUrl;
                    model.ProductsManagementUrl   = ProductsAdminUrl;
                }

                model.StoreAdminUrl           = DashboardAdminUrl;
                model.AuthorizedToEditCatalog = true;
            }
            else
            {
                model.AuthorizedToEditCatalog = false;
            }

            LogCategoryViewActivity(model.LocalCategory);

            return(View(viewName, model));
        }
        public ActionResult CategoriesFilter(CategoryFilterViewModel vView)
        {
            vView.CategoryDropDownList = new SelectList(db.Categories, "id", "CategoryName");
            vView.Category             = db.Categories.Include(c => c.Nominees).SingleOrDefault(c => c.Id == vView.SelectedId);
            if (vView.Category == null)
            {
                return(new HttpNotFoundResult());
            }

            return(View(vView));
        }
        public ActionResult DrillDown(CategoryFilterViewModel filter)
        {
            var sett       = new CategoryModuleSettings(filter.ModuleId);
            var pageNumber = filter.PageNumber ?? 1;
            var pageSize   = sett.PageSize;

            filter.IsConsiderSearchable = false;

            var model = BuildDrillDownModel(filter, sett, pageNumber, pageSize);

            return(Json(model));
        }
Пример #10
0
 protected void SaveFilterSettings()
 {
     try
     {
         CategoryFilterViewModel.SaveCategoryFilter(_views, new CategoryFilterViewModel
         {
             ShowAllDocuments           = chkbShowAllDocuments.Checked,
             ShowUncategorizedDocuments = chkbShowUncategorisedDocuments.Checked
         });
     }
     catch (Exception ex)
     {
         MainForm.ShowExceptionMessage(ex);
     }
 }
Пример #11
0
        public CategoryFilterPage()
        {
            InitializeComponent();

            Title = "Filter";

            //NavigationPage.SetBackButtonTitle(this, "");

            ToolbarItems.Add(new ToolbarItem
            {
                Text    = "Done",
                Command = new Command(() =>
                {
                    Navigation.PopModalAsync();
                })
            });

            BindingContext = viewModel = new CategoryFilterViewModel();
        }
        private DrillDownJsonModel BuildDrillDownModel(CategoryFilterViewModel filter, CategoryModuleSettings sett,
                                                       int pageNumber, int pageSize)
        {
            var model    = new DrillDownJsonModel();
            var manager  = new SearchManager(HccApp.CurrentRequestContext);
            var queryAdv = BuildDrillDownQuery(filter);
            var result   = manager.DoProductSearch(HccApp.CurrentStore.Id, null, queryAdv, pageNumber, pageSize);

            model.Manufacturers = sett.ShowManufacturers
                ? ToCheckBoxItems(result.Manufacturers, result.SelectedManufacturers, result.TotalCount)
                : new List <CheckboxFacetItem>();
            model.Vendors = sett.ShowVendors
                ? ToCheckBoxItems(result.Vendors, result.SelectedVendors, result.TotalCount)
                : new List <CheckboxFacetItem>();

            model.SubCategories = LoadDrillDownCategories(filter.CategoryId);
            model.SortOrder     = queryAdv.SortOrder;

            LoadDrillDownModel(model, pageNumber, pageSize, result);
            return(model);
        }
        private ProductSearchQueryAdv BuildDrillDownQuery(CategoryFilterViewModel filter)
        {
            var queryAdv = new ProductSearchQueryAdv
            {
                MinPrice      = filter.MinPrice,
                MaxPrice      = filter.MaxPrice,
                Manufacturers = filter.Manufacturers ?? new List <string>(),
                Vendors       = filter.Vendors ?? new List <string>(),
                Types         = filter.Types ?? new List <string>(),
                Categories    = new List <string> {
                    filter.CategoryId
                },
                Properties = string.IsNullOrEmpty(filter.PropertiesJson)
                    ? new Dictionary <long, string[]>()
                    : JsonConvert.DeserializeObject <Dictionary <long, string[]> >(filter.PropertiesJson),
                IsConsiderSearchable = filter.IsConsiderSearchable,
                IsSearchable         = filter.IsSearchable
            };

            var cat = HccApp.CatalogServices.Categories.Find(filter.CategoryId);

            queryAdv.SortOrder = filter.SortOrder != CategorySortOrder.None ? filter.SortOrder : cat != null ? cat.DisplaySortOrder : CategorySortOrder.None;
            return(queryAdv);
        }
Пример #14
0
        public Design()
        {
            var eventsService = new DesignEventsService();
            var result = eventsService.GetEventPoolAsync( null, CancellationToken.None ).Result;
            var pool = result.Pool;
            pool.Items = result.ChildrenItems.Values.ToArray();
            var itemRequest = new ViewEventItemRequest( 0, true );

            CategoryFilter = new CategoryFilterViewModel( new DesignPluginSettings(), pool );
            EventItem = new EventItemViewModel( new DesignDataCache(), new DesignNavigationService(), new DesignBrowserService(),
                                                new DesignEventsService(), new DesignPluginSettings(),
                                                itemRequest );
            EventPool = new EventPoolViewModel( new DesignDataCache(), new DesignNavigationService(), new DesignEventsService(),
                                                new DesignPluginSettings(), new DesignEmailPrompt(), new DesignCodeScanner(),
                                                -1 );
            Settings = new SettingsViewModel( new DesignPluginSettings() );
            TagFilter = new TagFilterViewModel( new DesignPluginSettings(), pool );

            CategoryFilter.OnNavigatedTo();
            EventItem.OnNavigatedToAsync();
            EventPool.OnNavigatedToAsync();
            Settings.OnNavigatedTo();
            TagFilter.OnNavigatedTo();
        }
Пример #15
0
        public IViewComponentResult Invoke(string nameFilter = "", string categoryFilter = "", string manufacturerFilter = "")
        {
            //
            // category filter
            //

            var categoryFilterViewModel = new List <CategoryFilterViewModel>();

            var allCategories = _categoryService.GetAllCategoriesWithoutParent();

            foreach (var category in allCategories)
            {
                var filterModel = new CategoryFilterViewModel {
                    Name = category.Name, Id = category.Id
                };
                var qty = 0;

                if (nameFilter.Length > 0)
                {
                    qty = filterModel.Quantity = _productService.Table()
                                                 .Include(x => x.Categories).ThenInclude(x => x.Category)
                                                 .Where(x => x.Name.ToLower().Contains(nameFilter.ToLower()))
                                                 .Where(x => x.Categories.Any(c => c.Category.SeoUrl.ToLower() == category.SeoUrl.ToLower()))
                                                 .Where(x => x.Published == true)
                                                 .AsNoTracking()
                                                 .Count();
                }
                if (manufacturerFilter.Length > 0)
                {
                    qty = filterModel.Quantity = _productService.Table()
                                                 .Include(x => x.Categories).ThenInclude(x => x.Category)
                                                 .Include(x => x.Manufacturers).ThenInclude(x => x.Manufacturer)
                                                 .Where(x => x.Manufacturers.Any(m => m.Manufacturer.Name.ToLower() == manufacturerFilter.ToLower()))
                                                 .Where(x => x.Categories.Any(c => c.Category.SeoUrl.ToLower() == category.SeoUrl.ToLower()))
                                                 .Where(x => x.Published == true)
                                                 .AsNoTracking()
                                                 .Count();
                }

                if (qty > 0)
                {
                    categoryFilterViewModel.Add(filterModel);
                }
            }

            //
            // manufacturer filter
            //

            var manufacturerFilterViewModel = new List <ManufacturerFilterViewModel>();

            var allManufacturer = _manufacturerService.GetAllManufacturers();

            foreach (var manufacturer in allManufacturer)
            {
                var filterModel = new ManufacturerFilterViewModel {
                    Name = manufacturer.Name, Id = manufacturer.Id
                };
                var qty = 0;

                qty = filterModel.Quantity = _productService.Table()
                                             .Include(x => x.Categories).ThenInclude(x => x.Category)
                                             .Include(x => x.Manufacturers).ThenInclude(x => x.Manufacturer)
                                             .Where(x => x.Manufacturers.Any(m => m.Manufacturer.Name.ToLower() == manufacturer.Name.ToLower()))
                                             .Where(x => x.Categories.Any(c => c.Category.Name.ToLower() == categoryFilter.ToLower()))
                                             .Where(x => x.Published == true)
                                             .AsNoTracking()
                                             .Count();

                if (qty > 0)
                {
                    manufacturerFilterViewModel.Add(filterModel);
                }
            }

            //
            // price filter
            //

            var allProducts = _productService.Table()
                              .Include(x => x.Categories).ThenInclude(x => x.Category)
                              .Include(x => x.Manufacturers).ThenInclude(x => x.Manufacturer)
                              .Where(x => x.Published == true)
                              .AsNoTracking()
                              .ToList();

            bool showPrice = false;

            if (nameFilter.Length > 0)
            {
                allProducts = allProducts
                              .Where(x => x.Name.ToLower().Contains(nameFilter.ToLower()))
                              .ToList();

                showPrice = true;
            }
            if (manufacturerFilter.Length > 0)
            {
                allProducts = allProducts
                              .Where(x => x.Manufacturers.Any(m => m.Manufacturer.Name.ToLower() == manufacturerFilter.ToLower()))
                              .ToList();

                showPrice = true;
            }
            if (categoryFilter.Length > 0)
            {
                allProducts = allProducts
                              .Where(x => x.Categories.Any(m => m.Category.Name.ToLower() == categoryFilter.ToLower()))
                              .ToList();

                showPrice = true;
            }

            List <int> range = new List <int>();
            List <IGrouping <int, decimal> > groupings = new List <IGrouping <int, decimal> >();
            List <decimal> allPrices = allProducts.Select(x => x.Price).ToList();

            if (showPrice)
            {
                range = new List <int> {
                    0, 100, 250, 500, 750, 1000, 1500, 2000, 3000, 4000, 5000, 10000
                };
                groupings = allPrices.GroupBy(price => range.FirstOrDefault(r => r >= price)).ToList();
            }

            //
            // result
            //

            var result = new FilterViewModel();

            result.CategoryFilterViewModel     = categoryFilterViewModel;
            result.ManufacturerFilterViewModel = manufacturerFilterViewModel;
            result.PriceGroupings = groupings.OrderBy(x => x.Key);
            result.PriceRange     = range;

            if (nameFilter.Length > 0)
            {
                result.FilterType = "name";
                ViewData["name"]  = nameFilter;
            }

            if (manufacturerFilter.Length > 0)
            {
                result.FilterType = "manufacturer";
            }

            if (categoryFilter.Length > 0)
            {
                result.FilterType = "category";
            }

            return(View(result));
        }