// GET: Courses public async Task <IActionResult> Index(TraineeShipSorts pTraineeshipSort, TraineeshipFilters filter, TraineeshipSearchs search, string searchInfo) { IEnumerable <TraineeShipDto> listTraineeships = null; string textToSearch = ""; if (search == TraineeshipSearchs.License) { textToSearch = "License"; } if (search == TraineeshipSearchs.Price) { textToSearch = "Price"; } using (var httpClient = new HttpClient()) { using (var response = await httpClient.GetAsync($"http://localhost:50106/api/v1/Traineeships?SortBy={pTraineeshipSort}&FilterBy={filter}&SearchBy={search}&{textToSearch}={searchInfo}")) { if (response.StatusCode == HttpStatusCode.OK) { string apiResponse = await response.Content.ReadAsStringAsync(); listTraineeships = JsonConvert.DeserializeObject <List <TraineeShipDto> >(apiResponse); } else { listTraineeships = Enumerable.Empty <TraineeShipDto>(); } } } var traineeshipFilter = Enum.GetValues(typeof(TraineeshipFilters)) .Cast <TraineeshipFilters>() .Select(d => new SelectListItem { Text = d.ToString(), Value = ((int)d).ToString() }).ToList(); ViewData["traineeshipFilterItems"] = new SelectList(traineeshipFilter, "Value", "Text"); var traineeshipSearch = Enum.GetValues(typeof(TraineeshipSearchs)) .Cast <TraineeshipSearchs>() .Select(d => new SelectListItem { Text = d.ToString(), Value = ((int)d).ToString() }).ToList(); ViewData["traineeshipSearchItems"] = new SelectList(traineeshipSearch, "Value", "Text"); return(View(listTraineeships)); }
public static IQueryable <Models.Traineeship> FilterTraineeshipBy(this IQueryable <Models.Traineeship> traineeships, TraineeshipFilters filterBy) { switch (filterBy) { case TraineeshipFilters.NoFilter: return(traineeships); case TraineeshipFilters.present: return(traineeships .Where(t => t.StartDate <= DateTime.Today) .Where(t => t.EndDate >= DateTime.Today)); case TraineeshipFilters.future: return(traineeships .Where(t => t.StartDate > DateTime.Today)); case TraineeshipFilters.past: return(traineeships .Where(t => t.EndDate <= DateTime.Today)); default: throw new ArgumentOutOfRangeException (nameof(filterBy), filterBy, null); } }