public static IQueryable <Models.Paraglider> FilterParaglidersBy(this IQueryable <Models.Paraglider> paragliders, ParaglidersFilters filterBy, string pCommissionDate = null, string pLatRevisionDate = null, int pParagliderModelId = 0)
        {
            switch (filterBy)
            {
            case ParaglidersFilters.NoFilter:
                return(paragliders);

            case ParaglidersFilters.NotActive:
                return(paragliders.IgnoreQueryFilters().Where(pa => pa.IsActive == false));

            case ParaglidersFilters.CommissionDate:
            {
                return(paragliders = paragliders.Where(pc => pc.CommissioningDate >= DateTime.Parse(pCommissionDate)));
            }

            case ParaglidersFilters.RevisionDate:
            {
                return(paragliders = paragliders.Where(plr => plr.LastRevisionDate > DateTime.Parse(pLatRevisionDate)));
            }

            case ParaglidersFilters.ModelParaglider:
            {
                return(paragliders = paragliders.Where(pm => pm.ParagliderModel.ID == pParagliderModelId));
            }

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Exemplo n.º 2
0
        // 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));
        }