// POST api/projecttasks public IHttpActionResult Post([FromBody] ProjectTaskStandaloneViewModel viewModel) { try { if (viewModel == null) { return(BadRequest(ModelState)); } var currentUser = GetCurrentUser(); ValidateViewModel(viewModel, _repository, currentUser); if (ModelState.IsValid) { var projectTask = viewModel.GetModel(currentUser); _repository.SaveProjectTask(projectTask); var uriString = Url.Link("DefaultApi", new { controller = "ProjectTasks", id = projectTask.ProjectTaskId }); return(Created(uriString, new { ProjectTaskId = projectTask.ProjectTaskId, Name = projectTask.Name })); } else { return(Error(ModelState)); } } catch (Exception exc) { return(InternalServerError(exc)); } }
// PUT api/projecttasks/5 public IHttpActionResult Put(int id, [FromBody] ProjectTaskStandaloneViewModel viewModel) { try { if (viewModel == null) { return(BadRequest(ModelState)); } var projectTask = _repository.GetProjectTask(id); var currentUser = GetCurrentUser(); if (projectTask.Project.UserId != currentUser.UserId) { return(Forbidden("You can only update project tasks for the current user.")); } ValidateViewModel(viewModel, _repository, currentUser); if (ModelState.IsValid) { viewModel.UpdateModel(projectTask, currentUser); _repository.SaveProjectTask(projectTask); return(NoContent()); } else { return(Error(ModelState)); } } catch (Exception exc) { return(InternalServerError(exc)); } }