Exemple #1
0
        public async Task <Result <IImmutableList <GropInviteModel> > > Handle(GetGroupInvites request, CancellationToken cancellationToken)
        {
            var isValid = await _validator.IsValidAsync(request);

            if (!isValid)
            {
                return(Result.Failure <IImmutableList <GropInviteModel> >("Validation failed"));
            }

            var groupInvites = await _context
                               .GroupInvites
                               .Where(gi => gi.InvitationReceiver.Sub == request.UserSub)
                               .Select(x => new GropInviteModel
            {
                SenderId        = x.InvitationSenderId,
                GroupId         = x.GroupId,
                GroupName       = x.Group.Name,
                InviteId        = x.Id,
                SenderFirstName = x.InvitationSender.FirstName,
                SenderLastName  = x.InvitationSender.LastName
            })
                               .ToListAsync(cancellationToken);

            return(groupInvites.ToImmutableList());
        }
        public async Task <ActionResult <GropInviteModel> > GetGroupInvitesAsync()
        {
            var sub    = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value;
            var query  = new GetGroupInvites(sub);
            var result = await _mediator.Send(query);

            if (result.IsFailure)
            {
                return(BadRequest());
            }

            return(Ok(result.Value));
        }