protected void Application_PreRequestHandlerExecute(object sender, EventArgs eventArgs) { HttpContext currentContext = HttpContext.Current; if (currentContext != null) { var account = (Account)HttpContext.Current.Session["user"]; if (account != null) { var visitor = OnlineVisitorsContainer.Visitors .SingleOrDefault(q => q.Key == currentContext.Session.SessionID).Value; if (visitor.UserNameID != account.AccountID) { if (visitor.UserNameID == null) { System_Model.Instance.SetIsOnlineUserByID(account.AccountID); } else { System_Model.Instance.SetIsOfflineUserByID(visitor.UserNameID); System_Model.Instance.SetIsOnlineUserByID(account.AccountID); } WebVisitor currentVisitor = new WebVisitor(currentContext); OnlineVisitorsContainer.Visitors[currentVisitor.SessionId] = currentVisitor; new SystemHub().SendOnlineVisitorsContainer(OnlineVisitorsContainer.Visitors.Values.ToList()); } } } }
protected void Session_Start(Object sender, EventArgs e) { // get current context HttpContext currentContext = HttpContext.Current; if (currentContext != null) { if (!currentContext.Request.Browser.Crawler) { WebVisitor currentVisitor = new WebVisitor(currentContext); OnlineVisitorsContainer.Visitors[currentVisitor.SessionId] = currentVisitor; new SystemHub().SendOnlineVisitorsContainer(OnlineVisitorsContainer.Visitors.Values.ToList()); } } }