Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 public void Logout()
 {
     using (TransactionScope trn = new TransactionScope()) {
         using (PeakDbContext dbContext = new PeakDbContext()) {
             ActiveSession     activeSession      = dbContext.ActiveSessions.FirstOrDefault(x => x.SessionKey == PxSession.Current.Principal.Authentication.Token);
             TerminatedSession sessionToTerminate = new TerminatedSession(activeSession);
             sessionToTerminate.TerminationType = SessionTerminationType.Logout;
             sessionToTerminate.TerminationDate = DateTime.Now;
             dbContext.ActiveSessions.Remove(activeSession);
             dbContext.TerminatedSessions.Add(sessionToTerminate);
             dbContext.SaveChanges();
         }
         trn.Complete();
     }
 }
Ejemplo n.º 2
0
 public void Excecute(DateTime scheduledTime)
 {
     using (PeakDbContext dbContext = new PeakDbContext()) {
         DateTime expiredTime     = DateTime.Now.AddMinutes(-PxConfigurationManager.PxConfig.Session.DefaultExpireDuration);
         var      expiredSessions = dbContext.ActiveSessions.Where(x => x.OpenDate <= expiredTime).ToList();
         dbContext.ActiveSessions.RemoveRange(expiredSessions);
         foreach (var expiredSession in expiredSessions)
         {
             TerminatedSession terminatedSession = new TerminatedSession()
             {
                 Ip               = expiredSession.Ip,
                 OpenDate         = expiredSession.OpenDate,
                 TerminationDate  = DateTime.Now,
                 SessionKey       = expiredSession.SessionKey,
                 TerminationType  = Dal.Enums.SessionTerminationType.Expire,
                 BrowserUserAgent = expiredSession.BrowserUserAgent,
                 UserId           = expiredSession.UserId
             };
             dbContext.TerminatedSessions.Add(terminatedSession);
         }
         dbContext.SaveChanges();
     }
 }