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