using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Net; using System.Web; using System.Web.Mvc; using Projects.Models; namespace Projects.Controllers { public class ProjectTasksController : Controller { private ProjectsDBEntities db = new ProjectsDBEntities(); // GET: ProjectTasks public ActionResult Index() { var projectTasks = db.ProjectTasks.Include(p => p.Project).Include(p => p.TaskStatus).Include(p => p.User); return View(projectTasks.ToList()); } // GET: ProjectTasks/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } ProjectTask projectTask = db.ProjectTasks.Find(id); if (projectTask == null) { return HttpNotFound(); } return View(projectTask); } // GET: ProjectTasks/Create public ActionResult Create() { ViewBag.project_id = new SelectList(db.Projects, "id", "name"); ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status"); ViewBag.user_id = new SelectList(db.Users, "id", "login"); return View(); } // POST: ProjectTasks/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "id,project_id,name,description,created_at,updated_at,task_status_id,user_id")] ProjectTask projectTask) { if (ModelState.IsValid) { db.ProjectTasks.Add(projectTask); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id); ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status", projectTask.task_status_id); ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id); return View(projectTask); } // GET: ProjectTasks/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } ProjectTask projectTask = db.ProjectTasks.Find(id); if (projectTask == null) { return HttpNotFound(); } ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id); ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status", projectTask.task_status_id); ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id); return View(projectTask); } // POST: ProjectTasks/Edit/5 // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "id,project_id,name,description,created_at,updated_at,task_status_id,user_id")] ProjectTask projectTask) { if (ModelState.IsValid) { db.Entry(projectTask).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id); ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status", projectTask.task_status_id); ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id); return View(projectTask); } // GET: ProjectTasks/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } ProjectTask projectTask = db.ProjectTasks.Find(id); if (projectTask == null) { return HttpNotFound(); } return View(projectTask); } // POST: ProjectTasks/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { ProjectTask projectTask = db.ProjectTasks.Find(id); db.ProjectTasks.Remove(projectTask); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }