public async Task <ActionResult <ArtistResource> > UpdateArtist(int id, SaveArtistResource saveArtistResource) { try { var validation = new SaveArtistResourceValidator(); var validationResult = await validation.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var artistToUpdate = await _artistService.GetArtistById(id); if (artistToUpdate == null) { return(BadRequest("Cannot update this artist because it doesn't exist")); } var artist = _mapperService.Map <SaveArtistResource, Artist>(saveArtistResource); var artistUpdated = await _artistService.UpdateArtist(artistToUpdate, artist); var artistsResourceUpdated = _mapperService.Map <Artist, ArtistResource>(artistUpdated); return(Ok(artistsResourceUpdated)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult <ArtistResource> > UpdateArtist(int id, [FromBody] SaveArtistResource saveArtistResource) { var requestIsInvalid = id == 0 || !ModelState.IsValid; if (requestIsInvalid) { return(BadRequest(ModelState)); // this needs refining, but for demo it is ok } var artistToBeUpdated = await _artistService.GetArtistById(id); if (artistToBeUpdated == null) { return(NotFound()); } var artist = _mapper.Map <Artist>(saveArtistResource); await _artistService.UpdateArtist(artistToBeUpdated, artist); var updatedArtist = await _artistService.GetArtistById(id); var updatedArtistResource = _mapper.Map <ArtistResource>(updatedArtist); return(Ok(updatedArtistResource)); }
public async Task <ActionResult <ArtistResource> > UpdateArtist(int id, [FromBody] SaveArtistResource saveArtistResource) { // validation var validation = new SaveArtistResourceValidator(); var validationResult = await validation.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var artistToUpdate = await _artistService.GetArtistById(id); if (artistToUpdate == null) { return(NotFound()); } var artist = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); await _artistService.UpdateArtist(artistToUpdate, artist); var artistUpdated = await _artistService.GetArtistById(id); var artistResource = _mapper.Map <Artist, ArtistResource>(artistUpdated); return(Ok(artistResource)); }
public async Task <ActionResult> CreateArtist([FromBody] SaveArtistResource saveArtist) { var validator = new SaveArtistResourceValidator(); var validatorResult = await validator.ValidateAsync(saveArtist); var errorResponse = new ErrorResponse <IList <FluentValidation.Results.ValidationFailure> >(); if (!validatorResult.IsValid) { errorResponse.status = 400; errorResponse.message = "Bad Request"; errorResponse.errors = validatorResult.Errors; return(BadRequest(errorResponse)); } var artist = _mapper.Map <SaveArtistResource, Artist>(saveArtist); var savedArtist = await _artistService.CreateArtist(artist); var artistResponse = _mapper.Map <Artist, ArtistResource>(savedArtist); var response = new Response <ArtistResource> { status = 201, message = "Artist Created Successfully", data = artistResponse }; return(CreatedAtAction(nameof(GetArtistById), new { id = artistResponse.Id }, response)); }
public async Task <ActionResult <ArtistResource> > PutAsync(int id, [FromBody] SaveArtistResource input) { //try //{ if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var artist = await _supervisor.GetArtistByIdAsync(id); if (artist == null) { return(NotFound(new ErrorResource("Artist not found"))); } artist = _mapper.Map <SaveArtistResource, Artist>(input); var result = await _supervisor.UpdateArtistAsync(id, artist); if (!result.Success) { return(BadRequest(new ErrorResource(result.Message))); } var artistResource = _mapper.Map <Artist, ArtistResource>(result.Artist); return(Ok(artistResource)); //} //catch (Exception ex) //{ // return StatusCode(500, ex); //} }
public async Task <ActionResult <ArtistResource> > CreateArist(SaveArtistResource saveArtistResource) { try { // validation SaveArtistResourceValidator validation = new SaveArtistResourceValidator(); ValidationResult validationResult = await validation.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } // mappage view to db Artist artist = _mapperService.Map <SaveArtistResource, Artist>(saveArtistResource); // Creation artist Artist artistNew = await _serviceArtist.CreateArtist(artist); // mappage view to db ArtistResource artistResource = _mapperService.Map <Artist, ArtistResource>(artistNew); return(Ok(artistResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult <ArtistResource> > UpdateArtist(int id, [FromBody] SaveArtistResource saveArtistResource) { var validator = new SaveArtistResourceValidator(); var validationResult = await validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var artistToBeUpdated = await _artistService.GetArtistById(id); if (artistToBeUpdated == null) { return(NotFound()); } var artist = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); await _artistService.UpdateArtist(artistToBeUpdated, artist); var updatedArtist = await _artistService.GetArtistById(id); var updatedArtistResource = _mapper.Map <Artist, ArtistResource>(updatedArtist); return(Ok(updatedArtistResource)); }
public async Task <ActionResult <ArtistResource> > CreateArtist(SaveArtistResource saveArtistResource) { var artistToCreate = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); var newArtist = await _artistService.CreateArtist(artistToCreate); var artist = await _artistService.GetArtistById(newArtist.Id); var artistResource = _mapper.Map <Artist, ArtistResource>(artist); return(Ok(artistResource)); }
public async Task <ActionResult> UpdateArtist(int id, [FromBody] SaveArtistResource saveArtist) { var response = new Response <ArtistResource>(); if (id == 0) { response.status = 400; response.message = "Artist Id cannot be 0"; return(BadRequest(response)); } var validator = new SaveArtistResourceValidator(); var validatorResult = await validator.ValidateAsync(saveArtist); var errorResponse = new ErrorResponse <IList <FluentValidation.Results.ValidationFailure> >(); if (!validatorResult.IsValid) { errorResponse.status = 400; errorResponse.message = "Bad Request"; errorResponse.errors = validatorResult.Errors; return(BadRequest(errorResponse)); } var artistToUpdate = await _artistService.GetArtistById(id); if (artistToUpdate == null) { response.status = 404; response.message = string.Format("Artist with id: {0} does not exist", id); return(StatusCode(404, response)); } var artist = _mapper.Map <SaveArtistResource, Artist>(saveArtist); await _artistService.UpdateArtist(artistToUpdate, artist); var updatedArtist = await _artistService.GetArtistById(artistToUpdate.Id); var artistResource = _mapper.Map <Artist, ArtistResource>(updatedArtist); response.status = 200; response.message = "Artist Updated Successfully"; response.data = artistResource; return(Ok(response)); }
public async Task <ActionResult <ArtistResource> > CreateArtist([FromBody] SaveArtistResource saveArtistResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); // this needs refining, but for demo it is ok } var artistToCreate = _mapper.Map <Artist>(saveArtistResource); var newArtist = await _artistService.CreateArtist(artistToCreate); var artist = await _artistService.GetArtistById(newArtist.Id); var artistResource = _mapper.Map <ArtistResource>(artist); return(Ok(artistResource)); }
public async Task <ActionResult <ArtistResource> > CreateArtist([FromBody] SaveArtistResource saveArtistResource) { var validationResult = await _validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var artistToCreate = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); var newArtist = await _artistService.CreateArtist(artistToCreate); var artistResource = _mapper.Map <Artist, ArtistResource>(newArtist); return(Ok(artistResource)); }
public async Task <ActionResult <ArtistResource> > CreateArtist([FromBody] SaveArtistResource saveArtistResource) { var validator = new SaveArtistResourceValidator(); var validationResult = await validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var artistToCreate = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); var newArtist = await _artistService.CreateArtist(artistToCreate); var artist = await _artistService.GetArtistById(newArtist.Id); var artistResource = _mapper.Map <Artist, ArtistResource>(artist); return(Ok(artistResource)); }
public async Task <ActionResult <ArtistResource> > PostAsync([FromBody] SaveArtistResource input) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } var artist = _mapper.Map <SaveArtistResource, Artist>(input); var result = await _supervisor.AddArtistAsync(artist); if (!result.Success) { return(BadRequest(new ErrorResource(result.Message))); } var artistResource = _mapper.Map <Artist, ArtistResource>(result.Artist); return(StatusCode(201, artistResource)); }
public async Task <ActionResult <ArtistResource> > UpdateArtist(int id, [FromBody] SaveArtistResource saveArtistResource) { var validationResult = await _validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var artist = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); await _artistService.UpdateArtist(id, artist); var updatedArtist = await _artistService.GetArtistById(id); var updatedArtistResource = _mapper.Map <Artist, ArtistResource>(updatedArtist); return(Ok(updatedArtistResource)); }
public async Task <ActionResult <ArtistResource> > CreateArist([FromBody] SaveArtistResource saveArtistResource) // "Notice the [FromBody] attribute before the parameter, it indicates that this object is coming from the requests body". { var validator = new SaveArtistResourceValidator(); var validationResult = await validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok. How could/should this be refined for production? } var artistToCreate = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); var newArtist = await _artistService.CreateArtist(artistToCreate); var artist = await _artistService.GetArtistById(newArtist.Id); var artistResource = _mapper.Map <Artist, ArtistResource>(artist); return(Ok(artistResource)); }
public async Task <ActionResult <ArtistResource> > CreateArtist([FromBody] SaveArtistResource saveArtistResource) { SaveArtistResourceValidator validator = new SaveArtistResourceValidator(); var validationResult = await validator.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } Artist artistToBeCreated = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); Artist newArtist = await _artistService.CreateArtist(artistToBeCreated); Artist artist = await _artistService.GetArtistById(newArtist.Id); ArtistResource artistResource = _mapper.Map <Artist, ArtistResource>(artist); return(Ok(artistResource)); }
public async Task <ActionResult <ArtistResource> > UpdateArtist(int id, SaveArtistResource saveArtistResource) { var artistToBeUpdated = await _artistService.GetArtistById(id); if (artistToBeUpdated == null) { return(NotFound()); } var artist = _mapper.Map <SaveArtistResource, Artist>(saveArtistResource); await _artistService.UpdateArtist(artistToBeUpdated, artist); var updatedArtist = await _artistService.GetArtistById(id); var updatedArtistResource = _mapper.Map <Artist, ArtistResource>(updatedArtist); return(Ok(updatedArtistResource)); }
public async Task <ActionResult <ArtistResource> > UpdateArist(int id, SaveArtistResource saveArtistResource) { try { // Get arist by ID Artist artistUpdate = await _serviceArtist.GetArtistById(id); if (artistUpdate == null) { return(NotFound()); } // validation SaveArtistResourceValidator validation = new SaveArtistResourceValidator(); ValidationResult validationResult = await validation.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } //mappage Artist artist = _mapperService.Map <SaveArtistResource, Artist>(saveArtistResource); // update Artist await _serviceArtist.UpdateArtist(artistUpdate, artist); //get artistBy id Artist artistNew = await _serviceArtist.GetArtistById(id); /// mappage ArtistResource artisrNewResource = _mapperService.Map <Artist, ArtistResource>(artistNew); return(Ok(artisrNewResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult <ArtistResource> > CreateArtist(SaveArtistResource saveArtistResource) { try { var validation = new SaveArtistResourceValidator(); var validationResult = await validation.ValidateAsync(saveArtistResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var artistToCreate = _mapperService.Map <SaveArtistResource, Artist>(saveArtistResource); var artistCreated = await _artistService.CreateArtist(artistToCreate); var artistsResource = _mapperService.Map <Artist, ArtistResource>(artistCreated); return(Ok(artistsResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }