Exemple #1
0
        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();
            }
        }
Exemple #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));
        }