2 using System.Collections.Generic;
4 using System.Data.Entity;
5 using System.Data.Entity.Infrastructure;
9 using System.Threading.Tasks;
10 using System.Web.Http;
11 using System.Web.Http.Description;
12 using Projects.Models;
14 namespace Projects.Controllers.api
17 public class ProjectTasksController : ApiController
19 private ProjectsDBEntities db = new ProjectsDBEntities();
21 // GET: api/ProjectTasks
22 public IQueryable<ProjectTask> GetProjectTasks()
24 db.Configuration.ProxyCreationEnabled = false;
25 db.Configuration.LazyLoadingEnabled = false;
26 return db.ProjectTasks;
29 // GET: api/ProjectTasks/5
30 [ResponseType(typeof(ProjectTask))]
31 public async Task<IHttpActionResult> GetProjectTask(int id)
33 ProjectTask projectTask = await db.ProjectTasks.FindAsync(id);
34 if (projectTask == null)
39 return Ok(projectTask);
42 // PUT: api/ProjectTasks/5
43 [ResponseType(typeof(void))]
44 public async Task<IHttpActionResult> PutProjectTask(int id, ProjectTask projectTask)
46 if (!ModelState.IsValid)
48 return BadRequest(ModelState);
51 if (id != projectTask.id)
56 db.Entry(projectTask).State = EntityState.Modified;
60 await db.SaveChangesAsync();
62 catch (DbUpdateConcurrencyException)
64 if (!ProjectTaskExists(id))
74 return StatusCode(HttpStatusCode.NoContent);
77 // POST: api/ProjectTasks
78 [ResponseType(typeof(ProjectTask))]
79 public async Task<IHttpActionResult> PostProjectTask(ProjectTask projectTask)
81 if (!ModelState.IsValid)
83 return BadRequest(ModelState);
86 db.ProjectTasks.Add(projectTask);
87 await db.SaveChangesAsync();
89 return CreatedAtRoute("DefaultApi", new { id = projectTask.id }, projectTask);
92 // DELETE: api/ProjectTasks/5
93 [ResponseType(typeof(ProjectTask))]
94 public async Task<IHttpActionResult> DeleteProjectTask(int id)
96 ProjectTask projectTask = await db.ProjectTasks.FindAsync(id);
97 if (projectTask == null)
102 db.ProjectTasks.Remove(projectTask);
103 await db.SaveChangesAsync();
105 return Ok(projectTask);
108 protected override void Dispose(bool disposing)
114 base.Dispose(disposing);
117 private bool ProjectTaskExists(int id)
119 return db.ProjectTasks.Count(e => e.id == id) > 0;