public HttpResponseMessage Post([FromBody] MovieTitlesModel model) { try { var entity = this.modelFactory.Parse(model); if (entity == null) { return(this.Request.CreateErrorResponse( HttpStatusCode.BadRequest, "Bad formed JSON request.")); } var titleCheck = this.Validate.CheckMovieTitles(entity.MovieTitle); if (titleCheck) { if (this.movieRepo.Add(entity)) { if (this.movieRepo.SaveAll()) { this.movieRepo.GetTitleForMovie(entity.Id); return(this.Request.CreateResponse(HttpStatusCode.Created, this.modelFactory.Create(entity))); } } } return(this.Request.CreateErrorResponse(HttpStatusCode.Conflict, "Movie title already exists")); } catch (Exception ex) { return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
public HttpResponseMessage Patch(int id, [FromBody] MovieTitlesModel model) { try { var entity = this.movieRepo.GetTitleForMovie(id); if (entity == null) { return(this.Request.CreateResponse(HttpStatusCode.NotFound)); } var parsedMovieValue = this.modelFactory.ParsePatch(model, id); if (parsedMovieValue == null) { return(this.Request.CreateResponse(HttpStatusCode.BadRequest)); } if (!this.Validate.CheckMovieTitlesPatch(model.MovieTitle, "patch")) { return(this.Request.CreateErrorResponse( HttpStatusCode.BadRequest, "A movie title with a differnt ID already has contains that movie title")); } if (this.movieRepo.UpdateMovieTitle(parsedMovieValue) && this.movieRepo.SaveAll()) { return(this.Request.CreateResponse(HttpStatusCode.OK)); } return(this.Request.CreateResponse(HttpStatusCode.BadRequest)); } catch (Exception ex) { return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }