public ActionResult Add(AuthorCreateVM model) { if (model == null) { return(View()); } if (ModelState.IsValid) { try { authorLogic.Add(new Entities.Author() { FirstName = model.FirstName, LastName = model.LastName }); } catch (System.Exception e) { if (e is DalException) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } else { logger.Warning("BL", e); } } logger.Info("Author was added", "Presentation layer, class AuthorController, method ActionResult Create(AuthorCreateVM)"); } return(View(model)); }
public IActionResult CreateAuthor([FromBody] AuthorCreateVM authorVM, [FromHeader(Name = "Accept")] string mediaType) { if (authorVM == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(new UnprocessableEntityObject(ModelState)); } var author = Mapper.Map <Author>(authorVM); libraryRepository.AddAuthor(author); if (!libraryRepository.Save()) { throw new Exception("Creating author failed to save"); } var createdAuthor = Mapper.Map <AuthorVM>(author); if (mediaType == "application/vnd.marvin.hateoas+json") { var links = CreateAuthorLinks(createdAuthor.Id, null); var linkedResourceToReturn = createdAuthor.ShapeData(null) as IDictionary <string, object>; linkedResourceToReturn.Add("links", links); return(CreatedAtRoute("GetAuthor", new { id = linkedResourceToReturn["Id"] }, linkedResourceToReturn)); } else { return(CreatedAtRoute("GetAuthor", new { id = createdAuthor.Id }, createdAuthor)); } }