public PublicationDto UpdatePublicationById(int publicationId, PublicationUpdateInputModel body) { // Validate that given publication exists var publication = _publications.FirstOrDefault(p => p.Id == publicationId); if (publication == null) { throw new ResourceNotFoundException($"Publication with id: {publicationId} was not found"); } // Check if given publication has values if it has values change the old value to the new value // if it doesn't we keep the old value so that all other values do not become null publication.EditorFirstName = string.IsNullOrEmpty(body.EditorFirstName) ? publication.EditorFirstName : body.EditorFirstName; publication.EditorLastName = string.IsNullOrEmpty(body.EditorLastName) ? publication.EditorLastName : body.EditorLastName; publication.Title = string.IsNullOrEmpty(body.Title) ? publication.Title : body.Title; publication.Journal = string.IsNullOrEmpty(body.Journal) ? publication.Journal : body.Journal; publication.Isbn = string.IsNullOrEmpty(body.Isbn) ? publication.Isbn : body.Isbn; publication.Year = body.Year.HasValue ? publication.Year : body.Year; publication.Type = string.IsNullOrEmpty(body.Type) ? publication.Type : body.Type; return(new PublicationDto() { EditorFirstName = publication.EditorFirstName, EditorLastName = publication.EditorLastName, Title = publication.Title, Isbn = publication.Isbn, Year = publication.Year, Type = publication.Type }); }
public IActionResult UpdatePublicationById(int publication_id, [FromBody] PublicationUpdateInputModel body) { if (!ModelState.IsValid) { throw new ModelFormatException("Model not properly formatted"); } var publication = _publicationService.UpdatePublicationById(publication_id, body); return(Ok(publication)); }
public void UpdatePublicationById_WhenUpdatedWithExistingId_ReturnsOkResult() { var publication = new PublicationUpdateInputModel() { EditorFirstName = "Lárus", }; var okResult = _controller.UpdatePublicationById(1, publication); var result = Assert.IsType <OkObjectResult>(okResult); Assert.Equal(200, result.StatusCode); }
public PublicationDto UpdatePublicationById(int publicationId, PublicationUpdateInputModel body) => new PublicationDto(_publicationRepo.UpdatePublicationById(publicationId, body));