public async Task <List <MetricResource> > Handle(GetAllMetricsQuery request, CancellationToken cancellationToken)
        {
            var metrics = await _dataContext.Metrics
                          .Page(request.Page, request.Limit)
                          .MetricOrder()
                          .AsNoTracking()
                          .ToListAsync(cancellationToken);

            return(metrics.Select(MetricResource.FromMetric).ToList());
        }
        public async Task <ActionResult <PagedResponse <MetricResource> > > GetMetricsAsync([FromQuery] GetAllMetricsQuery metricsQuery)
        {
            var metricResources = await _mediator.Send(metricsQuery);

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

            return(PageService.CreatePaginatedResponse(metricsQuery.Page, metricsQuery.Limit, metricResources));
        }