public GtResult getResult(DataFeed feed, GtQueryDetails details) { string dimensionPrefix; string dimensionSufix; try { IList <AtomEntry> feedCollection = feed.Entries.ToList <AtomEntry>(); GtResult result = new GtResult(); //Uncomment this line to display also the name of the profileId requested. //result.AccountName = feed.DataSource.TableName; result.AccountTittle = details.Tittle; result.Metrics = new List <MetricsDTO>(); foreach (DataEntry entri in feedCollection) { if (entri.Dimensions.Count != 0) { foreach (Metric metric in entri.Metrics) { List <String> dimensionValues = new List <String>(); for (int i = 0; i < entri.Dimensions.Count; i++) { dimensionPrefix = ""; dimensionSufix = ""; if (i == 0) { dimensionPrefix = ConfigurationManager.AppSettings["dimensionPrefix"]; } if (i == entri.Dimensions.Count - 1) { dimensionSufix = ConfigurationManager.AppSettings["dimensionSufix"]; } dimensionValues.Add(dimensionPrefix + entri.Dimensions[i].Value + dimensionSufix); } MetricsDTO metricDTO = new MetricsDTO(); metricDTO.DimensionsValues = dimensionValues; metricDTO.MetricValue = Math.Round(metric.FloatValue, 2); metricDTO.MetricName = metric.Name.Replace("ga:", "") + ConfigurationManager.AppSettings["metricSufix"]; result.Metrics.Add(metricDTO); } } else { foreach (Metric metric in entri.Metrics) { MetricsDTO metricDTO = new MetricsDTO(); metricDTO.MetricValue = Math.Round(metric.FloatValue, 2); metricDTO.MetricName = metric.Name.Replace("ga:", ""); result.Metrics.Add(metricDTO); } } } return(result); } catch (GDataRequestException ex) { throw ex; } }
public DataFeed GetStatistics(String profile, GtQueryDetails details) { try { RequestSettings settings = new RequestSettings("GTGATracker"); AnalyticsRequest request = new AnalyticsRequest(settings); request.Service = this; AnalyticsProxy = new AnalyticsProxy(request); setUserCredentials(GetEmail(), GetPassword()); DataQuery query = new DataQuery(ConfigurationManager.AppSettings["FeedDataUri"]); query.Ids = "ga:" + profile; string dimensions = details.Dimensions; List <string> dimensionsList = new List <string>(); dimensionsList = getDimensions(dimensions); if (dimensions != "") { dimensions = "ga:" + dimensionsList.First(); } else { dimensions = ""; } for (int i = 1; i < dimensionsList.Count; i++) { dimensions += ",ga:" + dimensionsList[i]; } query.Dimensions = dimensions; string metrics = details.Metrics; List <string> metricList = new List <string>(); metricList = getMetrics(metrics); if (metrics != "") { metrics = "ga:" + metricList.First(); } else { metrics = ""; } metrics = "ga:" + metricList.First(); for (int i = 1; i < metricList.Count; i++) { metrics += ",ga:" + metricList[i]; } query.Metrics = metrics; query.GAStartDate = details.From.ToString("yyyy-MM-dd"); log.Info("StartDate: " + details.From); query.GAEndDate = details.To.ToString("yyyy-MM-dd"); log.Info("EndDate: " + details.To); query.Sort = details.Sort; query.NumberToRetrieve = details.Max; this.RetrievedData = Query(query); return(RetrievedData); } catch (GDataRequestException ex) { throw ex; } }