private void FindCompatibleFields(DfareportingService service, long profileId, Report report) { CompatibleFields fields = service.Reports.CompatibleFields.Query(report, profileId).Execute(); ReportCompatibleFields reportFields = fields.ReportCompatibleFields; if (reportFields.Dimensions.Any()) { // Add a compatible dimension to the report. Dimension dimension = reportFields.Dimensions[0]; SortedDimension sortedDimension = new SortedDimension(); sortedDimension.Name = dimension.Name; report.Criteria.Dimensions.Add(sortedDimension); } else if (reportFields.Metrics.Any()) { // Add a compatible metric to the report. Metric metric = reportFields.Metrics[0]; report.Criteria.MetricNames.Add(metric.Name); } Console.WriteLine( "\nUpdated report criteria (with compatible fields):\n{0}", JsonConvert.SerializeObject(report.Criteria)); }
/// <summary> /// Run the code example. /// </summary> /// <param name="service">An initialized Dfa Reporting service object /// </param> public override void Run(DfareportingService service) { long reportId = long.Parse(_T("ENTER_REPORT_ID_HERE")); long profileId = long.Parse(_T("INSERT_USER_PROFILE_ID_HERE")); // Retrieve the specified report. Report report = service.Reports.Get(profileId, reportId).Execute(); // Look up the compatible fields for the report. CompatibleFields fields = service.Reports.CompatibleFields.Query(report, profileId).Execute(); // Display the compatible fields, assuming this is a standard report. ReportCompatibleFields reportFields = fields.ReportCompatibleFields; Console.WriteLine("Compatible dimensions:\n"); printDimensionNames(reportFields.Dimensions); Console.WriteLine("\nCompatible metrics:\n"); printMetricNames(reportFields.Metrics); Console.WriteLine("\nCompatible dimension filters:\n"); printDimensionNames(reportFields.DimensionFilters); Console.WriteLine("\nCompatible pivoted activity metrics:\n"); printMetricNames(reportFields.PivotedActivityMetrics); }