public async Task <IActionResult> CreateReview([FromBody] ReviewCreate creationModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var review = await _reviewData.CreateReview(creationModel);

                var returnModel = Mapper.Map <ReviewReturnModel>(review);

                var links = CreateLinksForReview(returnModel.Id, null);

                var returnModelWithLinks = returnModel.ShapeData(null)
                                           as IDictionary <string, object>;

                returnModelWithLinks.Add("links", links);

                return(CreatedAtRoute("GetReview", new { id = returnModel.Id }, returnModelWithLinks));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
        public async Task <IActionResult> Create(ReviewModel review)
        {
            if (ModelState.IsValid == false)
            {
                return(View());
            }
            string autoId = await _reviewData.CreateReview(review);

            return(RedirectToAction("Index", new { autoId }));
        }
Beispiel #3
0
        public async Task <IActionResult> CreateReview(ReviewCreateViewModel createModel)
        {
            if (ModelState.IsValid)
            {
                var response = await _reviewData.CreateReview(createModel);

                if (!response.IsSuccessful)
                {
                    return(View("Error", new ErrorViewModel(response.ErrorMessage,
                                                            response.ErrorException.ToString())));
                }

                return(RedirectToAction("Review", new { resourceUrl =
                                                            response.Headers.FirstOrDefault(h => h.Name == "Location").Value.ToString() }));
            }

            ModelState.AddModelError("Error", "Not all fields were filled in correctly.");
            return(View());
        }