Ejemplo n.º 1
0
        public List<SourceTime> getSourceTimeData(DateTime fromDate, DateTime toDate, Site site)
        {
            List<SourceTime> sourceTimes = new List<SourceTime>();

            int startIndex = 1;
            Boolean isMore;

            DataFeed feed = null;
            do
            {
                isMore = false;

                try
                {
                    feed = getGADataFeed(site, fromDate, toDate,
                                        "ga:campaign,ga:keyword,ga:medium,ga:source,ga:daysToTransaction,ga:transactionId,ga:visitsToTransaction",
                                        "ga:transactions",
                                        "", "", startIndex);
                    if (feed != null)
                    {
                        foreach (DataEntry singleEntry in feed.Entries)
                        {
                            SourceTime sourceTime = new SourceTime(singleEntry, site);
                            sourceTimes.Add(sourceTime);
                            isMore = true;
                        }
                    }
                }
                catch (Exception rEx)
                {
                    log.Error("Error in getSourceTimeData", rEx);
                }

                if (isMore) startIndex += numberOfGARecordsToRetrievePerRequest;
            } while (isMore);

            return sourceTimes;
        }
        public void recordAnalyticsSourceTime(SourceTime sourceTime)
        {
            SqlConnection conn = new SqlConnection(connectionAnalytics);

            try
            {
                conn.Open();

                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;

                cmd.CommandText = @"IF NOT EXISTS(SELECT (1) FROM analytics_source_time (nolock) WHERE TransactionID = @TransactionID)
                                        INSERT INTO analytics_source_time (Campaign, Keyword, Medium, Source, TransactionID, DaysToTransaction, VisitsToTransaction, TrafficType, Analytics_AccountID)
                                            VALUES (@Campaign, @Keyword, @Medium, @Source, @TransactionID, @DaysToTransaction, @VisitsToTransaction, null, @AccountID)
                                    ELSE
                                        UPDATE analytics_source_time
                                        SET Campaign = @Campaign,
                                            Keyword = @Keyword,
                                            Medium = @Medium,
                                            Source = @Source,
                                            DaysToTransaction = @DaysToTransaction,
                                            VisitsToTransaction = @VisitsToTransaction,
                                            TrafficType = null,
                                            Analytics_AccountID = @AccountID
                                        WHERE TransactionID = @TransactionID";

                cmd.Parameters.Add("@Campaign", SqlDbType.NVarChar);
                cmd.Parameters["@Campaign"].Value = truncate(sourceTime.campaign, 255);

                cmd.Parameters.Add("@Keyword", SqlDbType.NVarChar);
                cmd.Parameters["@Keyword"].Value = truncate(sourceTime.keyword, 255);

                cmd.Parameters.Add("@Source", SqlDbType.NVarChar);
                cmd.Parameters["@Source"].Value = truncate(sourceTime.source, 255);

                cmd.Parameters.Add("@Medium", SqlDbType.NVarChar);
                cmd.Parameters["@Medium"].Value = truncate(sourceTime.medium, 255);

                cmd.Parameters.Add("@TransactionID", SqlDbType.NVarChar);
                cmd.Parameters["@TransactionID"].Value = truncate(sourceTime.orderNumber,255);

                cmd.Parameters.Add("@DaysToTransaction", SqlDbType.NVarChar);
                cmd.Parameters["@DaysToTransaction"].Value = Convert.ToInt32(sourceTime.daysToTransaction);

                cmd.Parameters.Add("@VisitsToTransaction", SqlDbType.NVarChar);
                cmd.Parameters["@VisitsToTransaction"].Value = Convert.ToInt32(sourceTime.daysToTransaction);

                cmd.Parameters.Add("@AccountID", SqlDbType.NVarChar);
                cmd.Parameters["@AccountID"].Value = truncate(sourceTime.gaAccount, 50);

                cmd.ExecuteNonQuery();
                cmd.Dispose();
            }
            catch (SqlException sqle)
            {
                log.Error("Error in recordAnalyticsSourceTime", sqle);
            }
            finally
            {
                if (conn != null)
                {
                    if (conn.State == System.Data.ConnectionState.Open)
                    {
                        conn.Close();
                    }
                }
            }
        }