예제 #1
0
        public async Task <IActionResult> UpdateAsync(int Id, [FromForm] PeliculaCreateDTO peliculaCreateDTO)
        {
            if (peliculaCreateDTO == null)
            {
                return(BadRequest());
            }

            var response = await _peliculasApplication.UpdateAsync(Id, peliculaCreateDTO);

            if (response.IsSuccess)
            {
                return(new CreatedAtRouteResult("obtenerPelicula", new { Id = response.Data.Id }, response.Data));
            }

            return(BadRequest(response.Message));
        }
        public async Task <Response <PeliculaDTO> > UpdateAsync(int Id, PeliculaCreateDTO peliculaCreateCreateDTO)
        {
            var response = new Response <PeliculaDTO>();

            try
            {
                var peliculaDB = await _peliculasDomain.ExistAsync(Id);

                if (peliculaDB != null)
                {
                    peliculaDB = _mapper.Map(peliculaCreateCreateDTO, peliculaDB);

                    if (peliculaCreateCreateDTO.Poster != null)
                    {
                        using (var memoryStream = new MemoryStream())
                        {
                            await peliculaCreateCreateDTO.Poster.CopyToAsync(memoryStream);

                            var contenido = memoryStream.ToArray();
                            var extension = Path.GetExtension(peliculaCreateCreateDTO.Poster.FileName);
                            peliculaDB.Poster = await _almacenadorArhivos.EditarArchivo(contenido, extension, _contenedor, peliculaDB.Poster, peliculaCreateCreateDTO.Poster.ContentType);
                        }
                    }


                    peliculaDB = await _peliculasDomain.UpdateAsync(peliculaDB);

                    response.Data = _mapper.Map <PeliculaDTO>(peliculaDB);
                    if (response.Data != null)
                    {
                        response.IsSuccess = true;
                        response.Message   = "Registro Actualizado!!!";
                    }
                }
                else
                {
                    response.IsSuccess = true;
                    response.Message   = "Registro no existe!!!";
                }
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
            }

            return(response);
        }
예제 #3
0
        private List <PeliculasActores> MapPeliculasActores(PeliculaCreateDTO peliculaCreateDTO, Pelicula pelicula)
        {
            var resultado = new List <PeliculasActores>();

            if (peliculaCreateDTO.Actores == null)
            {
                return(resultado);
            }

            foreach (var Actor in peliculaCreateDTO.Actores)
            {
                resultado.Add(new PeliculasActores()
                {
                    ActorId = Actor.ActorId, Personaje = Actor.Personaje
                });
            }

            return(resultado);
        }
예제 #4
0
        private List <PeliculasGeneros> MapPeliculasGeneros(PeliculaCreateDTO peliculaCreateDTO, Pelicula pelicula)
        {
            var resultado = new List <PeliculasGeneros>();

            if (peliculaCreateDTO.GenerosIds == null)
            {
                return(resultado);
            }

            foreach (var Id in peliculaCreateDTO.GenerosIds)
            {
                resultado.Add(new PeliculasGeneros()
                {
                    GeneroId = Id
                });
            }

            return(resultado);
        }
예제 #5
0
        public IActionResult CrearPelicula([FromForm] PeliculaCreateDTO peliculaDTO)
        {
            if (peliculaDTO == null)
            {
                return(BadRequest(ModelState));
            }

            if (_pelRepo.ExistePelicula(peliculaDTO.Nombre))
            {
                ModelState.AddModelError("", "La pelicula ya existe");
                return(StatusCode(404, ModelState));
            }

            /*Subida de archivos*/
            var    archivo       = peliculaDTO.Foto;
            string rutaPrincipal = _hostingEnvironment.WebRootPath;
            var    archivos      = HttpContext.Request.Form.Files;

            if (archivo.Length > 0)
            {
                //Nuevo imagen
                var nombreFoto = Guid.NewGuid().ToString();
                var subidas    = Path.Combine(rutaPrincipal, @"fotos");
                var extension  = Path.GetExtension(archivos[0].FileName);

                using (var fileStreams = new FileStream(Path.Combine(subidas, nombreFoto + extension), FileMode.Create))
                {
                    archivos[0].CopyTo(fileStreams);
                }
                peliculaDTO.RutaImagen = @"\fotos\" + nombreFoto + extension;
            }

            var pelicula = _mapper.Map <Pelicula>(peliculaDTO);

            if (!_pelRepo.CrearPelicula(pelicula))
            {
                ModelState.AddModelError("", $"Algo salio mal guardando el registro{pelicula.Nombre}");
                return(StatusCode(500, ModelState));
            }

            return(CreatedAtRoute("GetPelicula", new { peliculaId = pelicula.Id }, pelicula));
        }
        public async Task <Response <PeliculaDTO> > InsertAsync(PeliculaCreateDTO peliculaCreateDCreateDTO)
        {
            var response = new Response <PeliculaDTO>();

            try
            {
                var entidad = _mapper.Map <Pelicula>(peliculaCreateDCreateDTO);

                if (peliculaCreateDCreateDTO.Poster != null)
                {
                    using (var memoryStream = new MemoryStream())
                    {
                        await peliculaCreateDCreateDTO.Poster.CopyToAsync(memoryStream);

                        var contenido = memoryStream.ToArray();
                        var extension = Path.GetExtension(peliculaCreateDCreateDTO.Poster.FileName);
                        entidad.Poster = await _almacenadorArhivos.GuardarArchivo(contenido, extension, _contenedor, peliculaCreateDCreateDTO.Poster.ContentType);
                    }
                }



                entidad = await _peliculasDomain.InsertAsync(entidad);

                response.Data = _mapper.Map <PeliculaDTO>(entidad);
                if (response.Data != null)
                {
                    response.IsSuccess = true;
                    response.Message   = "Registro Exitoso!!!";
                }
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
            }

            return(response);
        }