public ActionResult FilterProducts(int?minPrix, int?maxPrix, string searchTerm, int?catId, int?sortBy) { FilterProductViewModel model = new FilterProductViewModel(); model.Produitts = ProductService.Instance.SearchProducts(minPrix, maxPrix, searchTerm, catId, sortBy); return(PartialView(model)); }
public async Task <List <ProductViewModel> > Find(FilterProductViewModel filter) { var response = await elasticClient.SearchAsync <ProductViewModel>( s => s.Index(defaultIndex).Query(q => q.Term(t => t.Name, filter.Name?.ToLower()))); return(response.Documents.ToList()); }
public async Task <IActionResult> Search([FromQuery] FilterProductViewModel filter) { try { return(Ok(await search.Find(filter))); } catch (Exception ex) { logger.Error($"Product/Search::{ex.Message}::{ex.InnerException}::{ex.StackTrace}::{ex.Data}"); return(StatusCode((int)HttpStatusCode.ExpectationFailed, ExceptionErrors.Extract(ex))); } }
public async Task <IActionResult> Index([Bind] FilterProductTypeViewModel filter) { FilterProductViewModel filterProductViewModel = new FilterProductViewModel { Products = await this._productService.Get(filter), Families = await this._productService.GetAllTypes(ProductService.Type.Family), Subfamilies = await this._productService.GetAllTypes(ProductService.Type.Subfamily) }; Uri defaultImage = this._documentService.LoadDefault(); ViewData["DefaultImage"] = defaultImage.AbsoluteUri; return(View(filterProductViewModel)); }
public ActionResult FilterProducts(string searchTerm, decimal?minPrice, decimal?maxPrice, int?categoryId, byte?sortBy, int?pageNo) { var filterModel = new FilterProductViewModel(); pageNo = pageNo.HasValue && pageNo.Value > 0 ? pageNo.Value : 1; var pageSize = ConfigurationService.Instance.ShopPageSize(); //6 filterModel.SortBy = sortBy; filterModel.CategoryId = categoryId; filterModel.SearchTerm = searchTerm; filterModel.FilledCategories = CategoriesService.Instance.GetFilledCategories(); filterModel.MaximumPrice = ProductService.Instance.GetMaxPrice(); int totalRecords = ProductService.Instance.GetShopProductsCount(searchTerm, minPrice, maxPrice, categoryId, sortBy); filterModel.Products = ProductService.Instance.GetShopProducts(searchTerm, minPrice, maxPrice, categoryId, sortBy, pageNo.Value, pageSize); filterModel.Pager = new Pager(totalRecords, pageNo, pageSize); filterModel.User = UserManager.FindById(User.Identity.GetUserId()); return(PartialView(filterModel)); }
public FilterPage() { InitializeComponent(); BindingContext = viewModel = new FilterProductViewModel(); }
public IActionResult GetFilterProducts([FromQuery] FilterProductViewModel filterProductViewModel) { string method = " SELECT p.* FROM UserProduct p "; string innerJoin = " INNER JOIN Product g ON g.Id = p.ProductId " + " INNER JOIN Model m ON m.Id = g.ModelId " + " INNER JOIN Category c ON c.Id = m.CategoryId "; string whereClause = ""; if (filterProductViewModel.Brand != null && filterProductViewModel.Brand.Count != 0) { innerJoin += " INNER JOIN dbo.Brand b " + " ON b.Id = g.BrandId "; whereClause += " (b.Name='" + filterProductViewModel.Brand[0] + "' "; for (int i = 1; i <= filterProductViewModel.Brand.Count(); i++) { whereClause += " OR b.Name='" + filterProductViewModel.Brand[i - 1] + "' "; } whereClause += ")"; } if (filterProductViewModel.Rating != 0) { innerJoin += " LEFT JOIN Users_Ratings r " + " ON r.UserId = p.UserId "; if (whereClause.Length != 0) { whereClause += " AND "; } whereClause += " (r.Rating >= " + filterProductViewModel.Rating + " OR r.Rating is NULL)"; } if (filterProductViewModel.Condition != null && filterProductViewModel.Condition.Count != 0) { if (whereClause.Length != 0) { whereClause += " AND "; } //method = method + " where p.condition ="; whereClause += " ("; for (int i = 0; i < filterProductViewModel.Condition.Count(); i++) { if (i != 0) { whereClause += " OR "; } whereClause += " p.condition="; if (filterProductViewModel.Condition[i] == "New") { whereClause += " 0 "; } if (filterProductViewModel.Condition[i] == "Used with Box") { whereClause += " 1 "; } if (filterProductViewModel.Condition[i] == "Used without Box") { whereClause += " 2 "; } } whereClause += " ) "; } if (filterProductViewModel.FromPrice != 0) { if (whereClause.Length != 0) { whereClause += " AND "; } whereClause += "p.price >" + filterProductViewModel.FromPrice; } if (filterProductViewModel.ToPrice != 0) { if (whereClause.Length != 0) { whereClause += " AND "; } whereClause += "p.price <" + filterProductViewModel.ToPrice; } if (whereClause.Length != 0) { whereClause += " AND "; } whereClause += " c.Id= " + filterProductViewModel.CategoryId; whereClause = " WHERE " + whereClause; method += innerJoin + whereClause; List <UserProduct> products = _FIlterRepository.GetFilterdProducts(method); return(Ok(products)); }