Пример #1
0
        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);
        }
Пример #2
0
        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"));
            }
        }
Пример #3
0
        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));
        }
Пример #4
0
 public static bool IsEmpty(this ItemSetFilterParams itemSetFilterParams)
 {
     return
         (string.IsNullOrEmpty(itemSetFilterParams.Name) &&
          itemSetFilterParams.ItemEntry == 0);
 }