示例#1
0
        public async Task <ActionResult <ResponseCategoriaSubirImagenDto> > ImagenMetodo1([FromBody] RequestCategoriaModificarImagenMetodo1Dto modelo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            string urlImagenNueva = string.Empty;

            ResponseCategoriaSubirImagenDto respuesta = new ResponseCategoriaSubirImagenDto();

            if (modelo == null)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "Los parametros enviados no son correctos"
                });
                return(BadRequest(respuesta));
            }

            if (modelo.ArchivoBytes == null)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "El archivo de bytes es requerido"
                });
                return(BadRequest(respuesta));
            }

            var result = await Task.FromResult(_lnCategoria.SubirImagenAws(modelo, ref urlImagenNueva));

            if (result == 0)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "Error al intentar registrar"
                });
                return(BadRequest(respuesta));
            }
            if (result == -1)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "El IdCategoria proporcionado no es válido"
                });
                return(BadRequest(respuesta));
            }

            respuesta.ProcesadoOk = 1;
            respuesta.UrlImagen   = urlImagenNueva;

            return(Ok(respuesta));
        }
示例#2
0
        public async Task <ActionResult <ResponseCategoriaSubirImagenDto> > ImagenMetodo3()
        {
            ResponseCategoriaSubirImagenDto respuesta = new ResponseCategoriaSubirImagenDto();

            try
            {
                var archivoTemp     = Request.Form.Files["Archivo"];
                var idCategoriaTemp = Request.Form["IdCategoria"];
            }
            catch (InvalidOperationException invEx)
            {
                respuesta.ListaError.Add(new ErrorDto
                {
                    Mensaje = "Los parametros 'Archivo' y 'IdCategoria' deben ser enviados mediante 'multipart/form-data'"
                });
                respuesta.ListaError.Add(new ErrorDto
                {
                    Mensaje = (string.IsNullOrEmpty(invEx.StackTrace) ? invEx.Message : invEx.StackTrace).Replace(Environment.NewLine, " ")
                });
                return(BadRequest(respuesta));
            }

            var archivo     = Request.Form.Files["Archivo"];
            var idCategoria = Request.Form["IdCategoria"];

            if (archivo == null || string.IsNullOrEmpty(idCategoria))
            {
                respuesta.ListaError.Add(new ErrorDto
                {
                    Mensaje = "Los parametros 'Archivo' y 'IdCategoria' deben ser enviados mediante 'multipart/form-data'"
                });
                return(BadRequest(respuesta));
            }

            //transformar IFormFile hacia bytes
            var file = archivo;

            if (file.Length == 0)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "Los parametros enviados no son correctos"
                });
                return(BadRequest(respuesta));
            }

            string urlImagenNueva = string.Empty;
            var    nombreArchivo  = System.Net.Http.Headers.ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
            string extension      = Path.GetExtension(nombreArchivo).Trim().Replace(".", string.Empty).ToLower();

            byte[] archivoBytes;
            using (var memoryStream = new MemoryStream())
            {
                await file.CopyToAsync(memoryStream);

                archivoBytes = memoryStream.ToArray();
            }
            RequestCategoriaModificarImagenMetodo1Dto modelo = new RequestCategoriaModificarImagenMetodo1Dto
            {
                ArchivoBytes      = archivoBytes,
                ExtensionSinPunto = extension,
                IdCategoria       = Convert.ToInt32(idCategoria)
            };
            var result = await Task.FromResult(_lnCategoria.SubirImagenAws(modelo, ref urlImagenNueva));

            if (result == 0)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "Error al intentar registrar"
                });
                return(BadRequest(respuesta));
            }

            respuesta.ProcesadoOk = 1;
            respuesta.UrlImagen   = urlImagenNueva;

            return(Ok(respuesta));
        }