2 using System.Collections.Generic;
4 using System.Data.Entity;
10 namespace Projects.Models
12 public class ProjectsController : Controller
14 private ProjectsDBEntities db = new ProjectsDBEntities();
17 public ActionResult Index()
19 var projects = db.Projects.Include(p => p.User);
20 return View(projects.ToList());
23 // GET: Projects/Details/5
24 public ActionResult Details(int? id)
28 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
30 Project project = db.Projects.Find(id);
33 return HttpNotFound();
38 // GET: Projects/Create
39 [Authorize(Roles = "admin")]
40 public ActionResult Create()
42 ViewBag.user_id = new SelectList(db.Users, "id", "login");
46 // POST: Projects/Create
47 // To protect from overposting attacks, please enable the specific properties you want to bind to, for
48 // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
49 [Authorize(Roles = "admin")]
51 [ValidateAntiForgeryToken]
52 public ActionResult Create([Bind(Include = "id,user_id,name,description")] Project project)
54 if (ModelState.IsValid)
56 project.created_at = DateTime.Now;
57 project.updated_at = DateTime.Now;
58 db.Projects.Add(project);
60 return RedirectToAction("Index");
63 ViewBag.user_id = new SelectList(db.Users, "id", "login", project.user_id);
67 // GET: Projects/Edit/5
68 [Authorize(Roles = "admin")]
69 public ActionResult Edit(int? id)
73 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
75 Project project = db.Projects.Find(id);
78 return HttpNotFound();
80 ViewBag.user_id = new SelectList(db.Users, "id", "login", project.user_id);
84 // POST: Projects/Edit/5
85 // To protect from overposting attacks, please enable the specific properties you want to bind to, for
86 // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
87 [Authorize(Roles = "admin")]
89 [ValidateAntiForgeryToken]
90 public ActionResult Edit([Bind(Include = "id,user_id,name,description,created_at")] Project project)
92 if (ModelState.IsValid)
94 project.updated_at = DateTime.Now;
95 db.Entry(project).State = EntityState.Modified;
97 return RedirectToAction("Index");
99 ViewBag.user_id = new SelectList(db.Users, "id", "login", project.user_id);
100 return View(project);
103 // GET: Projects/Delete/5
104 [Authorize(Roles = "admin")]
105 public ActionResult Delete(int? id)
109 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
111 Project project = db.Projects.Find(id);
114 return HttpNotFound();
116 return View(project);
119 // POST: Projects/Delete/5
120 [Authorize(Roles = "admin")]
121 [HttpPost, ActionName("Delete")]
122 [ValidateAntiForgeryToken]
123 public ActionResult DeleteConfirmed(int id)
125 Project project = db.Projects.Find(id);
126 db.Projects.Remove(project);
128 return RedirectToAction("Index");
131 protected override void Dispose(bool disposing)
137 base.Dispose(disposing);