public ActionResult SearchProducts(string q) // make global?? { ViewModels.ProductViewModels.ListProductsViewModel productListViewModel = Management.ActionHandler.PopulateProductListViewModel(); Management.SearchHandler searchHandler = new Management.SearchHandler(); productListViewModel.Products = productListViewModel.Products.Where(x => searchHandler.Matches(x, q)).ToList(); if (searchHandler.IsSearchedWithHits) { productListViewModel.IsSearchedWithHits = true; if (productListViewModel.Products.Count == 1) { return(RedirectToAction("ShowProduct", new { productId = productListViewModel.Products[0].Id })); } } return(View("Index", productListViewModel)); }
public static ViewModels.ProductViewModels.ListProductsViewModel PopulateProductListViewModel() { var viewmodel = new ViewModels.ProductViewModels.ListProductsViewModel(); using (var entities = new EntityModel.DatabaseContext()) { viewmodel.Products.AddRange(entities.Products.Where(c => c.IsValid).Select(x => new ViewModels.ProductViewModels.ListProductsViewModel.ProductViewModel { Id = x.Id, Name = x.Name, Price = x.Price, Description = x.Description, ProductCategoryName = entities.ProductCategorys.FirstOrDefault(z => z.Id == x.ProductCategoryId).Name, ProductCategoryId = entities.Products.FirstOrDefault(p => p.Id == x.ProductCategoryId).Id })); } return(viewmodel); }
public ActionResult ShowProduct(int productId) { ViewModels.ProductViewModels.ListProductsViewModel viewmodel = Management.ActionHandler.PopulateProductListViewModel(); return(View(viewmodel.Products[productId - 1])); }