public static List <Func <CItemSet, bool> > AsFilters(this ItemSetFilterParams filterParams) { var filters = new List <Func <CItemSet, bool> >(); if (!string.IsNullOrEmpty(filterParams.Name)) { filters.Add(x => x.Name.ToLower().CompareTo(filterParams.Name.ToLower()) == 0 || x.Name.ToLower().Contains(filterParams.Name.ToLower())); } if (filterParams.ItemEntry != 0) { filters.Add(x => { return (x.Item1 == filterParams.ItemEntry || x.Item2 == filterParams.ItemEntry || x.Item3 == filterParams.ItemEntry || x.Item4 == filterParams.ItemEntry || x.Item5 == filterParams.ItemEntry || x.Item6 == filterParams.ItemEntry || x.Item7 == filterParams.ItemEntry || x.Item8 == filterParams.ItemEntry || x.Item9 == filterParams.ItemEntry || x.Item10 == filterParams.ItemEntry); }); } return(filters); }
public async Task <IActionResult> GetItemSetsAsync([FromQuery] ItemSetFilterParams filterParams) { try { var itemSetList = await _repository.ItemSetRepo.GetItemSetsAsync(filterParams); var paginatedList = await PaginatedList <CItemSet> .CreateAsync(itemSetList, filterParams.Page, filterParams.PageSize > 100? 100 : filterParams.PageSize); var responseObject = new { category = "itemsets", page = paginatedList.PageIndex, totalPages = paginatedList.TotalPages, pageSize = paginatedList.PageSize, items = paginatedList.CreateResultObject() }; _logger.LogInfo($"Returned itemsets. {filterParams.ToString()}"); return(Ok(responseObject)); } catch (Exception ex) { _logger.LogError($"Some error in the GetItemSetsAsync method: {ex}"); return(StatusCode(500, "Internal server error")); } }
public async Task <IEnumerable <CItemSet> > GetItemSetsAsync(ItemSetFilterParams filterParams) { IEnumerable <CItemSet> itemSets; if (filterParams.IsEmpty()) { itemSets = await FindAllAsync(); } else { itemSets = await FindAllByConditionsAsync(filterParams.AsFilters(), filterParams.FilterType, filterParams.ToCacheString()); } return(itemSets.OrderItemSets(filterParams.SortOrder)); }
public static bool IsEmpty(this ItemSetFilterParams itemSetFilterParams) { return (string.IsNullOrEmpty(itemSetFilterParams.Name) && itemSetFilterParams.ItemEntry == 0); }