public async Task <IActionResult> Post([FromBody] MovieForCreateDto movie)
        {
            if (movie == null)
            {
                return(BadRequest());
            }

            //REF 8 Herramienta de validaciones
            if (!ModelState.IsValid)
            {
                return(new ValidationFailedResult(ModelState));
            }

            var movieEntityNew = Mapper.Map <Movie>(movie);

            this.cinemaService.AddMovie(movieEntityNew);

            var saveResult = await this.cinemaService.Save();

            if (!saveResult)
            {
                throw new Exception("Creating an movie failed on save.");
            }

            var movieDto = Mapper.Map <MovieDto>(movieEntityNew);

            return(CreatedAtRoute("GetMovie", new { id = movieDto.Id }, movieDto));
        }
示例#2
0
        public async Task <IActionResult> Post([FromBody] MovieForCreateDto movie)
        {
            this.logger.LogTrace("Ingreso a crear una pelicula");

            if (movie == null)
            {
                this.logger.LogDebug("El objeto pelicula es nulo");

                return(BadRequest());
            }

            //REF 8 Herramienta de validaciones
            if (!ModelState.IsValid)
            {
                this.logger.LogDebug("El objeto pelicula es invalido");

                return(new ValidationFailedResult(ModelState));
            }

            var movieEntityNew = Mapper.Map <Movie>(movie);

            this.logger.LogDebug($"Se envia agrabar la pelicula {movieEntityNew.Title}");

            this.cinemaService.AddMovie(movieEntityNew);

            var saveResult = await this.cinemaService.Save();

            if (!saveResult)
            {
                this.logger.LogWarning("Ocurrio un problema al grabar la pelicula");

                throw new Exception("Creating an movie failed on save.");
            }

            var movieDto = Mapper.Map <MovieDto>(movieEntityNew);

            this.logger.LogInformation(100, $"Se una nueva pelicula {movieDto.Id} con el titulo {movieDto.Title}.");

            return(CreatedAtRoute("GetMovie", new { id = movieDto.Id }, movieDto));
        }