// GET: Subscriptions
        public async Task <IActionResult> Index(SubscriptionSorts pSortSubscription = SubscriptionSorts.noSubscriptionOrder, SubscriptionFilters filter = SubscriptionFilters.NoFilter, decimal?filterInfo = 0, SubscriptionSearches search = SubscriptionSearches.NoSearch, decimal?searchInfo = 0)
        {
            IEnumerable <SubscriptionDto> listSubscriptions = null;
            string filterNameAsString = null;
            string searchNameAsString = null;

            if (filter != SubscriptionFilters.NoFilter)
            {
                filterNameAsString = "AmountTrigger";
            }
            if (search != SubscriptionSearches.NoSearch)
            {
                searchNameAsString = "SearchingValue";
            }
            using (var httpClient = new HttpClient())
            {
                string url = $"http://localhost:50106/api/v1/subscriptions?OrderBy={pSortSubscription}&FilterBy={filter}&{filterNameAsString}={filterInfo}&SearchBy={search}&{searchNameAsString}={searchInfo}";
                using (var response = await httpClient.GetAsync(url))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    listSubscriptions = JsonConvert.DeserializeObject <List <SubscriptionDto> >(apiResponse);
                }
            }
            var subFilter = Enum.GetValues(typeof(SubscriptionFilters))
                            .Cast <SubscriptionFilters>()
                            .Select(d => new SelectListItem
            {
                Text  = d.ToString(),
                Value = ((int)d).ToString()
            }).ToList();

            ViewData["subscriFilter"] = new SelectList(subFilter, "Value", "Text");

            var subSearch = Enum.GetValues(typeof(SubscriptionSearches))
                            .Cast <SubscriptionSearches>()
                            .Select(d => new SelectListItem
            {
                Text  = d.ToString(),
                Value = ((int)d).ToString()
            }).ToList();

            ViewData["subscriSearch"] = new SelectList(subSearch, "Value", "Text");



            return(View(listSubscriptions));
        }
Example #2
0
        public static IQueryable <Models.Subscription> SearchSubscriptionBy(this IQueryable <Models.Subscription> subscriptions, SubscriptionSearches pSearchBy, decimal pSearchinValue)
        {
            switch (pSearchBy)
            {
            case SubscriptionSearches.NoSearch:
                return(subscriptions);

            case SubscriptionSearches.Year:
                return(subscriptions.Where(s => s.Year == pSearchinValue));

            case SubscriptionSearches.Amount:
                return(subscriptions.Where(s => s.SubscriptionAmount == pSearchinValue));

            default:
                throw new ArgumentOutOfRangeException
                          (nameof(pSearchBy), pSearchBy, null);
            }
        }