Example #1
0
        /// <summary>
        /// Load snapshot of today's metrics data
        /// </summary>
        /// <param name="metrics">Array of metric names to load</param>
        private void LoadToday(string[] metrics)
        {
            DateTime startDate = DateTime.Today;
            DateTime endDate   = DateTime.Today.AddDays(1).AddSeconds(-1);

            todayData = GetAnalyticsData(null, metrics, startDate, endDate);
        }
Example #2
0
    public AnalyticDataPoint GetAnalyticsData(string profileId, string[] demensions, string[] metrics, DateTime startDate, DateTime endDate)
    {
        AnalyticDataPoint data = new AnalyticDataPoint();

        if (!profileId.Contains("ga:"))
        {
            profileId = string.Format("ga:{0}", profileId);
        }
        //Make initial call to service.
        //Then check if a next link exists in the response,
        //if so parse and call again using start index param.
        GaData response = null;

        do
        {
            int startIndex = 1;
            if (response != null && !string.IsNullOrEmpty(response.NextLink))
            {
                Uri    uri         = new Uri(response.NextLink);
                var    paramerters = uri.Query.Split('&');
                string s           = paramerters.First(i => i.Contains("start-index")).Split('=')[1];
                startIndex = int.Parse(s);
            }
            var request = BuildAnalyticRequest(profileId, demensions, metrics, startDate, endDate, startIndex);
            response           = request.Execute();
            data.ColumnHeaders = response.ColumnHeaders;
            data.Rows.AddRange(response.Rows);
        } while (!string.IsNullOrEmpty(response.NextLink));
        return(data);
    }
Example #3
0
        /// <summary>
        /// Load historical metrics data for a specified timeframe
        /// </summary>
        /// <param name="numberOfDays">Number of days to load</param>
        /// <param name="metrics">Array of metrics to load</param>
        public void LoadHistoricalData(int numberOfDays, string[] metrics)
        {
            DateTime startDate = DateTime.Today.AddDays(-numberOfDays);
            DateTime endDate   = DateTime.Today.AddSeconds(-1);

            historicalData = GetAnalyticsData(null, metrics, startDate, endDate);
            historyDays    = numberOfDays;
        }
Example #4
0
        public AnalyticDataPoint GetAnalyticsData(string[] dimensions, string[] metrics, DateTime startDate, DateTime endDate)
        {
            AnalyticDataPoint data = new AnalyticDataPoint();

            //Make initial call to service.
            //Then check if a next link exists in the response,
            //if so parse and call again using start index param.
            GaData response = null;

            do
            {
                int startIndex = 1;
                if (response != null && !string.IsNullOrEmpty(response.NextLink))
                {
                    Uri    uri         = new Uri(response.NextLink);
                    var    paramerters = uri.Query.Split('&');
                    string s           = paramerters.First(i => i.Contains("start-index")).Split('=')[1];
                    startIndex = int.Parse(s);
                }

                try
                {
                    var request = BuildAnalyticRequest(ProfileID, dimensions, metrics, startDate, endDate, startIndex);
                    response = request.Execute();
                }
                catch (Google.GoogleApiException exception)
                {
                    Debug.WriteLine(exception.Error.Message);
                    MetricsErrorEvent(exception.Error.Message);
                }
                data.ColumnHeaders = response.ColumnHeaders;
                data.Rows.AddRange(response.Rows);
            } while (!string.IsNullOrEmpty(response.NextLink));

            return(data);
        }