public ActionResult Edit([Bind(Include = "Id,Title,Description,ProjectId,ExecutorId,StartDate,EndDate,StatusId,CreateDate")] Task task)
        {
            if (!CanCRUD(task.ProjectId))
            {
                throw new Exception("У вас нет разрешения на эту страницу");
            }
            if (ModelState.IsValid)
            {
                var old = db.Tasks.Where(x => x.Id == task.Id).FirstOrDefault();
                old.ModifiedDate = DateTime.Now;
                old.Title        = task.Title;
                old.Description  = task.Description;
                old.StartDate    = task.StartDate;
                old.EndDate      = task.EndDate;
                old.ExecutorId   = task.ExecutorId;
                if (old.StatusId != task.StatusId)
                {
                    var log = new TaskStatusLog();
                    log.TaskId     = old.Id;
                    log.CreateDate = DateTime.Now;
                    log.StatusId   = task.StatusId;
                    db.TaskStatusLogs.Add(log);
                }

                old.StatusId = task.StatusId;
                db.SaveChanges();
                return(RedirectToAction("Index", new { projectId = task.ProjectId }));
            }

            ViewBag.ExecutorId = new SelectList(db.AspNetUsers, "Id", "Email", task.ExecutorId);
            ViewBag.StatusId   = new SelectList(db.TaskStatuses, "Id", "Name", task.StatusId);
            return(View(task));
        }
        public ActionResult Details(Task task)
        {
            Task old = db.Tasks.Find(task.Id);

            if (task == null)
            {
                return(HttpNotFound());
            }
            old.StatusId = task.StatusId;

            var log = new TaskStatusLog();

            log.TaskId     = task.Id;
            log.StatusId   = task.StatusId;
            log.CreateDate = DateTime.Now;
            db.TaskStatusLogs.Add(log);

            db.SaveChanges();

            return(View(task));
        }