public async Task <ActionResult <IImmutableList <BackpackItemModel> > > GetBackpackCategoryItemsAsync([FromRoute] Guid backpackId, [FromRoute] BackpackCategoryType categoryId) { var sub = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value; var query = new GetBackpackCategoryItems(sub, backpackId, categoryId); var result = await _mediator.Send(query); if (result.IsFailure) { return(BadRequest()); } return(Ok(result.Value)); }
public async Task <Result <IImmutableList <BackpackItemModel> > > Handle(GetBackpackCategoryItems request, CancellationToken cancellationToken) { var isValid = await _validator.IsValidAsync(request); if (!isValid) { return(Result.Failure <IImmutableList <BackpackItemModel> >("Validation failed")); } var backpackItems = await _context.BackpackItems .Where(item => item.BackpackId == request.BackpackId && item.BackpackCategory == request.CategoryId) .Select(item => new BackpackItemModel { Id = item.Id, Amount = item.Amount, CategoryType = item.BackpackCategory, ExpirationDate = item.ExpirationDate }) .ToListAsync(cancellationToken); return(backpackItems.ToImmutableList()); }