public void MostrarTelaAdm() { string menu = @" seleciona uma das opções: 1) Cadastrar Um voo 2) Cadastrar Lanche 3) Adicionar Lanche para Voo 4) mostrar todos os Voos 5) Sair opção: "; string opcao = ""; while (opcao != "5") { Console.ForegroundColor = ConsoleColor.Magenta; Console.Clear(); Console.WriteLine(menu); opcao = Console.ReadLine(); switch (opcao) { case "1": Voo.CadastrarVoo(); break; case "2": Lanche.cadastrarLanche(); break; case "3": Lanche_Voo.InserirLancheVoo(); break; case "4": foreach (Voo item in new FileHelper <Voo>().select()) { Console.WriteLine(item.detalhesVoo(adm: true)); } Console.WriteLine("\n Digite algo para continuar"); Console.ReadKey(); break; case "5": Console.WriteLine("Logout :)"); break; default: Console.WriteLine("Opção Inválida"); break; } } }
private void EscolherLanche() { FileHelper <Lanche> fileHelperLanche = new FileHelper <Lanche>(); List <Lanche> listaLanche = fileHelperLanche.select(); // lista de todos os lanches FileHelper <Lanche_Voo> fileHelperLanche_Voo = new FileHelper <Lanche_Voo>(); List <Lanche_Voo> listaLancheVoo = fileHelperLanche_Voo.select().FindAll(o => o.Voo == voo.Id && o.Quantidade > 0); // pega todos os lanches disponiveis do voo if (listaLancheVoo.Count > 0) // verificar se o voo ainda tem lanche { var lanchesDoVoo = (from x in listaLanche where listaLancheVoo.Exists(o => o.Lanche == x.Id) select new { lanche = x, quantidade = listaLancheVoo.Find(o => o.Lanche == x.Id).Quantidade, id = listaLancheVoo.Find(o => o.Lanche == x.Id).Id, }).ToList(); if (lanchesDoVoo.Count == 0) { Console.WriteLine(" Não existe lanche para esse voo \n\n Digite algo para continuar"); Console.ReadKey(); return; } foreach (var item in lanchesDoVoo) { Console.WriteLine($" {item.id} - {item.lanche.Nome} \n quantidade: {item.quantidade}"); } Console.WriteLine($" {lanchesDoVoo.Max( o => o.id) + 1} - sair"); Console.Write("Escolha um dos lanches : "); try { int resultado = int.Parse(Console.ReadLine()); int maxResult = lanchesDoVoo.Max(o => o.id) + 1; while (maxResult != resultado && !lanchesDoVoo.Exists(o => o.id == resultado)) { Console.Write("Insira uma opção válida: "); resultado = int.Parse(Console.ReadLine()); } if (maxResult == resultado) { Console.WriteLine("\n Digite algo para continuar"); Console.ReadKey(); return; } int maxQtd = lanchesDoVoo.Find(o => o.id == resultado).quantidade; Console.Write($"\n Insira a quantidade do lanche \n (quantidade máxima: {maxQtd}): "); int quantidade = int.Parse(Console.ReadLine()); while (quantidade < 0 || quantidade > maxQtd) { Console.Write("Insira uma quantidade válida: "); quantidade = int.Parse(Console.ReadLine()); } Lanche_Voo lanche_Voo = listaLancheVoo.Find(obj => obj.Id == lanchesDoVoo.Find(o => o.id == resultado).id); lanche_Voo.Quantidade -= quantidade; fileHelperLanche_Voo.Update(lanche_Voo, lanche_Voo.Id); Console.WriteLine("lanche comprado com sucesso \n Digite algo para continuar"); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("Erro ao pedir lanche: " + ex.Message + "\n\n Digite algo para continuar"); Console.ReadKey(); } } else { Console.WriteLine("Esse voo nao tem lanches disponiveis. \n Digite algo para continuar"); Console.ReadKey(); } }