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