continuação...
using System.Threading.Channels;
class Pedidos
{
private Dictionary<int ,Dictionary<string, int>> _informacoesDoPedido = [];
private int _numeroDaMesa;
private int _numeroDoItem;
private string _produtoSelecionado;
private int _quantidade;
Cardapio Cardapio { get; set; }
public void RegistrarPedido ()
{
Cardapio = new Cardapio ();
Cardapio.ExibirCardapio();
ColetarDados();
}
void ColetarDados ()
{
Console.Write("Informe o número da Mesa: ");
_numeroDaMesa = ValidarDados();
while (true)
{
Console.Write("Número do item desejado: ");
_numeroDoItem = ValidarDados_Cardapio();
_produtoSelecionado = SelecaoDeProduto(_numeroDoItem);
Console.Write("Informe a Quantidade: ");
_quantidade = ValidarDados();
if (!_informacoesDoPedido.ContainsKey(_numeroDaMesa))
{
_informacoesDoPedido[_numeroDaMesa] = new Dictionary<string, int>();
_informacoesDoPedido[_numeroDaMesa][_produtoSelecionado] = _quantidade;
}
else
{
_informacoesDoPedido[_numeroDaMesa][_produtoSelecionado] = _quantidade;
}
Console.Write("Deseja adicionar outro item? (s/n): ");
string continuar = ValidarResposta();
if (continuar == "n")
{
Console.WriteLine("\nResumo do pedido:");
foreach (var item in _informacoesDoPedido[_numeroDaMesa])
{
Console.WriteLine($"{item.Key} - {item.Value} unidade(s)");
}
break;
}
}
}
string SelecaoDeProduto (int opcao)
{
string produto = opcao switch
{
1 => "Lazanha",
2 => "Pizza",
3 => "Macarronada",
4 => "Refrigerante 2L",
5 => "Suco de Laranja",
_ => string.Empty
};
return produto;
}
string ValidarResposta ()
{
while(true)
{
string entrada = Console.ReadLine()!;
if (!string.IsNullOrWhiteSpace(entrada) && "sn".Contains(entrada))
{
return entrada;
}
Console.WriteLine("resposta inválida, tente: s ou n");
}
}
int ValidarDados_Cardapio()
{
while (true)
{
string entrada = Console.ReadLine()!;
if (!string.IsNullOrWhiteSpace(entrada))
{
if (int.TryParse(entrada, out int entradaValida) && (entradaValida >= 1 && entradaValida <= Cardapio.ItensDoCardapio.Count))
{
return entradaValida;
}
}
Console.Write("\nOpção inválida, tente novamente: ");
}
}
int ValidarDados()
{
while (true)
{
string entrada = Console.ReadLine()!;
if (!string.IsNullOrWhiteSpace(entrada))
{
if (int.TryParse(entrada, out int entradaValida))
{
return entradaValida;
}
}
}
}
}
class Cardapio
{
private Dictionary<string, decimal> _itensDoCardapio = new Dictionary<string, decimal>
{
{ "1 Lazanha", 25.55m },
{ "2 Pizza", 75.0m },
{ "3 Macarronada", 45.99m },
{ "4 Refrigerante 2L", 15.55m },
{ "5 Suco de Laranja", 8.85m }
};
public IReadOnlyDictionary<string, decimal> ItensDoCardapio => _itensDoCardapio;
public void ExibirCardapio ()
{
foreach (string item in _itensDoCardapio.Keys)
{
Console.WriteLine($"{item} - R$:{_itensDoCardapio[item]}");
}
Console.WriteLine("\n");
}
}