Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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());
        }