// 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));
        }
Exemplo n.º 2
0
        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);
            }
        }