//private string ClientID //{ // get // { // return WebConfigurationManager.AppSettings["MSClientID"]; // } //} private Guid CreateSession(User User, GetItDoneContext db) { Guid guid = Guid.NewGuid(); db.Sessions.Add(new Session() { SessionUser = User, Created = DateTime.Now, Expires = DateTime.Now.AddMonths(1), ID = guid }); db.SaveChanges(); return(guid); }
//This version is for MVC public static User LoggedInUser(HttpRequestBase request, GetItDoneContext db = null /*We need this so that the user object is created in the correct context*/) { try { return(LoggedInUser(AuthCookie(request), db)); } catch (ArgumentNullException) { return(null); } }
//This version is for WebApi public static User LoggedInUser(HttpRequestMessage request, GetItDoneContext db = null /*We need this so that the user object is created in the correct context*/) { CookieHeaderValue cookie = request.Headers.GetCookies("auth").FirstOrDefault(); if (cookie != null) { Guid cookieGuid = Guid.Parse(cookie["auth"].Value); return(LoggedInUser(cookieGuid, db)); } return(null); }
private static User LoggedInUser(Guid cookieGuid, GetItDoneContext db) { db = db ?? new GetItDoneContext(); //They have an auth cookie, now lets check if the session is still valid var session = (from s in db.Sessions.Include("SessionUser") where cookieGuid == s.ID select s).FirstOrDefault <Session>(); if (session != null && session.Expires > DateTime.Now) { return(session.SessionUser); } return(null); }
public static HttpCookie CreateSession(User user) { using (GetItDoneContext db = new GetItDoneContext()) { Guid guid = Guid.NewGuid(); db.Sessions.Add(new Session() { SessionUser = user, Created = DateTime.Now, Expires = DateTime.Now.AddMonths(1), ID = guid }); HttpCookie cookie = new HttpCookie("auth", guid.ToString()); cookie.Expires = DateTime.Now.AddMonths(1); return(cookie); } }
internal static void Schedule() { GetItDoneContext db = new GetItDoneContext("GetItDone"); List <TaskSchedule> schedules = (from s in db.Schedules.Include("Task") select s).ToList <TaskSchedule>(); foreach (TaskSchedule schedule in schedules) { schedule.Tasks.Sort(new Comparison <Task>((t1, t2) => { return((t1.Created - t2.Created).Hours); })); Task latestChildTask = schedule.Tasks[0]; if (latestChildTask == null || (DateTime.Now - latestChildTask.Created).TotalDays > schedule.Schedule) { db.Entry(latestChildTask).State = System.Data.Entity.EntityState.Detached; latestChildTask.Created = DateTime.Now; db.Tasks.Add(latestChildTask); db.SaveChanges(); } } }