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);
            }
        }
Example #2
0
 public async Task deleteCarritoCompra(string id)
 {
     await _carritoCompra.deleteCarritoCompra(id);
 }