예제 #1
0
        private void SendPageView(PageView pageView)
        {
            // If not set to use azure table
            if (this.CurrentSite.analytics == null)
            {
                this.SiteDatabase.DelayedInsert(pageView);
                return;
            }

            var table = this.GetPageViewTable();

            Task.Run(() =>
            {
                try
                {
                    pageView.PrepareForAuzre();

                    var op = TableOperation.Insert(pageView);
                    table.Execute(op);
                }
                catch (Exception)
                {
                }
            });
        }
예제 #2
0
        private void SendPageView(IContent requestedContent)
        {
            string source = "";

            if (this.Request.Cookies.ContainsKey("source"))
            {
                source = this.Request.Cookies["source"];
            }

#if !DEBUG
            if (this.Request.Headers.UserAgent.StartsWith("Pingdom.com") ||
                this.Request.Headers.UserAgent.StartsWith("loader.io"))
            {
                return;
            }

            var pageView = new PageView()
            {
                __createdAt   = DateTime.Now,
                __updatedAt   = DateTime.MinValue,
                ContentId     = requestedContent.Id,
                TableName     = requestedContent.TableName,
                AffiliateCode = source,
                QueryString   = this.Request.Url.Query,
                Path          = this.Request.Url.Path,
                UserIP        = this.Request.UserHostAddress,
                Referer       = this.Request.Headers.Referrer,
                UserAgent     = this.Request.Headers.UserAgent,
                UserUniqueId  = this.Context.Items["userid"] as string
            };

            // If not set to use azure table
            if (this.CurrentSite.analytics == null)
            {
                this.SiteDatabase.DelayedInsert(pageView);
                return;
            }

            var table = this.GetPageViewTable();

            Task.Run(() =>
            {
                try
                {
                    pageView.PrepareForAuzre();

                    var op = TableOperation.Insert(pageView);
                    table.Execute(op);
                }
                catch (Exception)
                {
                }
            });
#endif
        }