public void Guardar(Compra compra)
 {
     try
     {
         _conexion = new ConexionBd();
         SqlConnection cn = _conexion.AbrirConexion();
         transaction                  = cn.BeginTransaction();
         Repositoriocompra            = new RepositorioCompras(cn, transaction);
         RepositoriocompraMedicamento = new RepositorioComprasMedicamentos(cn, transaction);
         Repositoriomedicamentos      = new RepositorioMedicamentos(cn, transaction);
         Repositoriocompra.Guardar(compra);
         foreach (var cm in compra.ComprasMedicamentos)
         {
             cm.Compra = compra;
             RepositoriocompraMedicamento.Guardar(cm);
             Repositoriomedicamentos.ModificarStok(cm.Cantidad, cm.Medicamento.MedicamentoId);
         }
         transaction.Commit();
         _conexion.CerrarConexion();
     }
     catch (Exception e)
     {
         transaction.Rollback();
         throw new Exception(e.Message);
     }
 }
 public void Guardar(Venta venta)
 {
     try
     {
         conexion = new ConexionBd();
         SqlConnection cn = conexion.AbrirConexion();
         sqlTransaction                = cn.BeginTransaction();
         repositorioVentas             = new RepositorioVentas(cn, sqlTransaction);
         repositorioVentasMedicamentos = new RepositorioVentasMedicamentos(cn, sqlTransaction);
         repositorioMedicamentos       = new RepositorioMedicamentos(cn, sqlTransaction);
         repositorioVentas.Guardar(venta);
         foreach (var vm in venta.ventasMedicamentos)
         {
             vm.venta = venta;
             repositorioVentasMedicamentos.Guardar(vm);
             repositorioMedicamentos.ModificarStok(-vm.Cantidad, vm.medicamento.MedicamentoId);
         }
         sqlTransaction.Commit();
         conexion.CerrarConexion();
     }
     catch (Exception ex)
     {
         sqlTransaction.Rollback();
         throw new Exception(ex.Message);
     }
 }