public void enviaVenda( VendaOrdem ordem)
        {
            Console.WriteLine("A processar uma ordem: {0}", ordem);

            if (ordem.numItems != 1)
                throw new Exception(String.Format("É suportado apenas um item por Venda. Itens na Venda:{0}", ordem.numItems));
            
            // ordem.vendaItems.Length == ordem.numItems
            // inserir Vendas e items de venda
            // receber Encomenda (stk qtd sincrono nas 3 db)

            using (var transaction = new TransactionScope(Transaction.Current))
            {
                using (var db = new ASIVesteEntities())
                {
                    db.sp_realizarVenda(ordem.nomeCliente,
                                        ordem.moradaCliente,
                                        ordem.vendaItems[0].codigo,
                                        ordem.vendaItems[0].quantidade);
                }

                transaction.Complete();
            }
    
        }
        private static void enviaVendaParaSede(Venda venda, float preco)
        {
            var queuePath = ConfigurationManager.AppSettings["queuePath"];
            if (!MessageQueue.Exists(queuePath))
            {
                MessageQueue.Create(queuePath, true);
            }

            ChannelFactory<IVendaServico> servico = new ChannelFactory<IVendaServico>("queueService");
            IVendaServico endpt = servico.CreateChannel();

            VendaOrdem vendaOrdem = new VendaOrdem();
            vendaOrdem.dadosVenda(venda.nomeCliente, venda.moradaCliente);

            vendaOrdem.acrescentaProduto(venda.codigoProduto, venda.quantidade, preco);

            endpt.enviaVenda(vendaOrdem);
        }