示例#1
0
        public async Task <UsuarioResponseSubirImagenDto> SubirImagen(RequestUsuarioModificarImagenMetodo1DtoApi filtroApi)
        {
            UsuarioResponseSubirImagenDto resultado = new UsuarioResponseSubirImagenDto();
            int statusCode = 0;

            try
            {
                //Dentro de AJAX => datatype: 'json', headers: {'Authorization': 'Basic ' + valor token }, ....
                var    response = string.Empty;
                string url      = string.Format("{0}{1}/ImagenMetodo1", ConstanteVo.UrlBaseApi, _nombreControlador);

                using (var client = new HttpClient())
                {
                    if (ConstanteVo.ActivarLLamadasConToken && !string.IsNullOrEmpty(ConfiguracionToken.ConfigToken))
                    {
                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ConfiguracionToken.ConfigToken.Trim());
                    }

                    var content = new StringContent(JsonConvert.SerializeObject(filtroApi), Encoding.UTF8, "application/json");
                    HttpResponseMessage result = await client.PostAsync(new Uri(url), content);

                    if (result != null)
                    {
                        response = await result.Content.ReadAsStringAsync();

                        statusCode = (int)result.StatusCode;
                    }
                }

                ResponseUsuarioSubirImagenDtoApi root = JsonConvert.DeserializeObject <ResponseUsuarioSubirImagenDtoApi>(response);
                if (root != null)
                {
                    resultado.UrlImagen   = root.UrlImagen;
                    resultado.ProcesadoOk = root.ProcesadoOk;
                }
            }
            catch (Exception ex)
            {
                resultado.ListaError.Add(new Entidad.Dto.Global.ErrorDto
                {
                    Mensaje = (ex.InnerException == null ? ex.Message : ex.InnerException.Message)
                });
            }
            finally
            {
                if (resultado != null)
                {
                    resultado.StatusCode = statusCode;
                }
            }

            return(resultado);
        }
示例#2
0
        public UsuarioResponseSubirImagenDto ActualizarImagen()
        {
            UsuarioResponseSubirImagenDto respuesta = new UsuarioResponseSubirImagenDto();
            string urlImagenNueva = string.Empty;

            try
            {
                var idUsuario = Request.Form["IdUsuario"][0];

                bool esError = false;
                if (idUsuario == null)
                {
                    esError = true;
                }
                if (idUsuario == "0")
                {
                    esError = true;
                }
                if (Request.Form.Files == null)
                {
                    esError = true;
                }
                if (!Entidad.Utilitario.Util.EsLong(idUsuario))
                {
                    esError = true;
                }

                if (!esError)
                {
                    if (Request.Form.Files.Any())
                    {
                        var file = Request.Form.Files[0];
                        if (file.Length > 0)
                        {
                            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())
                            {
                                file.CopyTo(memoryStream);
                                archivoBytes = memoryStream.ToArray();
                            }

                            if (archivoBytes != null)
                            {
                                RequestUsuarioModificarImagenMetodo1DtoApi filtroApi = new RequestUsuarioModificarImagenMetodo1DtoApi
                                {
                                    IdUsuario         = Convert.ToInt64(idUsuario),
                                    ArchivoBytes      = archivoBytes,
                                    ExtensionSinPunto = extension
                                };
                                var t = Task.Run(() => _lnUsuario.SubirImagen(filtroApi));
                                t.Wait();
                                if (t.Result != null)
                                {
                                    respuesta = t.Result;
                                }
                            }
                        }
                        else
                        {
                            //Solo Eliminar
                            var t = Task.Run(() => _lnUsuario.EliminarImagen(Convert.ToInt64(idUsuario)));
                            t.Wait();
                            if (t.Result != null)
                            {
                                respuesta = t.Result;
                            }
                        }
                    }
                    else
                    {
                        //Debe de haber por lo menos una imagen
                        respuesta.ListaError.Add(new Entidad.Dto.Global.ErrorDto
                        {
                            Mensaje = "No se ha seleccionado una imágen"
                        });

                        ////Solo Eliminar
                        ////Solo Eliminar
                        //var t = Task.Run(() => _lnUsuario.EliminarImagen(Convert.ToInt64(idUsuario)));
                        //t.Wait();
                        //if (t.Result != null)
                        //{
                        //    respuesta = t.Result;
                        //}
                    }
                }
                else
                {
                    //Error en los parametros
                    respuesta.ListaError.Add(new Entidad.Dto.Global.ErrorDto
                    {
                        Mensaje = "Parametros incompletos para continuar con el proceso"
                    });
                }
            }
            catch (InvalidOperationException invEx)
            {
                Logger.Log(Logger.Level.Error,
                           (string.IsNullOrEmpty(invEx.StackTrace) ? invEx.Message : invEx.StackTrace).Replace(Environment.NewLine, " "));
                respuesta.ListaError.Add(new Entidad.Dto.Global.ErrorDto
                {
                    Mensaje = (string.IsNullOrEmpty(invEx.StackTrace) ? invEx.Message : invEx.StackTrace).Replace(Environment.NewLine, " ")
                });
            }
            catch (Exception ex)
            {
                Logger.Log(Logger.Level.Error, ex.InnerException == null ? ex.Message : ex.InnerException.Message);
                respuesta.ListaError.Add(new Entidad.Dto.Global.ErrorDto
                {
                    Mensaje = ex.InnerException == null ? ex.Message : ex.InnerException.Message
                });
            }

            return(respuesta); //Json(respuesta);
        }