public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion { FechaCreacion = request.FechaCreacionSesion }; _contexto.CarritoSesion.Add(carritoSesion); var value = await _contexto.SaveChangesAsync(); if (value == 0) { throw new Exception("Errores en la insercion del carrito de compras."); } int id = carritoSesion.CarritoSesionId; foreach (var item in request.ProductoLista) { var detalleSesion = new CarritoSesionDetalle { FechaCreacion = DateTime.Now, CarritoSesionId = id, ProductoSeleccionado = item, }; _contexto.CarritoSesionDetalle.Add(detalleSesion); } value = await _contexto.SaveChangesAsync(); if (value > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el detalle del carrito de compras."); }
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 <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carrito = new CarritoSesion { FechaCreacion = request.FechaCreacionSesion }; contexto.CarritoSesion.Add(carrito); var value = await contexto.SaveChangesAsync(); if (value == 0) { throw new Exception("No se pudo guardar el carrito"); } int id = carrito.CarritoSesionId; List <CarritoSesionDetalle> carritoSesionDetalle = request.ProductoLista.Select(s => new CarritoSesionDetalle { FechaCreacion = DateTime.Now, CarritoSesionId = carrito.CarritoSesionId, ProductoSeleccionado = s }).ToList(); contexto.CarritoSesionDetalle.AddRange(carritoSesionDetalle); value = await contexto.SaveChangesAsync(); return(value > 0 ? Unit.Value : throw new Exception("No se pudo guardar el detalle del carrito")); }
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 <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carritoSession = new CarritoSesion { FechaCreacion = request.FechaDeCreacionSesion, }; _contexto.CarritoSesion.Add(carritoSession); var valor = await _contexto.SaveChangesAsync(); if (valor == 0) { throw new Exception("Errores en la inserción de la sesión del carrito."); } foreach (var producto in request.ListaDeProductos) { var carritoSessionDetalle = new CarritoSesionDetalle { CarritoSesionId = carritoSession.CarritoSesionId, ProductoSeleccionado = producto, FechaCreacion = DateTime.Now, }; _contexto.CarritoSesionDetalle.Add(carritoSessionDetalle); } valor = await _contexto.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el detalle del carrito de compras."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion { FechaCreacion = request.FechaCreacion, }; _contexto.CarritoSesion.Add(carritoSesion); var valor = await _contexto.SaveChangesAsync(); if (valor == 0) { throw new Exception("No se pudo crear la sesion del carrito"); } int id = carritoSesion.CarritoSesionId; foreach (var obj in request.ProductoLista) { var detalleSesion = new CarritoSesionDetalle { FechaCreacion = DateTime.Now, ProductoSeleccionado = obj, CarritoSesionId = id }; _contexto.CarritoSesionDetalle.Add(detalleSesion); } valor = await _contexto.SaveChangesAsync(); if (valor > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el detalle del carrito"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion() { FechaCreacion = request.FechaCreacionSesion }; _context.CarritoSesion.Add(carritoSesion); var value = await _context.SaveChangesAsync(); if (value == 0) { throw new Exception("Error en insert"); } foreach (var item in request.ProductoLista) { var carritoDetalle = new CarritoSesionDetalle() { CarritoSesionId = carritoSesion.CarritoSesionId, ProductoSeleccionado = item, FechaCreacion = DateTime.Now }; _context.CarritoSesionDetalle.Add(carritoDetalle); } value = await _context.SaveChangesAsync(); if (value > 0) { return(Unit.Value); } throw new Exception("Error en insert"); }
async Task <int> IRequestHandler <Ejecuta, int> .Handle(Ejecuta request, CancellationToken cancellationToken) { CarritoSesion carritoSesion = new CarritoSesion() { FechaCreacion = request.FechaCreacionSesion }; _contexto.CarritoSesion.Add(carritoSesion); int value = await _contexto.SaveChangesAsync(); if (value == 0) { throw new Exception("Errores en la insercion del carrito de compra"); } return(carritoSesion.CarritoSesionId); }
// Se implementa la interfaz public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion { FechaCreacion = request.FechaCreacionSesion }; _contexto.CarritoSesion.Add(carritoSesion); var value = await _contexto.SaveChangesAsync(); if (value == 0) { throw new Exception("Errores en la insersión del carrito"); } // Se recupera el id que se genera en la db // magia int id = carritoSesion.CarritoSesionId; // ProductoLista lista de productos que envía el cliente // por cada elem de la lista se crea un nuevo objeto de tipo CarritoSesionDetalle foreach (var item in request.ProductoLista) { var detalleSesion = new CarritoSesionDetalle { FechaCreacion = DateTime.Now, CarritoSesionId = id, // con el id respectivo ProductoSeleccionado = item }; _contexto.CarritoSesionDetalle.Add(detalleSesion); } value = await _contexto.SaveChangesAsync(); if (value > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el detalle del carrito de compras"); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion() { FechaCreacion = request.FechaCreacionSesion }; await this.contextoCarrito.CarritoSesion.AddAsync(carritoSesion); var value = await this.contextoCarrito.SaveChangesAsync(); if (value == 0) { throw new Exception("Errores en la inserción del carrito de compras"); } int sesionId = carritoSesion.CarritoSesionId; foreach (var x in request.ProductoLista) { var sesionDetalle = new CarritoSesionDetalle() { FechaCreacion = DateTime.Now, CarritoSesionId = sesionId, ProductoSeleccionado = x }; await this.contextoCarrito.CarritoSesionDetalle.AddAsync(sesionDetalle); } var value2 = await this.contextoCarrito.SaveChangesAsync(); if (value2 > 0) { return(Unit.Value); } throw new Exception("No se pudo insertar el detalle del carrito de compras"); }
public async Task <Unit> Handle(NewCarritoSesionCommand request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion { FechaCreacion = request.FechaCreacionSesion }; await _context.AddAsync(carritoSesion); var value = await _context.SaveChangesAsync(); if (value == 0) { throw new Exception("Error al intentar guardar el carrito de comprar."); } int id = carritoSesion.CarritoSesionId; foreach (var prod in request.ProductosId) { var carritoSesionDetalle = new CarritoSesionDetalle { CarritoSesionId = id, FechaCreacion = DateTime.Now, ProductoSeleccionadoId = prod }; await _context.CarritoSesionDetalles.AddAsync(carritoSesionDetalle); } value = await _context.SaveChangesAsync(); if (value > 0) { return(Unit.Value); } throw new Exception("No se pudo guardar el detalle del carrito de compras."); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { int value; CarritoSesion carritoSesion = new CarritoSesion() { FechaCompra = request.FechaCreacionSesion }; Contexto.CarritoSesion.Add(carritoSesion); value = await Contexto.SaveChangesAsync(); if (value == 0) { throw new Exception("Error en la inserción"); } foreach (string item in request.ProductoLista) { Contexto.CarritoSesionDetalle.Add(new CarritoSesionDetalle { CarritoSesionId = carritoSesion.CarritoSesionId, FechaCompra = DateTime.Now, ProductoSeleccionado = item }); } value = await Contexto.SaveChangesAsync(); if (value > 0) { return(Unit.Value); } else { throw new Exception("Error al insertar el detalle de carrito de compra."); } }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion { FechaCreacion = request.FechaCreacionSesion }; context.CarritoSesion.Add(carritoSesion); var value = await context.SaveChangesAsync(); if (value == 0) { throw new Exception("Errores en la insercion del carrito de compras"); } int id = carritoSesion.CarritoSesionId; var carritoSesionDetalle = request.ProductoLista.Select(x => new CarritoSesionDetalle { FechaCreacion = DateTime.Now, CarritoSesionId = id, ProductoSeleccionado = x }).ToList(); context.CarritoSesionDetalle.AddRange(carritoSesionDetalle); value = await context.SaveChangesAsync(); if (value > 0) { return(Unit.Value); } throw new Exception("Errores en la insercion en detalles en el carrito de compras"); }
public async Task <Unit> Handle(Request request, CancellationToken cancellationToken) { var carritoSesion = new CarritoSesion() { FechaCreacion = request.FechaCreacion ?? DateTime.Now }; _contexto.CarritoSesion.Add(carritoSesion); var result = await _contexto.SaveChangesAsync(); if (result < 1) { throw new Exception("Error al crear carrito de compra"); } foreach (var elemento in request.ListaLibroSeleccionado) { var carritoSesionDetalle = new CarritoSesionDetalle() { FechaCreacion = DateTime.Now, LibroSeleccionado = elemento, CarritoSesionId = carritoSesion.CarritoSesionId }; _contexto.CarritoSesionDetalle.Add(carritoSesionDetalle); } var result2 = await _contexto.SaveChangesAsync(); if (result2 < 1) { throw new Exception("Error al crear carrito de compra detalles"); } return(Unit.Value); }
public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken) { CarritoSesion carrito = new CarritoSesion { FechaCreacion = request.FechaCreasionSesion, // ListaDetalle = (ICollection<CarritoSesionDetalle>)request.ProductoLista }; this._context.CarritoSesion.Add(carrito); var resultado = await _context.SaveChangesAsync(); if (resultado == 0) { throw new Exception("Error al registrar carrito de compra"); } int id = carrito.CarritoSesionId; foreach (string libro in request.ProductoLista) { var detalleSesion = new CarritoSesionDetalle { FechaCreacion = DateTime.Now, CarritoSesionId = id, ProductoSeleccionado = libro }; this._context.CarritoSesionDetalle.Add(detalleSesion); } resultado = await _context.SaveChangesAsync(); if (resultado >= 1) { return(Unit.Value); } throw new Exception("Error al registrar carrito y los productos seleccionados"); }