public IHttpActionResult PutAssignment(int id, AssignmentDetailTeacherDTO assignmentDTO) { Authorize auth = new Authorize(); User authorizedUser = auth.GetAuthorizedUser(Request.Headers.GetCookies("user").FirstOrDefault()); if (authorizedUser == null || authorizedUser.GetTeacher() == null) { return(Unauthorized()); } Assignment assignment = db.Assignments.Find(id); if (assignmentDTO == null || assignment == null || assignment.Course == null || !ModelState.IsValid) { return(BadRequest(ModelState)); } Course course = assignment.Course; if (!"Teacher".Equals(auth.GetAccessRole(authorizedUser, course))) { return(Unauthorized()); } if (!assignmentDTO.Validate(assignment, null)) { return(BadRequest()); } assignmentDTO.Update(assignment, null); string error = db.Update(assignment, Modified); if (error != null) { return(BadRequest(error)); } return(Redirect("https://" + Request.RequestUri.Host + ":" + Request.RequestUri.Port + "/Assignments/" + assignment.Id)); }
public IHttpActionResult PostAssignment(AssignmentDetailTeacherDTO assignmentDTO) { Authorize auth = new Authorize(); User authorizedUser = auth.GetAuthorizedUser(Request.Headers.GetCookies("user").FirstOrDefault()); if (authorizedUser == null || authorizedUser.GetTeacher() == null) { return(Unauthorized()); } Course course = db.Courses.Find(assignmentDTO.NewCourseId); if (!"Teacher".Equals(auth.GetAccessRole(authorizedUser, course))) { return(Unauthorized()); } Assignment derived = null; if (assignmentDTO.NewIsDerived) { if (assignmentDTO.NewDerivedFromName == null) { return(BadRequest()); } foreach (Assignment otherAssignment in course.Assignments) { if (assignmentDTO.NewDerivedFromName.Equals(otherAssignment.Name)) { derived = otherAssignment; break; } } if (derived == null) { return(BadRequest()); } } if (!ModelState.IsValid || course == null || !assignmentDTO.Validate(null, derived)) { return(BadRequest()); } ICollection <object> objects = assignmentDTO.Create(derived); string error = db.UpdateAll(objects, Added); if (error != null) { return(BadRequest(error)); } return(Redirect("https://" + Request.RequestUri.Host + ":" + Request.RequestUri.Port + "/Courses/" + course.Id)); }