/// <summary> /// return view for products from top 3 categories with top 3 product in each category /// </summary> /// <returns>view</returns> public ActionResult Index() { CategoryProductBusiness categoryProductBusiness = new CategoryProductBusiness(); var categoryProductViewConfig = new MapperConfiguration(cfg => { cfg.CreateMap <ProductDTO, ProductViewModel>(); cfg.CreateMap <VariantDTO, VariantViewModel>(); cfg.CreateMap <CategoryProductDTO, CategoryProductViewModel>(); cfg.CreateMap <ProductAnalysisDTO, ProductAnalysisViewModel>(); cfg.CreateMap <VariantImageDTO, VariantImageViewModel>(); }); /* * accesing the home view controller */ IMapper categoriesViewMapper = new Mapper(categoryProductViewConfig); try { ProductAnalysisDTO categoryProduct = categoryProductBusiness.GetTopProduct(); ProductAnalysisViewModel data = new ProductAnalysisViewModel(); data = categoriesViewMapper.Map <ProductAnalysisDTO, ProductAnalysisViewModel>(categoryProduct); return(View(data)); } catch (Exception) { return(RedirectToAction("ErrorViewShow", "HttpErrors", new { msg = "Internal error" })); } }
/// <summary> /// get top selleing products and catoriges /// </summary> /// <returns></returns> public ProductAnalysisDTO GetTopProduct() { ProductAnalysisDTO productAnalysisDTO = new ProductAnalysisDTO(); var Categories = dbContext.Categories.Include(c => c.Products).OrderByDescending(c => c.ProductsSold).ToList(); Debug.WriteLine(dbContext.Categories.Include(c => c.Products).OrderByDescending(c => c.ProductsSold).ToList()); productAnalysisDTO.Categories = categoryListMapper.Map <IEnumerable <Category>, IEnumerable <CategoryProductDTO> >(Categories); return(productAnalysisDTO); }
/// <summary> /// get the Top 3 Category for 3 product in each Category and showing all category product with 5 product /// </summary> /// <returns>ProductAnalysisDTO</returns> public ProductAnalysisDTO GetTopProduct() { ProductAnalysisDTO productAnalysisDTO = categoryProductDatabase.GetTopProduct(); int counter = 0; foreach (var category in productAnalysisDTO.Categories) { if (counter < 3) { category.Products = category.Products.Take(3); } else { category.Products = category.Products.Take(5); } counter++; } return(productAnalysisDTO); }