示例#1
0
        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));
        }
示例#2
0
        //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);
        }
示例#3
0
        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"));
        }
示例#4
0
 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"));
 }
示例#5
0
        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();
                }
            }
        }