public async Task <ActionResult <MusicResource> > CreateMusic(MusicToSaveResource musicToSave) { try { // Get current User var userId = User.Identity.Name; // Validation of input Data var validation = new MusicToSaveResourceValidator(); var validationResult = await validation.ValidateAsync(musicToSave); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } // Mapping var music = _mapperService.Map <MusicToSaveResource, Music>(musicToSave); // Create music var musicCreated = await _musicService.CreateMusic(music); // Mapping var musicResult = _mapperService.Map <Music, MusicResource>(musicCreated); return(Ok(musicResult)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
// [Authorize] public async Task <ActionResult <MusicResource> > CreateMusic(SaveMusicResource saveMusicResource) { try { //GET Current user var userId = User.Identity.Name; // Validation SaveMusicResourceValidator validation = new SaveMusicResourceValidator(); ValidationResult validationResult = await validation.ValidateAsync(saveMusicResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } // mappage view à la BD Music music = _mapperService.Map <SaveMusicResource, Music>(saveMusicResource); // Creation de music Music newMusic = await _musicService.CreateMusic(music); // mappage BD à la view MusicResource musicResource = _mapperService.Map <Music, MusicResource>(newMusic); return(Ok(musicResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
[Authorize] // We need to be authenticate to create a music public async Task <ActionResult <MusicResource> > CreateMusic(SaveMusicResource saveMusicResource) { try { // Validation var validation = new SaveMusicResourceValidator(); var validationResult = await validation.ValidateAsync(saveMusicResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } // Mappage var music = _mapperService.Map <SaveMusicResource, Music>(saveMusicResource); // Music Creation var newMusic = await _musicService.CreateMusic(music); // Mappage var musicResource = _mapperService.Map <Music, MusicResource>(newMusic); return(Ok(musicResource)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult <MusicResource> > CreateMusic(SaveMusicResource saveMusicResource) { var musicToCreate = _mapper.Map <SaveMusicResource, Music>(saveMusicResource); var newMusic = await _musicService.CreateMusic(musicToCreate); var music = await _musicService.GetMusicById(newMusic.Id); var musicResource = _mapper.Map <Music, MusicResource>(music); return(Ok(musicResource)); }
public async Task <ActionResult <MusicResource> > CreateMusic([FromBody] SaveResourceMusic musicSaveResource) { var validatorMusic = new SaveMusicResourceValidator(); var validationResult = await validatorMusic.ValidateAsync(musicSaveResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var music = _mapper.Map <SaveResourceMusic, Music>(musicSaveResource); var newMusic = await _musicService.CreateMusic(music); return(Ok(newMusic)); }
public async Task <ActionResult <MusicDTO> > CreateMusic([FromBody] SaveMusicDTO saveMusicDTO) { var validator = new SaveMusicDTOValidator(); var validatorResult = await validator.ValidateAsync(saveMusicDTO); if (!validatorResult.IsValid) { return(BadRequest(validatorResult.Errors)); } var musicDTO = await _musicService.CreateMusic(saveMusicDTO); return(Ok(musicDTO)); }
public async Task <ActionResult <MusicResource> > CreateMusic([FromBody] SaveMusicResource saveMusicResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); // this needs refining, but for demo it is ok } var musicToCreate = _mapper.Map <Music>(saveMusicResource); var newMusic = await _musicService.CreateMusic(musicToCreate); var music = await _musicService.GetMusicById(newMusic.Id); var musicResource = _mapper.Map <MusicResource>(music); return(Ok(musicResource)); }
public async Task <ActionResult <MusicDto> > CreateMusic([FromBody] SaveMusicDto musicResource) { var validation = await _validator.ValidateAsync(musicResource); if (!validation.IsValid) { return(BadRequest(validation.Errors)); } var music = _mapper.Map <SaveMusicDto, Music>(musicResource); var newMusic = await _musicService.CreateMusic(music); //optional newMusic = await _musicService.GetMusicById(newMusic.Id); return(CreatedAtAction("CreateMusic", _mapper.Map <Music, MusicDto>(newMusic))); }
public async Task <ActionResult <MusicResource> > CreateMusic([FromBody] SaveMusicResource saveMusicResource) { var validator = new SaveMusicResourceValidator(); var validationResult = await validator.ValidateAsync(saveMusicResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var musicToCreate = _mapper.Map <SaveMusicResource, Music>(saveMusicResource); var newMusic = await _musicService.CreateMusic(musicToCreate); var music = await _musicService.GetMusicById(newMusic.Id); var musicResource = _mapper.Map <Music, MusicResource>(music); return(Ok(musicResource)); }
public async Task <ActionResult <MusicDTO> > CreateMusic([FromBody] SaveMusicDTO saveMusicResource) { var validator = new SaveMusicResourceValidator(); var validationResult = await validator.ValidateAsync(saveMusicResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } var musicToCreate = _mapper.Map <SaveMusicDTO, Music>(saveMusicResource); var newMusic = await _musicService.CreateMusic(musicToCreate); var music = await _musicService.GetMusicWithArtistById(newMusic.Id); var musicResource = _mapper.Map <Music, MusicDTO>(music); return(Ok(musicResource)); }
public async Task <ActionResult <MusicResource> > CreateMusic([FromBody] SaveMusicResource saveMusicResource) // "Notice the [FromBody] attribute before the parameter, it indicates that this object is coming from the requests body". { var validator = new SaveMusicResourceValidator(); var validationResult = await validator.ValidateAsync(saveMusicResource); 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 musicToCreate = _mapper.Map <SaveMusicResource, Music>(saveMusicResource); var newMusic = await _musicService.CreateMusic(musicToCreate); var music = await _musicService.GetMusicById(newMusic.Id); var musicResource = _mapper.Map <Music, MusicResource>(music); return(Ok(musicResource)); }
public async Task <ActionResult <MusicResource> > CreateMusic([FromBody] SaveMusicResource saveMusicResource) { SaveMusicResourceValidator validator = new SaveMusicResourceValidator(); var validationResult = await validator.ValidateAsync(saveMusicResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); } Music musicToBeCreated = _mapper.Map <SaveMusicResource, Music>(saveMusicResource); Music newMusic = await _musicService.CreateMusic(musicToBeCreated); Music music = await _musicService.GetMusicById(newMusic.Id); var musicResource = _mapper.Map <Music, MusicResource>(music); return(Ok(musicResource)); }
public async Task <ActionResult <Response <MusicResource> > > CreateMusic([FromBody] SaveMusicResource saveMusic) { var validator = new SaveMusicResourceValidator(); var validatorResult = await validator.ValidateAsync(saveMusic); var errorResponse = new ErrorResponse <IList <FluentValidation.Results.ValidationFailure> >(); if (!validatorResult.IsValid) { errorResponse.status = 400; errorResponse.errors = validatorResult.Errors; errorResponse.message = "Bad Request"; return(BadRequest(errorResponse)); } var music = _mapper.Map <SaveMusicResource, Music>(saveMusic); var savedMusic = await _musicService.CreateMusic(music); var musicWithArtist = await _musicService.GetMusicById(savedMusic.Id); var response = new Response <MusicResource>(); if (musicWithArtist == null) { response.status = 500; response.message = "Failed to save. An error occurred"; return(StatusCode(500, response)); } var musicResource = _mapper.Map <Music, MusicResource>(musicWithArtist); response.data = musicResource; response.status = 201; response.message = "Music Created Successfully"; return(CreatedAtAction(nameof(GetByMusicId), new { id = musicResource.Id }, response)); }
public async Task <ActionResult <MusicDtoR> > AddMusic(MusicDtoW musicDto) { var validator = new MusicDtoW.Validator().Validate(musicDto); if (!validator.IsValid) { return(BadRequest(validator.Errors)); } var musicEntity = _mapper.Map <Music>(musicDto); var musicCraeted = await _musicService.CreateMusic(musicEntity, true); var musicReadDto = _mapper.Map <MusicDtoR>(musicCraeted); BuildLinksForObject(musicReadDto, musicReadDto.Id); // Publish event for audit _userEventService.EmitUserEvent(HttpContext.User, UserActionType.ArtistAdded); HttpContext.Response.StatusCode = 201; return(musicReadDto); }
public async Task <IActionResult> CreateMusic([FromBody] MusicSaveDto musicDto) { var newMusic = await _musicService.CreateMusic(musicDto); return(Ok(newMusic)); }