Beispiel #1
0
        // 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));
            }
        }
Beispiel #2
0
        // 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));
            }
        }