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); }