1
resposta

Desafio resolvido.

Dictionary<string, List> produtos = new Dictionary<string, List>();

produtos.Add("Açucar", new List { 122 }); produtos.Add("Arroz", new List { 12 }); produtos.Add("Feijão", new List { 30 }); produtos.Add("Azeite", new List { 10 });

void ExibirMenu() { Console.Clear(); Console.WriteLine("\n███╗░░░███╗███████╗██████╗░░█████╗░░█████╗░██████╗░██╗███╗░░██╗██╗░░██╗░█████╗░\n████╗░████║██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗██║████╗░██║██║░░██║██╔══██╗\n██╔████╔██║█████╗░░██████╔╝██║░░╚═╝███████║██║░░██║██║██╔██╗██║███████║██║░░██║\n██║╚██╔╝██║██╔══╝░░██╔══██╗██║░░██╗██╔══██║██║░░██║██║██║╚████║██╔══██║██║░░██║\n██║░╚═╝░██║███████╗██║░░██║╚█████╔╝██║░░██║██████╔╝██║██║░╚███║██║░░██║╚█████╔╝\n╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝╚═════╝░╚═╝╚═╝░░╚══╝╚═╝░░╚═╝░╚════╝░"); Console.WriteLine("\nEscolha uma das opções:\n"); Console.WriteLine("1 - Ver Lista de Produtos"); Console.WriteLine("2 - Adicionar Produtos"); Console.WriteLine("3 - Pegar um produto"); Console.WriteLine("4 - Remover um produto do estoque?"); Console.WriteLine("\n**************************");

Console.Write("\nQual opção você deseja? ");
int opcaoDigitada = int.Parse(Console.ReadLine()!);

switch (opcaoDigitada)
{
    case 1:
        ExibirListaDeProdutos(false);
        break;
    case 2:
        AdicionarUmProduto();
        break;
    case 3:
        PegarUmProduto();
        break;
    case 4:
        RemoverUmProduto();
        break;
}

};

void ExibirListaDeProdutos(Boolean pegarProduto) { Console.Clear(); if (pegarProduto) { Console.WriteLine("--------------- Lista de Produto ---------------\n"); foreach (KeyValuePair<string, List> produto in produtos) { List qtdProdutos = produto.Value; foreach (int qtd in qtdProdutos) { Console.WriteLine($"Produto: {produto.Key} -- Qtd: {qtd}");}} }else{ Console.WriteLine("--------------- Lista de Produto ---------------\n"); foreach (KeyValuePair<string, List> produto in produtos) {List qtdProdutos = produto.Value; foreach (int qtd in qtdProdutos) {Console.WriteLine($"Produto: {produto.Key} -- Qtd: {qtd}");}} Console.WriteLine("\nPara voltar digite qualquer tecla:"); Console.ReadKey(); Console.Clear(); ExibirMenu();}} void AdicionarUmProduto() {Console.Write("Por favor digite o nome do produto que deseja adicionar: ");string nomeNovoProduto = Console.ReadLine()!;if (produtos.ContainsKey(nomeNovoProduto)){Console.WriteLine("Desculpe mas este produto já existe em estoque :("); }else{Console.Write("\nCerto! Agora digite a quantidade de entrada: ");int quantidaNovoProduto = int.Parse(Console.ReadLine()!); produtos.Add(nomeNovoProduto, new List { quantidaNovoProduto }); Console.WriteLine("Lista de produtos atualizada!!");} Thread.Sleep(2000); Console.Clear(); ExibirMenu();} void PegarUmProduto(){ Console.Clear(); ExibirListaDeProdutos(true); Console.Write("\nPor favor, digite o nome do produto que deseja pegar:"); string nomeProdutoSelecionado = Console.ReadLine()!; Console.WriteLine(""); if (produtos.ContainsKey(nomeProdutoSelecionado)) { Console.Write("\nDigite a quantidade:"); int quantidadeProdutoSelecionado = int.Parse(Console.ReadLine()!);

    if (quantidadeProdutoSelecionado <= produtos[nomeProdutoSelecionado][0])
    {
        produtos[nomeProdutoSelecionado][0] = produtos[nomeProdutoSelecionado][0] - quantidadeProdutoSelecionado;
        Console.WriteLine("\nQuantidade em estoque atualizada!");
        Thread.Sleep(2000);
        ExibirMenu();
    }
    else
    {
        Console.WriteLine("\nDesculpe mas parece, que você está tentando retirar, uma quantidade que não temos em estoque. :(");
        Thread.Sleep(2000);
        ExibirMenu();
    }

}
else
{
    Console.WriteLine("Desculpe mas não encontramos este produto em nosso estoque, mas não se preocupe, vou te levar de volta para o menu:");
    Thread.Sleep(2000);
    ExibirMenu();
}

} void RemoverUmProduto(){ Console.Clear(); ExibirListaDeProdutos(true); Console.Write("\nPor favor digite o nome do produto que você deseja remover do estoque:"); string nomeProdutoASerRemovido = Console.ReadLine()!; if (produtos.ContainsKey(nomeProdutoASerRemovido)){ produtos.Remove(nomeProdutoASerRemovido); Console.WriteLine("\nProduto Removido com sucesso!"); Thread.Sleep(2000); ExibirMenu();} else{ Console.WriteLine("Desculpe mas não encontramos este produto em nosso estoque, mas não se preocupe, vou te levar de volta para o menu:"); Thread.Sleep(2000); ExibirMenu();}}ExibirMenu();

1 resposta

Olá Kauê! Tudo bem?

Parabéns por ter realizado esse desafio, você fez um bom trabalho com seu projeto de gerenciamento de estoque! Seu código já está bem estruturado e funcional. Minha dica é que você consulte o código de possível solução que foi apresentado na "Opinião do Instrutor" e compare com o que você estruturou, para gerar novas ideias e aprendizados, afinal é sempre bacana visualizar as diferentes maneiras de resolver desafios com programação.

Obrigada por compartilhar seu resultado com a gente! Em caso de dúvidas, conte com o apoio do fórum ✨

Um abraço e bons estudos!