public void CancelaEncomenda(object aux) { ComunicacaoBD comunicacaoBD = new ComunicacaoBD(); WEBooksDistribuidorAp.LogMensagens text = new WEBooksDistribuidorAp.LogMensagens(); ComunicacaoFila comFila = new ComunicacaoFila(); string idEncomenda = EncomendaWEBooks.IdEncomenda; try { string ultimoEstado = servico.getEstado(idEncomenda, comunicacaoBD); if (ultimoEstado == "colocada" || ultimoEstado == "pendente") { servico.alteraEstado(idEncomenda, "cancelada", comunicacaoBD); //Espera 5 seg antes de responder a WEBooks Thread.Sleep(new TimeSpan(0, 0, 5)); EncomendaWEBooks.TipoMensagem = "cancelada"; comFila.escreveFilaWeb(EncomendaWEBooks); text.actualizaLog(EncomendaWEBooks.TipoMensagem, false); } else { comunicacaoBD.Transacao.Rollback(); throw new Exception("Erro: estado da encomenda nao permite que seja cancelada"); } } catch (SqlException es) { comunicacaoBD.Transacao.Rollback(); throw new Exception("ERRO: Nao é possivel Cancelar encomenda"); } comunicacaoBD.Transacao.Commit(); }
public void TempoVidaEncomenda(object aux) { WEBooksDistribuidorAp.LogMensagens text = new WEBooksDistribuidorAp.LogMensagens(); Encomenda encomenda = new Encomenda(EncomendaWEBooks); ComunicacaoFila comFila = new ComunicacaoFila(); InsereEncomenda(ref encomenda); //fica logo no estado colocada //Envia mensagem de aviso de mensagem colocada, na WEBooks fica pendente if (encomenda.TempoEspera != 0) { PendenteEncomenda(encomenda.IdEncomenda); //Espera 5 segundos antes de enviar a resposta a WEBooks EncomendaWEBooks.TipoMensagem = "pendente"; Thread.Sleep(new TimeSpan(0,0,5)); comFila.escreveFilaWeb(EncomendaWEBooks); text.escreveNoLog = "Enviada: " + EncomendaWEBooks.TipoMensagem; } Thread.Sleep(new TimeSpan(0, 0, encomenda.TempoEspera));//vai esperar que fiquem todos os livros disponiveis try { EncomendaWEBooks.TipoMensagem = "entregue"; Thread.Sleep(new TimeSpan(0, 0, 5)); comFila.escreveFilaWeb(EncomendaWEBooks); EntregueEncomenda(encomenda.IdEncomenda); text.actualizaLog(EncomendaWEBooks.TipoMensagem, false); } catch (Exception) { //nao faz nada, significa que mensagem foi cancelada anteriormente } //fim do tempo de vida da encomenda }