public ActionResult UpdateTastingNote(int brewId, int id, [FromBody] TastingNoteForUpdateDto tastingNote, [FromHeader(Name = ExtendedControllerBase.ACCEPT)] string mediaTypes) { var splitMediaTypes = mediaTypes.Split(','); if (!MediaTypeHeaderValue.TryParseList(splitMediaTypes, out IList <MediaTypeHeaderValue> parsedMediaTypes)) { return(BadRequest()); } if (!_homebrewRepository.BrewExists(brewId)) { return(NotFound()); } var tastingNoteEntity = _homebrewRepository.GetTastingNote(brewId, id); if (tastingNoteEntity == null) { return(NotFound()); } // TODO: Check BrewId/Brew isn't skipped _mapper.Map(tastingNote, tastingNoteEntity); _homebrewRepository.UpdateTastingNote(tastingNoteEntity); _homebrewRepository.Save(); if (parsedMediaTypes.Any(pmt => pmt.SubTypeWithoutSuffix.EndsWith(this.HATEOAS, StringComparison.InvariantCultureIgnoreCase))) { var links = CreateLinksForTastingNote(brewId, id); var linkedResourcesToReturn = _mapper.Map <TastingNoteDto>(tastingNote) .ShapeData(null) as IDictionary <string, object>; linkedResourcesToReturn.Add(this.LINKS, links); return(Ok(linkedResourcesToReturn)); } return(NoContent()); }