Esempio n. 1
0
 /// <summary>
 /// Copies the base properties from a source PageViewSession object
 /// </summary>
 /// <param name="source">The source.</param>
 public void CopyPropertiesFrom(PageViewSession source)
 {
     this.Id                  = source.Id;
     this.ForeignGuid         = source.ForeignGuid;
     this.ForeignKey          = source.ForeignKey;
     this.IpAddress           = source.IpAddress;
     this.PageViewUserAgentId = source.PageViewUserAgentId;
     this.SessionId           = source.SessionId;
     this.Guid                = source.Guid;
     this.ForeignId           = source.ForeignId;
 }
Esempio n. 2
0
        /// <summary>
        /// Execute method to write transaction to the database.
        /// </summary>
        public void Execute()
        {
            using (var rockContext = new RockContext())
            {
                PageViewService          pageViewService          = new PageViewService(rockContext);
                PageViewUserAgentService pageViewUserAgentService = new PageViewUserAgentService(rockContext);
                PageViewSessionService   pageViewSessionService   = new PageViewSessionService(rockContext);

                var userAgent = (this.UserAgent ?? string.Empty).Trim();
                if (userAgent.Length > 450)
                {
                    userAgent = userAgent.Substring(0, 450);   // trim super long useragents to fit in pageViewUserAgent.UserAgent
                }

                // get user agent info
                var clientType = PageViewUserAgent.GetClientType(userAgent);

                Parser     uaParser      = Parser.GetDefault();
                ClientInfo client        = uaParser.Parse(userAgent);
                var        clientOs      = client.OS.ToString();
                var        clientBrowser = client.UserAgent.ToString();

                // lookup the pageViewUserAgent, and create it if it doesn't exist
                var pageViewUserAgent = pageViewUserAgentService.Queryable().Where(a => a.UserAgent == userAgent).FirstOrDefault();
                if (pageViewUserAgent == null)
                {
                    pageViewUserAgent            = new PageViewUserAgent();
                    pageViewUserAgent.UserAgent  = userAgent;
                    pageViewUserAgent.ClientType = clientType;

                    pageViewUserAgent.OperatingSystem = clientOs;
                    pageViewUserAgent.Browser         = clientBrowser;

                    pageViewUserAgentService.Add(pageViewUserAgent);
                    rockContext.SaveChanges();
                }
                else
                {
                    // check if the user agent properties need to be updated
                    if (clientType != pageViewUserAgent.ClientType || clientOs != pageViewUserAgent.OperatingSystem || clientBrowser != pageViewUserAgent.Browser)
                    {
                        pageViewUserAgent.ClientType      = clientType;
                        pageViewUserAgent.OperatingSystem = clientOs;
                        pageViewUserAgent.Browser         = clientBrowser;
                        rockContext.SaveChanges();
                    }
                }

                // lookup PageViewSession, and create it if it doesn't exist
                Guid sessionId         = this.SessionId.AsGuid();
                int? pageViewSessionId = pageViewSessionService.Queryable().Where(a => a.PageViewUserAgentId == pageViewUserAgent.Id && a.SessionId == sessionId && a.IpAddress == this.IPAddress).Select(a => (int?)a.Id).FirstOrDefault();
                if (!pageViewSessionId.HasValue)
                {
                    var pageViewSession = new PageViewSession();
                    pageViewSession.PageViewUserAgentId = pageViewUserAgent.Id;
                    pageViewSession.SessionId           = sessionId;
                    pageViewSession.IpAddress           = this.IPAddress;
                    pageViewSessionService.Add(pageViewSession);
                    rockContext.SaveChanges();
                    pageViewSessionId = pageViewSession.Id;
                }

                PageView pageView = new PageView();
                pageViewService.Add(pageView);

                // obfuscate rock magic token
                Regex  rgx      = new Regex(@"rckipid=([^&]*)");
                string cleanUrl = rgx.Replace(this.Url, "rckipid=XXXXXXXXXXXXXXXXXXXXXXXXXXXX");

                pageView.PageId         = this.PageId;
                pageView.SiteId         = this.SiteId;
                pageView.Url            = cleanUrl.Left(500);
                pageView.DateTimeViewed = this.DateViewed;
                pageView.PersonAliasId  = this.PersonAliasId;
                pageView.PageTitle      = this.PageTitle.Left(500);

                pageView.PageViewSessionId = pageViewSessionId.Value;

                rockContext.SaveChanges();
            }
        }
        /// <summary>
        /// Execute method to write transaction to the database.
        /// </summary>
        public void Execute()
        {
            using ( var rockContext = new RockContext() )
            {
                PageViewService pageViewService = new PageViewService( rockContext );
                PageViewUserAgentService pageViewUserAgentService = new PageViewUserAgentService( rockContext );
                PageViewSessionService pageViewSessionService = new PageViewSessionService( rockContext );

                var userAgent = ( this.UserAgent ?? string.Empty ).Trim();
                if ( userAgent.Length > 450 )
                {
                    userAgent = userAgent.Substring( 0, 450 ); // trim super long useragents to fit in pageViewUserAgent.UserAgent
                }

                // get user agent info
                var clientType = PageViewUserAgent.GetClientType( userAgent );

                Parser uaParser = Parser.GetDefault();
                ClientInfo client = uaParser.Parse( userAgent );
                var clientOs = client.OS.ToString();
                var clientBrowser = client.UserAgent.ToString();

                // lookup the pageViewUserAgent, and create it if it doesn't exist
                var pageViewUserAgent = pageViewUserAgentService.Queryable().Where( a => a.UserAgent == userAgent ).FirstOrDefault();
                if ( pageViewUserAgent == null )
                {
                    pageViewUserAgent = new PageViewUserAgent();
                    pageViewUserAgent.UserAgent = userAgent;
                    pageViewUserAgent.ClientType = clientType;

                    pageViewUserAgent.OperatingSystem = clientOs;
                    pageViewUserAgent.Browser = clientBrowser;

                    pageViewUserAgentService.Add( pageViewUserAgent );
                    rockContext.SaveChanges();
                }
                else
                {
                    // check if the user agent properties need to be updated
                    if ( clientType != pageViewUserAgent.ClientType || clientOs != pageViewUserAgent.OperatingSystem || clientBrowser != pageViewUserAgent.Browser )
                    {
                        pageViewUserAgent.ClientType = clientType;
                        pageViewUserAgent.OperatingSystem = clientOs;
                        pageViewUserAgent.Browser = clientBrowser;
                        rockContext.SaveChanges();
                    }
                }

                // lookup PageViewSession, and create it if it doesn't exist
                Guid sessionId = this.SessionId.AsGuid();
                int? pageViewSessionId = pageViewSessionService.Queryable().Where( a => a.PageViewUserAgentId == pageViewUserAgent.Id && a.SessionId == sessionId && a.IpAddress == this.IPAddress ).Select( a => (int?)a.Id ).FirstOrDefault();
                if ( !pageViewSessionId.HasValue )
                {
                    var pageViewSession = new PageViewSession();
                    pageViewSession.PageViewUserAgentId = pageViewUserAgent.Id;
                    pageViewSession.SessionId = sessionId;
                    pageViewSession.IpAddress = this.IPAddress;
                    pageViewSessionService.Add( pageViewSession );
                    rockContext.SaveChanges();
                    pageViewSessionId = pageViewSession.Id;
                }

                PageView pageView = new PageView();
                pageViewService.Add( pageView );

                // obfuscate rock magic token
                Regex rgx = new Regex( @"rckipid=([^&]*)" );
                string cleanUrl = rgx.Replace( this.Url, "rckipid=XXXXXXXXXXXXXXXXXXXXXXXXXXXX" );

                pageView.PageId = this.PageId;
                pageView.SiteId = this.SiteId;
                pageView.Url = cleanUrl.Left( 500 );
                pageView.DateTimeViewed = this.DateViewed;
                pageView.PersonAliasId = this.PersonAliasId;
                pageView.PageTitle = this.PageTitle.Left( 500 );

                pageView.PageViewSessionId = pageViewSessionId.Value;

                rockContext.SaveChanges();
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Copies the base properties from a source PageViewSession object
 /// </summary>
 /// <param name="source">The source.</param>
 public void CopyPropertiesFrom( PageViewSession source )
 {
     this.Id = source.Id;
     this.ForeignGuid = source.ForeignGuid;
     this.ForeignKey = source.ForeignKey;
     this.IpAddress = source.IpAddress;
     this.PageViewUserAgentId = source.PageViewUserAgentId;
     this.SessionId = source.SessionId;
     this.Guid = source.Guid;
     this.ForeignId = source.ForeignId;
 }