public async Task <ActionResult <IImmutableList <BackpackModel> > > GetMyBackpacksAsync() { var sub = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value; var query = new GetMyBackpacks(sub); var result = await _mediator.Send(query); if (result.IsFailure) { return(BadRequest()); } return(Ok(result.Value)); }
public async Task <Result <IImmutableList <BackpackModel> > > Handle(GetMyBackpacks request, CancellationToken cancellationToken) { var isValid = await _validator.IsValidAsync(request); if (!isValid) { return(Result.Failure <IImmutableList <BackpackModel> >("Validation failed")); } var backpacks = await _context.BackpacksToUsers .Where(btu => btu.User.Sub == request.UserSub) .Where(btu => btu.IsOwner) .Select(btu => new BackpackModel { Name = btu.Backpack.Name, Id = btu.Backpack.Id, }) .ToListAsync(cancellationToken); return(backpacks.ToImmutableList()); }