public async Task <QueryResult <CallMetrics> > Handle(GetCallMetricsByPeriodSelectionQuery request, CancellationToken cancellationToken)
        {
            var dateRange = DatePeriodHelper.GetDateRangeFromPeriodSelection(request.DatePeriod);
            var cacheKey  = $"call-{dateRange.StartDate.ToString()}-{dateRange.EndDate.ToString()}";

            if (request.RefreshCache)
            {
                _cache.Remove(cacheKey);
            }

            var metrics = await _cache.GetOrCreateAsync(cacheKey, async entry =>
            {
                entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(23);

                return(await _callRepository.GetOverviewCallMetrics(dateRange.StartDate,
                                                                    dateRange.EndDate,
                                                                    dateRange.PreviousPeriodStartDate,
                                                                    dateRange.PreviousPeriodEndDate));
            });

            metrics.CurrentPeriodLabel = dateRange.CurrentPeriodLabel;
            metrics.PriorPeriodLabel   = dateRange.PriorPeriodLabel;

            return(new QueryResult <CallMetrics>(result: metrics, type: QueryResultTypeEnum.Success));
        }