Esempio n. 1
0
 public PageHitSuccessModel LogPageHit(string visitorId, int folderId)
 {
     using (var db = new OggleBoobleMySqlContext())
     {
         PageHitSuccessModel pageHitSuccessModel = new PageHitSuccessModel();
         try
         {
             Visitor dbVisitor = db.Visitors.Where(v => v.VisitorId == visitorId).FirstOrDefault();
             if (dbVisitor == null)
             {
                 pageHitSuccessModel.ReturnMessage = "VisitorId not found";
             }
             else
             {
                 pageHitSuccessModel.VisitorCountry = dbVisitor.Country;
                 PageHit lastHit  = null;
                 var     pageHits = db.PageHits.Where(h => h.VisitorId == visitorId).FirstOrDefault();
                 if (pageHits == null)
                 {
                     lastHit = null;
                     pageHitSuccessModel.PageHits = 1;
                 }
                 else
                 {
                     var threeMinutesAgo = DateTime.Now.AddMinutes(-13);
                     lastHit = db.PageHits.Where(h => (h.VisitorId == visitorId) && (h.PageId == folderId) && (h.Occured > threeMinutesAgo)).FirstOrDefault();
                     pageHitSuccessModel.PageHits = db.PageHits.Where(h => h.VisitorId == visitorId).Count();
                 }
                 if (lastHit == null)
                 {
                     //System.Threading.Thread.Sleep(1001);
                     db.PageHits.Add(new PageHit()
                     {
                         VisitorId = visitorId,
                         PageId    = folderId,
                         Occured   = DateTime.Now
                     });
                     db.SaveChanges();
                     pageHitSuccessModel.ReturnMessage = "ok";
                 }
                 else
                 {
                     pageHitSuccessModel.ReturnMessage = "duplicate hit";
                 }
             }
             pageHitSuccessModel.Success = "ok";
         }
         catch (Exception ex)
         {
             pageHitSuccessModel.Success = Helpers.ErrorDetails(ex);
         }
         return(pageHitSuccessModel);
     }
 }
Esempio n. 2
0
        protected override void InitializePage()
        {
            SetViewBagDefaultProperties();

            base.InitializePage();
            string Page = Request.Url.AbsolutePath.Replace("/swordsandsorcerycom/", "");

            //deal with the root being a blank
            if (Page.Length == 0)
            {
                Page = "home";
            }
            string IP = HttpContext.Current.Request.UserHostAddress;

            if (!Request.Url.AbsoluteUri.Contains("localhost"))
            {
                PageHit p = new PageHit(Page, IP);
            }

            if (Page != "/Home/ErrorPage")
            {
                UserType user = UserCache.GetFromCache(0, IP);
                if (user == null)
                {
                    //this is a sign that the database is down
                    Response.Redirect(ConfigurationManager.AppSettings["SitePrefix"].StringSafe() + "Home/ErrorPage");
                }

                if (user != null)
                {
                    //UserCache.Update(user.UserID, Page, user.Confirmed);
                    ViewBag.UserID    = user.UserID;
                    ViewBag.UserName  = user.UserName;
                    ViewBag.IPAddress = IP;
                    ViewBag.Minimize  = user.DownArrow;
                }
            }
        }