protected void Session_Start() { string sessionId = Session.SessionID; string userIP = HttpContext.Current.Request.UserHostAddress; string userAgent = HttpContext.Current.Request.UserAgent; SessionManager.Instant.Add(Session, sessionId, userIP, userAgent); new Action <object>(o => { var ctx = o.Cast(new { SessionID = "", UserHostAddress = "", UserAgent = "" }); var ctx2 = new PTFReportsContext(); var ip = ctx2.IPs.FirstOrCreate( n => n.IP1 == ctx.UserHostAddress, () => new IP() { IP1 = ctx.UserHostAddress }); ctx2.AddToSessions(new Session() { Begin = DateTime.Now, BrowserSessionID = ctx.SessionID, UserAgent = ctx.UserAgent, IP = ip }); ctx2.SaveChanges(); }).FireAndForgetSafe( new { SessionID = sessionId, UserHostAddress = userIP, UserAgent = userAgent, }); }
public static void SaveErrorAsynch(Exception ex) { new Action <Exception>((err) => { var ctx = new PTFReportsContext(); ctx.SaveError(err); }).FireAndForgetSafe(ex); }
public static void LoadBlockedIPsAsynch() { new Action(() => { PTFReportsContext.BlockedIPsTable.Clear(); var ctx = new PTFReportsContext(); foreach (var ip in ctx.IPs) { PTFReportsContext.BlockedIPsTable[ip.IP1] = ip.BlockedAt; } }).FireAndForgetSafe(); }
protected void Session_End() { SessionManager.Instant.Remove(Session.SessionID); new Action <string>(id => { var ctx2 = new PTFReportsContext(); var session = ctx2.Sessions.First(s => s.BrowserSessionID == id); session.End = DateTime.Now; ctx2.SaveChanges(); }).FireAndForgetSafe(Session.SessionID); }
public static void ResetLoginAttemptsAsynch(string loginName) { new Action <string>((name) => { var ctx = new PTFReportsContext(); var user = ctx.UserDetails.FirstOrDefault(s => s.Ud_loginName == name); if (user != null) { user.LoginTries = null; ctx.SaveChanges(); } }).FireAndForgetSafe(loginName); }
public static void SaveSessionAsynch(string sessionId, UserDetail user) { new Action <string>((ssid) => { var ctx = new PTFReportsContext(); var session = ctx.Sessions.First(s => s.BrowserSessionID == ssid); if (session != null) { session.UserID = user.Ud_id; ctx.SaveChanges(); } }).FireAndForgetSafe(sessionId); }
public static void SaveLoginFailAsynch(string loginName, int maxLoginTries) { new Action <string, int>((name, count) => { var ctx = new PTFReportsContext(); var user = ctx.UserDetails.FirstOrDefault(s => s.Ud_loginName == name); if (user != null) { user.LoginTries = user.LoginTries.GetValueOrDefault() + 1; if (user.LoginTries > count) { user.BlockedAt = DateTime.Now; } ctx.SaveChanges(); } }).FireAndForgetSafe(loginName, maxLoginTries); }
public static void SaveIPBlockedAsynch(string ipAddr) { new Action <string>((ip) => { PTFReportsContext.BlockedIPsTable[ip] = DateTime.Now; var ctx = new PTFReportsContext(); var ipa = ctx.IPs.FirstOrDefault(i => i.IP1 == ip); if (ipa == null) { ctx.AddToIPs(new IP() { IP1 = ip, BlockedAt = DateTime.Now }); } else { ipa.BlockedAt = DateTime.Now; } ctx.SaveChanges(); }).FireAndForgetSafe(ipAddr); }