public override async Task <GroupedDomoData> GetDataAsync(Report report, GenerationSettings settings)
        {
            var header = await GetDataHeadersAsync(report);

            var response = await domoRepository.GetDataAsync(report);

            var data = new DomoCSVParser().Parse(response, report, header, settings);

            return(domoDataGroupingService.Group(data, report, settings));
        }
        public override async Task <GroupedDomoData> GetDataAsync(Report report, GenerationSettings settings)
        {
            var header = await GetDataHeadersAsync(report);

            var cachableResponse = await domoCache.GetDataCacheAsync(report.DataSet);

            if (string.IsNullOrEmpty(cachableResponse))
            {
                cachableResponse = await domoRepository.GetDataAsync(report);

                await domoCache.SetDataCacheAsync(report.DataSet, cachableResponse);
            }

            var data = new DomoCSVParser().Parse(cachableResponse, report, header, settings);

            return(domoDataGroupingService.Group(data, report, settings));
        }