public async Task ReportView()
        {
            string viewName = nameof(this.ReportView);
            //seed the data
            DateTimeOffset timestamp = DateTimeOffset.UtcNow;
            FileInfo app = this.LaunchTestsAppNewInstance(out _, Actions.ReportViewUsage, Apps.Keys.AutomaticTestsClient, Apps.PackageNames.AutomaticTestsClientAppV1, "", viewName: viewName);


            TelemetryQueryRequest request = TelemetryQueryRequest.CreateFull(Apps.Keys.AutomaticTestsClient);
            TelemetryQueryResponse queryResponse = await this.CheckTelemetry(request);
            TelemetrySummaryDto summary = null;
            TelemetryAwareComponentDto viewComponent = null;



                viewComponent = queryResponse.TelemetryAware.First(x => x.ComponentKey == viewName);
                Assert.IsNotNull(viewComponent);
                summary = viewComponent.Summaries.OrderByDescending(x=>x.LastReported).FirstOrDefault();
                Assert.IsNotNull(summary);

            var userName = summary.UserName;

            timestamp = DateTimeOffset.UtcNow;

            app= this.LaunchTestsAppNewInstance(out _, Actions.ReportViewUsage, Apps.Keys.AutomaticTestsClient, Apps.PackageNames.AutomaticTestsClientAppV1, "", viewName: viewName);
            
            //Assert.IsNull(response.Exception);
            //Assert.AreEqual(HttpStatusCode.Accepted, response.StatusCode);

            queryResponse = await this.CheckTelemetry(request);

            viewComponent = queryResponse.TelemetryAware.First(x => x.ComponentKey == viewName);

            if (summary == null) //first time ever the test is run, the summary is empty - let it do work and fail 
            {
                summary = viewComponent.Summaries.FirstOrDefault(x => x.UserName == userName);
            }

            var summaryAfterUpdate = viewComponent.Summaries.FirstOrDefault(x => x.UserName== userName);
            Assert.IsNotNull(summaryAfterUpdate);

            Assert.Greater(summaryAfterUpdate.SummaryCount, summary.SummaryCount);
            Assert.Greater(summaryAfterUpdate.LastReported, summary.LastReported);
            Assert.Greater(summaryAfterUpdate.Details.Count, summary.Details.Count);
            Assert.That(summaryAfterUpdate.Details.OrderByDescending(x => x.Timestamp).First().Timestamp, Is.EqualTo(timestamp).Within(TimeSpan.FromSeconds(5.0)));

        }
        private static void ProcessSummaries(TelemetryQueryRequest request, TelemetrySummary telemetrySummary, TelemetryAwareComponentDto componentDto)
        {
            if (componentDto.Summaries == null)
            {
                componentDto.Summaries = new List <TelemetrySummaryDto>();
            }

            TelemetrySummaryDto summaryDto = new TelemetrySummaryDto(telemetrySummary, request.PropertiesToInclude);

            componentDto.Summaries.Add(summaryDto);

            if (request.Granularity >= TelemetryRequestGranularity.Details)
            {
                foreach (TelemetryDetail telemetryDetail in telemetrySummary.GetTelemetryDetails())
                {
                    ProcessDetails(request, telemetryDetail, summaryDto);
                }
            }
        }
        private static void ProcessDetails(TelemetryQueryRequest request, TelemetryDetail telemetryDetail, TelemetrySummaryDto summaryDto)
        {
            if (summaryDto.Details == null)
            {
                summaryDto.Details = new List <TelemetryDetailDto>();
            }
            TelemetryDetailDto detailDto = new TelemetryDetailDto(telemetryDetail, request.PropertiesToInclude);

            summaryDto.Details.Add(detailDto);

            if (request.Granularity >= TelemetryRequestGranularity.Units)
            {
                if (detailDto.Units == null)
                {
                    detailDto.Units = new List <TelemetryUnitDto>();
                }
                foreach (TelemetryUnit telemetryUnit in telemetryDetail.GetTelemetryUnits())
                {
                    TelemetryUnitDto unit = new TelemetryUnitDto(telemetryUnit, request.PropertiesToInclude);
                    detailDto.Units.Add(unit);
                }
            }
        }