示例#1
0
        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));
        }
示例#2
0
        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++;
                }
            }
        }
示例#3
0
        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);
        }