public StatusComando ConfirmarPedido(PedidoRestaurante pedido) { try { switch (pedido.Local) { case LocalPedidoRestaurante.Mesa: var mesaAberta = GetMesa(pedido.Mesa); if (mesaAberta != null) { // Valida todas as composições que estão entrando para verificar a integridade. foreach (var produto in pedido.Produtos) { ComposicaoProdutoRepository.Validate(produto); } foreach (var prod in pedido.Produtos) { mesaAberta.Produtos.Add(prod); } } else { MesasAbertas.Add(pedido); } break; default: switch (pedido.Local) { case LocalPedidoRestaurante.Balcao: FilaSalao.Add(pedido); break; case LocalPedidoRestaurante.Entrega: FilaEntrega.Add(pedido); break; } break; } pedido.Confirmado = true; return(StatusComando.ConcluidoSucesso); } catch (Exception ex) { LastException = ex.Message; } return(StatusComando.ConcluidoSucesso); }
public StatusComando AdicionarItemMesa(int mesa, ComposicaoProduto composicao) { try { if (ComposicaoProdutoRepository.Validate(composicao)) { var m = GetMesa(mesa); if (m == null) { throw new Exception(string.Format("A mesa {0} não foi encontrada.", mesa)); } AjustarPrecoComposicao(composicao); m.Produtos.Add(composicao); return(StatusComando.ConcluidoSucesso); } } catch (Exception ex) { LastException = ex.Message; } return(StatusComando.ErroExecucao); }