public static int ObterMesaDisponivel(int mesaId)
        {
            bool mesaDisponivel = false;

            while (!mesaDisponivel)
            {
                Console.Clear();

                ViewPrograma.CabecalhoDadosIniciais();

                if (!MesaService.ValidarMesa(mesaId))
                {
                    ViewPrinter.Println("\t A mesa escolhida não existe! ", ConsoleColor.White, ConsoleColor.Red);
                }
                else
                {
                    ViewPrinter.Println("\t A mesa escolhida não está disponível! ", ConsoleColor.White, ConsoleColor.Red);
                }

                Console.WriteLine();

                LabelObterDadosMesa();
                mesaId = int.Parse(Console.ReadLine());

                if (MesaService.ValidarMesa(mesaId) && !MesaService.MesaOcupada(mesaId))
                {
                    mesaDisponivel = true;
                }
            }

            return(mesaId);
        }
        static void Main(string[] args)
        {
            Console.Clear();

            ViewPrograma.Welcome();

            Console.Clear();

            // Solicitando dados iniciais
            Console.WriteLine();
            ViewPrinter.Print("\tSEU ATENDIMENTO FOI INICIADO", ConsoleColor.Green);
            Console.WriteLine();

            // Leitura e validacao ID Mesa
            ViewPrograma.CabecalhoDadosIniciais();
            ViewMesa.LabelObterDadosMesa();
            int  mesaId         = int.Parse(Console.ReadLine());
            bool mesaDisponivel = MesaService.ValidarMesa(mesaId) && !MesaService.MesaOcupada(mesaId);

            if (!mesaDisponivel)
            {
                mesaId = ViewMesa.ObterMesaDisponivel(mesaId);
            }
            ViewMesa.MostrarMesaSelecionada(mesaId);
            Console.Clear();

            // Leitura e validacao ID Comanda
            ViewPrograma.CabecalhoDadosIniciais();
            ViewComanda.LabelObterDadosComanda();
            int comandaId = int.Parse(Console.ReadLine());

            // bool comandaExistente = !ComandaService.JaExisteComanda(comandaId);
            // if (!comandaExistente) comandaId = ViewComanda.ObterComandaValida(comandaId);
            ViewComanda.MostrarComandaSelecionada(comandaId);
            Console.Clear();

            // Leitura e validacao Quantidade de Clientes
            ViewPrograma.CabecalhoDadosIniciais();
            ViewMesa.LabelObterQuantidadeClientes(mesaId);
            int  quantidadeClientes       = int.Parse(Console.ReadLine());
            bool quantidadeClientesValida = MesaService.QuantidadeClientesValida(mesaId, quantidadeClientes);

            if (!quantidadeClientesValida)
            {
                quantidadeClientes = ViewMesa.ObterQuantidadeClientesValida(mesaId, quantidadeClientes);
            }
            ViewMesa.MostrarQuantidadeClientesSelecionada(quantidadeClientes);
            Console.Clear();

            // Criacao do modelo de comanda recebido via formulario
            var comanda = new ComandaFormularioModelCLI()
            {
                ComandaId         = comandaId,
                MesaId            = mesaId,
                QuantidadeCliente = quantidadeClientes
            };

            int tipoExibicaoCardapio = ViewPrograma.EscolhaFormatoExibicaoCardapio();

            Console.Clear();

            // Salvando comanda no banco de dados
            ComandaService.RegistrarComanda(comanda);

            /*
             * // Mostrando comanda resumida antes de iniciar o loop principal do programa
             * ViewComanda.MostrarComandaResumida(comandaId);
             *
             * ViewPrograma.MensagemContinuarAtendimento();
             */

            // Executa um loop mostrando o menu principal enquanto nao for explicitamente encerrado
            ViewPrograma.MostrarMenu(comandaId, tipoExibicaoCardapio);
        }