示例#1
0
 static public void CrearOrden(Orden orden, List <CarritoItem> carrito, Usuario usuario)
 {
     try
     {
         foreach (CarritoItem item in carrito)
         {
             OrdenItem o_item = new OrdenItem();
             o_item.cantidad    = item.cantidad;
             o_item.id_producto = item.id_producto;
             o_item.precio      = item.Producto.precio_real;
             orden.OrdenItem.Add(o_item);
             CarritoModelo.EliminarCarritoItem(item);
             Producto prod = ProductoModelo.ObtenerProductoPorID((int)o_item.id_producto);
             prod.stock -= o_item.cantidad;
             ProductoModelo.ModificarProducto(prod);
         }
         orden.id_usuario   = usuario.id;
         orden.fecha_compra = DateTime.Now;
         orden.costo_total  = carrito.Sum(i => i.Producto.precio_real * i.cantidad) + 50;
         OrdenModelo.InsertarOrden(orden);
         EnviarCorreo(usuario.email, orden);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
示例#2
0
        public void ObtenerItemsOrden()
        {
            var item         = new OrdenItem();
            var randomNumber = new Random(3000);

            item.ID        = randomNumber.Next();
            item.ProductId = randomNumber.Next();
            item.Precio    = randomNumber.Next();
            this.OrdenItems.Add(item);
        }
        public async Task <OrdenCompras> addOrdenCompra(string compradorEmail, int tipoEnvio, string carritoId, Core.Entities.OrdenCompra.Direccion direccion)
        {
            var carritoCompra = await _carritoCompraRepository.getCarritoCompra(carritoId);

            var items = new List <OrdenItem>();

            foreach (var item in carritoCompra.Items)
            {
                var productoItem = await _unitOfWork.Repository <Producto>().getByIdAsync(item.Id);

                var itemOrdenado = new ProductoItemOrdenado(productoItem.Id, productoItem.Nombre, productoItem.Image);
                var ordenItem    = new OrdenItem(itemOrdenado, productoItem.Precio, item.Cantidad);
                items.Add(ordenItem);
            }

            var tipoEnvioEntity = await _unitOfWork.Repository <TipoEnvio>().getByIdAsync(tipoEnvio);

            var subTotal = items.Sum(item => item.Precio * item.Cantidad);

            var ordenCompra = new OrdenCompras(compradorEmail, direccion, tipoEnvioEntity, items, subTotal);

            _unitOfWork.Repository <OrdenCompras>().addEntity(ordenCompra);

            var resultado = await _unitOfWork.Complete();

            if (resultado <= 0)
            {
                return(null);
            }
            else
            {
                await _carritoCompraRepository.deleteCarritoCompra(carritoId);

                return(ordenCompra);
            }
        }
示例#4
0
 public void AgregarOrdenItem(OrdenItem item)
 {
     OrdenItems.Add(item);
 }