public static IQueryable <Models.Paraglider> SortParagliderBy(this IQueryable <Models.Paraglider> paragliders, ParagliderSort sortBy) { switch (sortBy) { case ParagliderSort.NoSort: return(paragliders); case ParagliderSort.CommissionDate: return(paragliders .OrderBy(p => p.CommissioningDate) .ThenBy(p => p.Name)); case ParagliderSort.RevisionDate: return(paragliders.OrderBy(p => p.LastRevisionDate)); case ParagliderSort.ModelParaglider: return(paragliders.OrderBy(p => p.ParagliderModel)); case ParagliderSort.Name: return(paragliders.OrderBy(p => p.Name)); default: throw new ArgumentOutOfRangeException(); } }
// GET: Paraglidings public async Task <IActionResult> Index(ParaglidersFilters filter, ParagliderSort sort, string paraglidersortInfo, string paragliderfilterInfo, ParaglidersSearch search, string ParagliderserchInfo) { IEnumerable <ParagliderDto> listParagliders = null; string textToSort = ""; string textTosearch = ""; string textTofilter = ""; // to filter if (filter == ParaglidersFilters.CommissionDate) { textTofilter = "CommissionDate"; } if (filter == ParaglidersFilters.ModelParaglider) { textTofilter = "ParagliderModelId"; } if (filter == ParaglidersFilters.RevisionDate) { textTofilter = "LastRevisionDate"; } // to search if (search == ParaglidersSearch.LastRevisionDate) { textTosearch = "DateLastRevision"; } if (search == ParaglidersSearch.Name) { textTosearch = "Name"; } // sort if (sort == ParagliderSort.CommissionDate) { textToSort = "CommissionDate"; } if (sort == ParagliderSort.ModelParaglider) { textToSort = "ParagliderModelId"; } if (sort == ParagliderSort.RevisionDate) { textToSort = "LastRevisionDate"; } using (var httpClient = new HttpClient()) { string urlfullpath = $"http://localhost:50106/api/v1/paragliders?SortBy={sort}&{textToSort}={paraglidersortInfo}&FilterBy={filter}&{textTofilter}={paragliderfilterInfo}&SearchBy={search}&{textTosearch}={ParagliderserchInfo}"; using (var response = await httpClient.GetAsync(urlfullpath)) { if (response.StatusCode == HttpStatusCode.OK) { string apiResponse = await response.Content.ReadAsStringAsync(); listParagliders = JsonConvert.DeserializeObject <List <ParagliderDto> >(apiResponse); } else { listParagliders = Enumerable.Empty <ParagliderDto>(); } } } //to make filter var paragliderFilter = Enum.GetValues(typeof(ParaglidersFilters)) .Cast <ParaglidersFilters>() .Select(p => new SelectListItem { Text = p.ToString(), Value = ((int)p).ToString() }).ToList(); ViewData["paragliderFilterItems"] = new SelectList(paragliderFilter, "Value", "Text"); // To make search var paragliderSearch = Enum.GetValues(typeof(ParaglidersSearch)) .Cast <ParaglidersSearch>() .Select(d => new SelectListItem { Text = d.ToString(), Value = ((int)d).ToString() }).ToList(); ViewData["paragliderSearchItems"] = new SelectList(paragliderSearch, "Value", "Text"); //to sort var paragliderSort = Enum.GetValues(typeof(ParagliderSort)) .Cast <ParagliderSort>() .Select(d => new SelectListItem { Text = d.ToString(), Value = ((int)d).ToString() }).ToList(); ViewData["paragliderSortItems"] = new SelectList(paragliderSort, "Value", "Text"); return(View(listParagliders)); }