コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }