public static IQueryable <Models.ParagliderModel> FilterParagliderModelBy(this IQueryable <Models.ParagliderModel> paraglidermodels, PargliderModelFilters filterBy, int pilotweight) { switch (filterBy) { case PargliderModelFilters.NoFilter: return(paraglidermodels); case PargliderModelFilters.Heavyweight: return(paraglidermodels .Where(p => p.MaxWeightPilot <= 250 && p.MaxWeightPilot >= 100)); case PargliderModelFilters.Thinweight: return(paraglidermodels .Where(p => p.MinWeightPilot >= 0 && p.MinWeightPilot < 79)); case PargliderModelFilters.Pilotweight: return(paraglidermodels .Where(p => p.MinWeightPilot <= pilotweight && p.MaxWeightPilot >= pilotweight)); default: throw new ArgumentOutOfRangeException (nameof(filterBy), filterBy, null); } }
// GET: ModelParaglidings public async Task <IActionResult> Index(ParagliderModelsSorts pParagliderModelSort, PargliderModelFilters filter, string filterInfo, ParagliderModelSearch search, string searchInfo) { IEnumerable <ParagliderModelDto> listParagliderModels = null; string textToSort = ""; string textToSearch = ""; if (filter == PargliderModelFilters.Heavyweight) { textToSort = "Heavyweight"; } if (filter == PargliderModelFilters.Pilotweight) { textToSort = "Pilotweight"; } if (search == ParagliderModelSearch.ApprovalNumber) { textToSearch = "ApprovalNumber"; } if (search == ParagliderModelSearch.Size) { textToSearch = "Size"; } using (var httpClient = new HttpClient()) { string FulApiUrl = $"http://localhost:50106/api/v1/paragliderModels?SortBy={pParagliderModelSort}&FilterBy={filter}&{textToSort}={filterInfo}&SearchBy={search}&{textToSearch}={searchInfo}"; using (var response = await httpClient.GetAsync(FulApiUrl)) { if (response.StatusCode == HttpStatusCode.OK) { string apiResponse = await response.Content.ReadAsStringAsync(); listParagliderModels = JsonConvert.DeserializeObject <List <ParagliderModelDto> >(apiResponse); } else { listParagliderModels = Enumerable.Empty <ParagliderModelDto>(); } } } var paraglidermodelFilters = Enum.GetValues(typeof(PargliderModelFilters)) .Cast <PargliderModelFilters>() .Select(d => new SelectListItem { Text = d.ToString(), Value = ((int)d).ToString() }).ToList(); ViewData["paraglidermodelFilterItems"] = new SelectList(paraglidermodelFilters, "Value", "Text"); var paraglidermodelSearch = Enum.GetValues(typeof(ParagliderModelSearch)) .Cast <ParagliderModelSearch>() .Select(d => new SelectListItem { Text = d.ToString(), Value = ((int)d).ToString() }).ToList(); ViewData["paraglidermodelSearchItems"] = new SelectList(paraglidermodelSearch, "Value", "Text"); return(View(listParagliderModels)); }