public IHttpActionResult MoveTask(Task postedTask, int id) { if (postedTask == null || postedTask.TaskID == 0) { return(StatusCode(HttpStatusCode.BadRequest)); } User user = CookieHelper.LoggedInUser(Request, db); if (user != null) { Task movedTask = (from t in db.Tasks.Include("Board") where t.TaskID == postedTask.TaskID select t).FirstOrDefault <Task>(); //We need to verify that they have access to the board that the task came from, and we need to verify they have access to the board it came from db.Entry(user).Collection(u => u.Boards).Load(); Board newBoard = user.Boards.Find(b => b.BoardID == id); if (newBoard != null && user.Boards.Contains(movedTask.Board)) { movedTask.ChangeBoard(newBoard); db.SaveChanges(); return(Ok(movedTask)); } else { return(StatusCode(HttpStatusCode.Forbidden)); } } return(StatusCode(HttpStatusCode.Unauthorized)); }
//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); }
public ActionResult Create([Bind(Include = "UserID,FirstName,LastName,Email,Phone,Password")] User user) { if (ModelState.IsValid) { //Hash the password for goodness sake. Why does MVC not do this automatically user.Password = Crypto.HashPassword(user.Password); db.Users.Add(user); db.SaveChanges(); } Response.AppendCookie(CookieHelper.CreateSession(user)); return(RedirectToAction("Index", "Home")); }
public ActionResult Logout() { try { Guid AuthGuid = CookieHelper.AuthCookie(Request); var session = (from s in db.Sessions where s.ID == AuthGuid select s).FirstOrDefault(); if (session != null) { db.Sessions.Remove(session); db.SaveChanges(); } } catch (ArgumentException) { } return(RedirectToAction("Login")); }
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(); } } }