public async Task <IActionResult> GetConsumables(
            [FromQuery] ConsumableParameters consumableParameters)
        {
            var(consumables, metadata) = await _consumableService.GetManyAsync(consumableParameters);

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata));

            return(Ok(consumables));
        }
Beispiel #2
0
        public async Task <(IEnumerable <ConsumableDto>, Metadata)> GetManyAsync(
            ConsumableParameters consumableParameters)
        {
            var consumables = await _repositoryManager.Consumable.GetAllConsumablesAsync(CurrentUserId, consumableParameters);

            if (consumables == null)
            {
                _logger.LogWarning("There are no consumables in db!");
            }

            return(_mapper.Map <IEnumerable <ConsumableDto> >(consumables), consumables?.Metadata);
        }
Beispiel #3
0
        public async Task <PagedList <Consumable> > GetAllConsumablesAsync(Guid userId,
                                                                           ConsumableParameters consumableParameters)
        {
            var result = await FindByCondition(x => x.User.Id.Equals(userId))
                         .FilterBy(consumableParameters)
                         .Search(consumableParameters.SearchTerm)
                         .Sort(consumableParameters.OrderBy)
                         .Include(x => x.Device)
                         .ToListAsync();

            return(PagedList <Consumable> .ToPagedList(result, consumableParameters.PageNumber,
                                                       consumableParameters.PageSize));
        }
Beispiel #4
0
        public static IQueryable <Consumable> FilterBy(this IQueryable <Consumable> queryable,
                                                       ConsumableParameters consumableParameters)
        {
            var filters = consumableParameters.GetFilters();

            foreach (var filter in filters)
            {
                queryable = filter switch
                {
                    "Name" => queryable.Where(x => x.Name.Equals(consumableParameters.Name)),
                    "Category" => queryable.Where(x => x.Category.Equals(consumableParameters.Category)),
                    "Status" => queryable.Where(x => x.Status.Equals(consumableParameters.Status)),
                    "Manufacturer" => queryable.Where(x => x.Manufacturer.Equals(consumableParameters.Manufacturer)),
                    "OfficeAddress" => queryable.Where(x => x.OfficeAddress.Equals(consumableParameters.OfficeAddress)),
                    _ => queryable
                };
            }

            return(queryable);
        }