Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
0
        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));
        }
Ejemplo n.º 12
0
        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));
        }
Ejemplo n.º 14
0
        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));
        }
Ejemplo n.º 17
0
        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));
            }
        }
Ejemplo n.º 19
0
        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));
            }
        }