Exemple #1
0
        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));
        }
Exemple #3
0
        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]);
                            }
                        }
                    }
                }
            }
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        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);
        }