예제 #1
0
        public HttpResponseMessage CreateReview([FromBody] Review Review)
        {
            ReviewPersistenceService ReviewPersistenceService = new ReviewPersistenceService();
            HttpResponseMessage      response;

            if (Review.rating < 0 || Review.rating > 10)
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  "Rating must in [0, 10]. Please try again.");
                return(response);
            }

            if (string.IsNullOrEmpty(Review.content))
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  "Content is mandatory. Please try again.");
                return(response);
            }

            if (Review.content.Length > 1400)
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  "Content cannot exceed 1400 characters. Please try again.");
                return(response);
            }

            long id = ReviewPersistenceService.SaveReview(Review);

            if (id == -1)
            {
                response = Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  "Ensure referential integrity. Please try again.");
                return(response);
            }

            Review.reviewID           = id;
            response                  = Request.CreateResponse(HttpStatusCode.Created, Review);
            response.Headers.Location = new Uri(Request.RequestUri, string.Format("Reviews/{0}", id));
            return(response);
        }