public ActionResult Index(string category) { if (category == "select") { category = null; } string requestURL = assembleRequestUrl(category); // Create web request string solrSearchResponse = webRequest(requestURL); // Parse results JObject parsedResults = JObject.Parse(solrSearchResponse); IList <JToken> results = parsedResults["response"]["docs"].Children().ToList(); // Serialize JSON results into .NET objects List <CharityList> resultsList = new List <CharityList>(); foreach (JToken result in results) { // JToken.ToObject is a helper method that uses JsonSerializer internally CharityList searchResult = result.ToObject <CharityList>(); resultsList.Add(searchResult); } resultsList.Sort(); IEnumerable <CharityList> searchList = resultsList; CharityListViewModel viewModel = new CharityListViewModel(searchList); return(this.View("Default", viewModel)); }
// GET: VictoriaCharities public ActionResult Index(int?page, string searchString, string currentFilter, string Category, string currentCategory) { decimal category; if (!String.IsNullOrEmpty(Category)) { category = decimal.Parse(Category); } else if (!String.IsNullOrEmpty(currentCategory)) { category = decimal.Parse(currentCategory); } else { category = -1; } var results = from x in db.VictoriaCharities select x; int pagesize = 9, pageindex = 1; CharityList temp = new CharityList(); if (searchString != null || Category != null) { page = 1; } else { Category = currentCategory; searchString = currentFilter; } // Showing data based on the search query string and the star rating selected from the dropdown. ViewData["CurrentFilter"] = searchString; ViewData["currentCategory"] = Category; if (!String.IsNullOrEmpty(searchString) && category != -1) { switch (category) { case 1: results = results.Where(s => (s.charity_name.Contains(searchString) || s.town_city.Contains(searchString)) && s.charity_size.Equals("Large") ); break; case 2: results = results.Where(s => (s.charity_name.Contains(searchString) || s.town_city.Contains(searchString)) && s.charity_size.Equals("Medium") ); break; case 3: results = results.Where(s => (s.charity_name.Contains(searchString) || s.town_city.Contains(searchString)) && s.charity_size.Equals("Small") ); break; } } else if (!String.IsNullOrEmpty(searchString) && category == -1) { results = results.Where(s => s.charity_name.Contains(searchString) || s.town_city.Contains(searchString)); } else if (String.IsNullOrEmpty(searchString) && category != -1) { switch (category) { case 1: results = results.Where(s => s.charity_size.Equals("Large")); break; case 2: results = results.Where(s => s.charity_size.Equals("Medium")); break; case 3: results = results.Where(s => s.charity_size.Equals("Small")); break; } } else { results = from x in db.VictoriaCharities select x; } pageindex = page.HasValue ? Convert.ToInt32(page) : 1; var list = results.ToList(); temp.Charities = list.ToPagedList(pageindex, pagesize); List <SelectListItem> Category_list = new List <SelectListItem>(); Category_list.Add(new SelectListItem() { Text = "All Charity Sizes", Value = "-1" }); Category_list.Add(new SelectListItem() { Text = "Large", Value = "1" }); Category_list.Add(new SelectListItem() { Text = "Medium", Value = "2" }); Category_list.Add(new SelectListItem() { Text = "Small", Value = "3" }); this.ViewBag.Category = new SelectList(Category_list, "Value", "Text", currentCategory); return(View(temp)); }