Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }