// 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)); }
public static IQueryable <Models.ParagliderModel> ParagliderModelsSortsBy(this IQueryable <Models.ParagliderModel> paragliderModels, ParagliderModelsSorts sortBy) { switch (sortBy) { case ParagliderModelsSorts.NoSort: return(paragliderModels); case ParagliderModelsSorts.Heavyweight: return(paragliderModels .OrderBy(pa => pa.MaxWeightPilot) .ThenBy(pa => pa.Size)); case ParagliderModelsSorts.Thinweight: return(paragliderModels.OrderByDescending(pa => pa.MinWeightPilot) .ThenBy(pa => pa.Size)); case ParagliderModelsSorts.Pilotweight: return(paragliderModels.OrderBy(pa => pa.MinWeightPilot & pa.MaxWeightPilot)); default: throw new ArgumentOutOfRangeException (nameof(sortBy), sortBy, null); } }