public void GATest1() { GA ga = new GA(@"C:\pgroot\NoobowNotifier\keys\noobow-ga.json", GAConstant.JAFLEET_ID); var resutl1 = ga.GetReportMyNormal1(); foreach (Report report in resutl1) { ColumnHeader header = report.ColumnHeader; List <string> dimensionHeaders = (List <string>)header.Dimensions; List <MetricHeaderEntry> metricHeaders = (List <MetricHeaderEntry>)header.MetricHeader.MetricHeaderEntries; List <ReportRow> rows = (List <ReportRow>)report.Data.Rows; foreach (ReportRow row in rows) { List <string> dimensions = (List <string>)row.Dimensions; List <DateRangeValues> metrics = (List <DateRangeValues>)row.Metrics; for (int i = 0; i < dimensionHeaders.Count() && i < dimensions.Count(); i++) { Debug.WriteLine(dimensionHeaders[i] + ": " + dimensions[i]); } for (int j = 0; j < metrics.Count(); j++) { Debug.WriteLine("Date Range (" + j + "): "); DateRangeValues values = metrics[j]; for (int k = 0; k < values.Values.Count() && k < metricHeaders.Count(); k++) { Debug.WriteLine(metricHeaders[k].Name + ": " + values.Values[k]); } } } } }
// GET: GoogleAnalyticsReport public ActionResult Chart() { var analyticsModel = GetModel(); var chart = GetChartName(); if (string.IsNullOrEmpty(chart)) { return(View()); } var response = ReportingManager.GetAnalyticsResponse(analyticsModel, analyticsModel.CredStr); var analyticsResponse = new AnalyticsChartResponse { Model = analyticsModel, Response = response, Chart = chart }; Dictionary <string, List <DataPoint> > dataDict = new Dictionary <string, List <DataPoint> >(); foreach (var responseData in analyticsResponse.Response) { List <DataPoint> dataPoints1 = new List <DataPoint>(); foreach (var metric in responseData.Metrics) { DateRangeValues values = metric; for (int k = 0; k < values.Values.Count; k++) { dataPoints1.Add(new DataPoint(chart, double.Parse(values.Values[k].ToString()))); } } dataDict.Add(responseData.Dimension[0], dataPoints1); } analyticsResponse.DataPoints = dataDict; List <ChartModel> model = new List <ChartModel>(); foreach (var key in analyticsResponse.DataPoints.Keys) { model.Add(new ChartModel() { dataPoints = analyticsResponse.DataPoints[key], showInLegend = true, name = key, type = chart, axisYType = "secondary" }); } analyticsResponse.DataObject = JsonConvert.SerializeObject(model); return(View(analyticsResponse)); }
public ReportsTable(List <Report> reports, string viewId) { _headers = new List <string>(); _data = new List <List <string> >(500000); foreach (Report report in reports) { if (_headers == null || _headers.Count == 0) { ColumnHeader header = report.ColumnHeader; _headers.Add("GA View"); _headers.AddRange((List <string>)header.Dimensions); List <MetricHeaderEntry> metricHeaders = (List <MetricHeaderEntry>)header.MetricHeader.MetricHeaderEntries; _headers.AddRange(metricHeaders.Select(x => x.Name)); } // List<ReportRow> rows = (List<ReportRow>)report.Data.Rows; foreach (ReportRow row in report.Data.Rows) { var r = new List <string>(); r.Add(viewId); foreach (var di in row.Dimensions) { r.Add(StringToCSVCell(di)); } // r.AddRange((List<string>)row.Dimensions); var metrics = row.Metrics; for (int j = 0; j < metrics.Count(); j++) { DateRangeValues values = metrics[j]; r.AddRange(values.Values); } _data.Add(r); } } }
private static void printResults(IList <Report> reports) { foreach (Report report in reports) { ColumnHeader header = report.ColumnHeader; List <string> dimensionHeaders = (List <string>)header.Dimensions; List <MetricHeaderEntry> metricHeaders = (List <MetricHeaderEntry>)header.MetricHeader.MetricHeaderEntries; List <ReportRow> rows = (List <ReportRow>)report.Data.Rows; if (report.Data.Rows == null) { Console.WriteLine("No Data Available in Google Analytics"); Console.ReadKey(); } else { foreach (ReportRow row in rows) { List <string> dimensions = (List <string>)row.Dimensions; List <DateRangeValues> metrics = (List <DateRangeValues>)row.Metrics; for (int i = 0; i < dimensionHeaders.Count() && i < dimensions.Count(); i++) { Console.WriteLine(dimensionHeaders[i] + ": " + dimensions[i]); } for (int j = 0; j < metrics.Count(); j++) { Console.WriteLine("Data Range (" + j + "): "); DateRangeValues values = metrics[j]; for (int k = 0; k < values.Values.Count() && k < metricHeaders.Count(); k++) { Console.WriteLine(metricHeaders[k].Name + ": " + values.Values[k]); } } } } } }
private static string PrintReports(IList <Report> reports) { Stream stream = new MemoryStream(); StreamWriter streamWriter = new StreamWriter(stream); List <string> globalRow = new List <string>(); foreach (Report report in reports) { string sdimensionHeaders = string.Empty; string smetricHeaders = string.Empty; ColumnHeader header = report.ColumnHeader; List <string> dimensionHeaders = (List <string>)header.Dimensions; List <MetricHeaderEntry> metricHeaders = (List <MetricHeaderEntry>)header.MetricHeader.MetricHeaderEntries; List <ReportRow> rows = (List <ReportRow>)report.Data.Rows; List <string> myrows = new List <string>(); if (rows != null && rows.Count > 0) { for (int k = 0; k < metricHeaders.Count(); k++) { smetricHeaders += metricHeaders[k].Name + sep; } for (int i = 0; i < dimensionHeaders.Count(); i++) { sdimensionHeaders += dimensionHeaders[i] + sep; } if (globalRow.Count() == 0) { myrows.Add(sdimensionHeaders + smetricHeaders); } else { myrows.Add(smetricHeaders); } foreach (ReportRow row in rows) { List <string> dimensions = (List <string>)row.Dimensions; List <DateRangeValues> metrics = (List <DateRangeValues>)row.Metrics; string lined = string.Empty; string liner = string.Empty; for (int i = 0; i < dimensionHeaders.Count() && i < dimensions.Count(); i++) { lined += dimensions[i] + sep; } for (int j = 0; j < metrics.Count(); j++) { DateRangeValues values = metrics[j]; int headers = metricHeaders.Count(); for (int k = 0; k < values.Values.Count() && k < headers; k++) { liner += values.Values[k]; if (k != headers - 1) { liner += sep; } } } if (globalRow.Count() == 0) { myrows.Add(lined + liner); } else { myrows.Add(liner); } } } if (globalRow.Count() == 0) { globalRow.AddRange(myrows); } else { for (int i = 0; i < myrows.Count(); i++) { if (globalRow[i].EndsWith(sep.ToString())) { globalRow[i] += sep + myrows[i]; } else { globalRow[i] += myrows[i]; } } } } StringWriter stringWriter = new StringWriter(); string response = string.Empty; foreach (string item in globalRow) { stringWriter.WriteLine(item); } return(stringWriter.ToString()); }
public DataTable GetData(GARequestConfig requestConfig) { var reportRequest = requestConfig.CreateReportRequest(); GetReportsRequest requestContainer = new GetReportsRequest { ReportRequests = new List <ReportRequest> { reportRequest } }; DataTable dt = new DataTable(); foreach (var dimension in reportRequest.Dimensions) { dt.Columns.Add(dimension.Name); } foreach (var metric in reportRequest.Metrics) { dt.Columns.Add(metric.Alias ?? metric.Expression); } while (requestContainer.ReportRequests.Count > 0) { GetReportsResponse response = AnalyticsService.Reports.BatchGet(requestContainer).Execute(); requestContainer.ReportRequests = new List <ReportRequest>(); foreach (Report report in response.Reports) { var dimensionHeaders = report.ColumnHeader.Dimensions; var metricHeaders = report.ColumnHeader.MetricHeader.MetricHeaderEntries; foreach (ReportRow row in report.Data.Rows) { var dimensionValues = row.Dimensions; var metricValues = row.Metrics; var dataRow = dt.NewRow(); for (int i = 0; i < dimensionHeaders.Count && i < dimensionValues.Count; i++) { dataRow[dimensionHeaders[i]] = dimensionValues[i]; } for (int l = 0; l < metricValues.Count; l++) { DateRangeValues values = metricValues[l]; for (int i = 0; i < values.Values.Count && i < metricHeaders.Count; i++) { dataRow[metricHeaders[i].Name] = values.Values[i]; } } dt.Rows.Add(dataRow); } if (!String.IsNullOrEmpty(report.NextPageToken)) { requestConfig.NextPageToken = report.NextPageToken; requestContainer.ReportRequests.Add(requestConfig.CreateReportRequest()); } } } return(dt); }