public async Task <List <ComponentGroupResource> > Handle(GetAllComponentGroupsQuery request, CancellationToken cancellationToken)
        {
            var groups = await _dataContext.ComponentGroups
                         .Page(request.Page, request.Limit)
                         .Include(x => x.Components)
                         .ComponentGroupOrder()
                         .AsNoTracking()
                         .ToListAsync(cancellationToken);

            return(groups.Select(ComponentGroupResource.FromComponentGroup).ToList());
        }
        public async Task <ActionResult <PagedResponse <ComponentGroupResource> > > GetComponentGroupsAsync([FromQuery] GetAllComponentGroupsQuery groupQuery)
        {
            var groupResources = await _mediator.Send(groupQuery);

            if (groupResources == null)
            {
                return(NotFound());
            }

            return(PageService.CreatePaginatedResponse(groupQuery.Page, groupQuery.Limit, groupResources));
        }