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); }
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); }