public async Task <ActionResult <ResponseProductoObtenerPorIdConAtributosDto> > ObtenerPorIdConAtributos(long id) { ResponseProductoObtenerPorIdConAtributosDto respuesta = new ResponseProductoObtenerPorIdConAtributosDto(); if (id == 0) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Objeto no encontrado con el ID proporcionado" }); return(NotFound(respuesta)); } var entidad = await Task.FromResult(_lnProducto.ObtenerPorIdConAtributos(id)); if (entidad == null) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Objeto no encontrado con el ID proporcionado" }); return(NotFound(respuesta)); } respuesta.ProcesadoOk = 1; respuesta.Cuerpo = entidad; return(Ok(respuesta)); }
private void ProcesarCarruselImagenes(ref ResponseProductoObtenerPorIdConAtributosDto respuesta) { if (respuesta == null) { return; } if (respuesta.Cuerpo == null) { return; } if (respuesta.Cuerpo.ListaImagen == null) { return; } if (!respuesta.Cuerpo.ListaImagen.Any()) { return; } int cantidadPredeterminados = respuesta.Cuerpo.ListaImagen.Where(x => Convert.ToBoolean(x.Predeterminado)).Count(); if (cantidadPredeterminados <= 1) { respuesta.Cuerpo.ListaImagen[0].Predeterminado = true; respuesta.Cuerpo.ListaImagen[0].Indice = 1; } else { //si hay mas de 2 predeterminados, solo deberia de haber uno int indice = 1; bool predeterminadoEncontrado = false; foreach (var ima in respuesta.Cuerpo.ListaImagen) { ima.Indice = indice; if (!predeterminadoEncontrado) { if (Convert.ToBoolean(ima.Predeterminado)) { predeterminadoEncontrado = true; } } else { ima.Predeterminado = false; } indice++; } } }
public async Task <ResponseProductoObtenerPorIdConAtributosDto> ObtenerPorId(long id) { ResponseProductoObtenerPorIdConAtributosDto resultado = new ResponseProductoObtenerPorIdConAtributosDto(); int statusCode = 0; try { var response = string.Empty; string url = string.Format("{0}{1}/ObtenerPorIdConAtributos/{2}", ConstanteVo.UrlBaseApi, _nombreControlador, id); using (var client = new HttpClient()) { if (ConstanteVo.ActivarLLamadasConToken && !string.IsNullOrEmpty(ConfiguracionToken.ConfigToken)) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ConfiguracionToken.ConfigToken.Trim()); } HttpResponseMessage result = await client.GetAsync(new Uri(url)); if (result != null) { response = await result.Content.ReadAsStringAsync(); statusCode = (int)result.StatusCode; } } if (!string.IsNullOrEmpty(response)) { resultado = new ResponseProductoObtenerPorIdConAtributosDto(); resultado = JsonConvert.DeserializeObject <ResponseProductoObtenerPorIdConAtributosDto>(response); if (resultado != null) { ProcesarCarruselImagenes(ref resultado); } } } catch (Exception ex) { if (resultado == null) { resultado = new ResponseProductoObtenerPorIdConAtributosDto(); } if (resultado.ListaError == null) { resultado.ListaError = new List <ErrorDtoApi>(); } string exMessage = (ex.InnerException == null ? ex.Message : ex.InnerException.Message).Replace(Environment.NewLine, " "); Log(Level.Error, exMessage); resultado.ListaError.Add(new ErrorDtoApi { Mensaje = exMessage }); } finally { if (resultado != null) { resultado.StatusCode = statusCode; } } return(resultado); }