Ejemplo n.º 1
0
            public async Task <CarritoDto> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                CarritoSesion carritoSesion = await _contexto.CarritoSesion.FirstOrDefaultAsync(x => x.CarritoSesionId == request.CarritoSesionId);

                List <CarritoSesionDetalle> carritoSesionDetalle = await _contexto.CarritoSesionDetalle.Where(x => x.CarritoSesionId == request.CarritoSesionId).ToListAsync();

                List <CarritoDetalleDto> carritoDetalleDtos = new List <CarritoDetalleDto>();

                foreach (var libro in carritoSesionDetalle)
                {
                    var response = await _libroService.GetLibro(new Guid(libro.ProductoSeleccionado));

                    if (response.resultado)
                    {
                        LibroRemote       ObjetoLibro    = response.libro;
                        CarritoDetalleDto carritoDetalle = _mapper.Map <LibroRemote, CarritoDetalleDto>(ObjetoLibro);
                        carritoDetalleDtos.Add(carritoDetalle);
                    }
                }
                CarritoDto carritoDto = new CarritoDto()
                {
                    CarritoId           = carritoSesion.CarritoSesionId,
                    FechaCreacionSesion = carritoSesion.FechaCreacion,
                    ListaProductos      = carritoDetalleDtos
                };

                return(carritoDto);
            }
Ejemplo n.º 2
0
        public async Task <(bool resultado, LibroRemote libro, string ErrorMesage)> GetLibro(Guid libroId)
        {
            try
            {
                logger.LogInformation("Entro yahoooooooooooooooooooooooo");
                var cliente  = httpCLient.CreateClient("Libros");
                var response = await cliente.GetAsync($"api/LibroMaterial/{libroId}");

                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsStringAsync();

                    var options = new JsonSerializerOptions()
                    {
                        PropertyNameCaseInsensitive = true
                    };
                    LibroRemote libro = JsonSerializer.Deserialize <LibroRemote>(content, options);
                    return(true, libro, string.Empty);
                }

                return(false, null, response.ReasonPhrase);
            }
            catch (Exception ex)
            {
                logger.LogError(ex.ToString());
                return(false, null, ex.Message);
            }
        }
        public async Task <(bool resultado, LibroRemote libro, string ErrorMessage)> GetLibro(Guid LibroId)
        {
            try
            {
                var cliente  = _httpClient.CreateClient("Libros");
                var response = await cliente.GetAsync($"api/LibroMaterial/TraerLibro?id={LibroId}");

                if (response.IsSuccessStatusCode)
                {
                    string contenido = await response.Content.ReadAsStringAsync();

                    JsonSerializerOptions options = new JsonSerializerOptions()
                    {
                        PropertyNameCaseInsensitive = true
                    };
                    LibroRemote libroRemote = JsonSerializer.Deserialize <LibroRemote>(contenido, options);
                    return(true, libroRemote, null);
                }
                return(false, null, response.ReasonPhrase);
            }
            catch (Exception e)
            {
                _logger.LogError(e.ToString());
                return(false, null, e.Message);
            }
            throw new NotImplementedException();
        }
Ejemplo n.º 4
0
            public async Task <CarritoDto> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                CarritoSesion carritoSesion = await Contexto.CarritoSesion.FirstOrDefaultAsync(c => c.CarritoSesionId == request.CarritoSesionId);

                List <CarritoSesionDetalle> carritoSesionDetalle = await Contexto.CarritoSesionDetalle.Where(c => c.CarritoSesionId == request.CarritoSesionId).ToListAsync();

                List <CarritoDetalleDto> listaCarritoDto = new List <CarritoDetalleDto>();

                foreach (CarritoSesionDetalle libro in carritoSesionDetalle)
                {
                    (bool resultado, RemoteModel.LibroRemote Libro, string ErrorMessage)response = await LibroService.GetLibro(new Guid(libro.ProductoSeleccionado));

                    if (response.resultado)
                    {
                        LibroRemote       objectoLibro   = response.Libro;
                        CarritoDetalleDto carritoDetalle = new CarritoDetalleDto()
                        {
                            TituloLibro      = objectoLibro.Titulo,
                            FechaPublicacion = objectoLibro.FechaPublicacion,
                            LibroId          = objectoLibro.LibreriaMaterialId
                        };
                        listaCarritoDto.Add(carritoDetalle);
                    }
                }

                return(new CarritoDto
                {
                    CarritoId = carritoSesion?.CarritoSesionId,
                    ListaProductos = listaCarritoDto,
                    FechaCreacionSesion = carritoSesion?.FechaCompra
                });
            }
Ejemplo n.º 5
0
        public async Task <(bool resultado, LibroRemote Libro, string ErrorMessage)> GetLibro(Guid LibroId)
        {
            HttpResponseMessage response;

            try
            {
                using (HttpClient cliente = HttpClient.CreateClient("Libros"))
                {
                    response = await cliente.GetAsync($"api/LibroMaterial/{LibroId}");

                    if (response.IsSuccessStatusCode)
                    {
                        string contenido = await response.Content.ReadAsStringAsync();

                        JsonSerializerOptions options = new JsonSerializerOptions()
                        {
                            PropertyNameCaseInsensitive = true
                        };
                        LibroRemote resultado = JsonSerializer.Deserialize <LibroRemote>(contenido, options);
                        return(true, resultado, null);
                    }
                };

                return(false, null, response.ReasonPhrase);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.ToString());
                return(false, null, ex.Message);
            }
        }