コード例 #1
0
            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.");
            }
コード例 #2
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);
            }
コード例 #3
0
            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"));
            }
コード例 #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
                });
            }
コード例 #5
0
            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.");
            }
コード例 #6
0
            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");
            }
コード例 #7
0
            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");
            }
コード例 #8
0
            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);
            }
コード例 #9
0
ファイル: Nuevo.cs プロジェクト: JD-ESPITIA/msTiendaServicios
            // 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");
            }
コード例 #10
0
            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");
            }
コード例 #11
0
        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.");
        }
コード例 #12
0
ファイル: Nuevo.cs プロジェクト: farenasmz/MicroServiceCourse
            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.");
                }
            }
コード例 #13
0
ファイル: Nuevo.cs プロジェクト: SantosPool/TiendaServicios
            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");
            }
コード例 #14
0
            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);
            }
コード例 #15
0
            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");
            }