// 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)); }
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); } }