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));
            }
        }
Beispiel #2
0
        // [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));
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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)));
        }
Beispiel #9
0
    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));
        }
Beispiel #12
0
        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));
        }
Beispiel #13
0
        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));
        }
Beispiel #14
0
        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));
        }