2 using System.Collections.Generic;
4 using System.Data.Entity;
11 namespace Projects.Controllers
13 public class ProjectTasksController : Controller
15 private ProjectsDBEntities db = new ProjectsDBEntities();
18 public ActionResult Index()
20 var projectTasks = db.ProjectTasks.Include(p => p.Project).Include(p => p.TaskStatus).Include(p => p.User);
21 return View(projectTasks.ToList());
24 // GET: ProjectTasks/Details/5
25 public ActionResult Details(int? id)
29 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
31 ProjectTask projectTask = db.ProjectTasks.Find(id);
32 if (projectTask == null)
34 return HttpNotFound();
36 return View(projectTask);
39 // GET: ProjectTasks/Create
41 public ActionResult Create()
43 ViewBag.project_id = new SelectList(db.Projects, "id", "name");
44 ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status");
45 ViewBag.user_id = new SelectList(db.Users, "id", "login");
49 // POST: ProjectTasks/Create
50 // To protect from overposting attacks, please enable the specific properties you want to bind to, for
51 // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
54 [ValidateAntiForgeryToken]
55 public ActionResult Create([Bind(Include = "id,project_id,name,description,created_at,updated_at,task_status_id,user_id")] ProjectTask projectTask)
57 if (ModelState.IsValid)
59 projectTask.created_at = DateTime.Now;
60 projectTask.updated_at = DateTime.Now;
61 db.ProjectTasks.Add(projectTask);
63 return RedirectToAction("Index");
66 ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id);
67 ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status", projectTask.task_status_id);
68 ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id);
69 return View(projectTask);
72 // GET: ProjectTasks/Edit/5
74 public ActionResult Edit(int? id)
78 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
80 ProjectTask projectTask = db.ProjectTasks.Find(id);
81 if (projectTask == null)
83 return HttpNotFound();
85 ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id);
86 ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status", projectTask.task_status_id);
87 ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id);
88 return View(projectTask);
91 // POST: ProjectTasks/Edit/5
92 // To protect from overposting attacks, please enable the specific properties you want to bind to, for
93 // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
96 [ValidateAntiForgeryToken]
97 public ActionResult Edit([Bind(Include = "id,project_id,name,description,task_status_id,user_id,created_at")] ProjectTask projectTask)
99 if (ModelState.IsValid)
101 projectTask.updated_at = DateTime.Now;
102 db.Entry(projectTask).State = EntityState.Modified;
104 return RedirectToAction("Index");
106 ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id);
107 ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status", projectTask.task_status_id);
108 ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id);
109 return View(projectTask);
112 // GET: ProjectTasks/Delete/5
113 [Authorize(Roles = "admin")]
114 public ActionResult Delete(int? id)
118 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
120 ProjectTask projectTask = db.ProjectTasks.Find(id);
121 if (projectTask == null)
123 return HttpNotFound();
125 return View(projectTask);
128 // POST: ProjectTasks/Delete/5
129 [Authorize(Roles = "admin")]
130 [HttpPost, ActionName("Delete")]
131 [ValidateAntiForgeryToken]
132 public ActionResult DeleteConfirmed(int id)
134 ProjectTask projectTask = db.ProjectTasks.Find(id);
135 db.ProjectTasks.Remove(projectTask);
137 return RedirectToAction("Index");
140 protected override void Dispose(bool disposing)
146 base.Dispose(disposing);