Esempio n. 1
0
        public async Task <PaginatedList <TicketDto> > Handle(GetMyTicketsQuery request, CancellationToken cancellationToken)
        {
            await ValidateRequest(request);

            return(await _context.Conversations.Include(x => x.ConversationUsers)
                   .Where(x => x.OrganizationId == request.OrganizationId && x.ConversationUsers.Any(y => y.IsDisabled == false && y.ConversationId == x.Id && y.UserId == _currentUser.UserId))
                   .ProjectTo <TicketDto>(_mapper.ConfigurationProvider)
                   .PaginatedListAsync(request.PageNumber, request.PageSize));;
        }
Esempio n. 2
0
        private async Task ValidateRequest(GetMyTicketsQuery request)

        {
            if (await _context.Organizations.AsNoTracking().AnyAsync(x => x.Id == request.OrganizationId) == false)
            {
                throw new NotFoundException(nameof(Organization), request.OrganizationId);
            }

            if (await _context.OrganizationUsers.AsNoTracking().AnyAsync(x => x.OrganizationId == request.OrganizationId && x.UserId == _currentUser.UserId) == false)
            {
                throw new ForbiddenAccessException();
            }
        }