///<summary>Recebe o nome do produto a ser removido, faz a busca dele na lista de produtos cadastrados e realiza a exclusão com todas as validações necessárias.</summary> public static void RemoverProduto() { string nome; ProdutoViewModel produto = new ProdutoViewModel(); do { System.Console.Write("Nome do produto a ser removido: "); nome = Console.ReadLine(); if (!ValidacaoUtil.ValidarNome(nome)) { Mensagem.MostrarMensagem("Digite um nome.", TipoMensagemEnum.ALERTA); } } while (!ValidacaoUtil.ValidarNome(nome)); produto = ProdutoRepository.BuscarProdutoPorNome(nome); do { if (produto == null) { Mensagem.MostrarMensagem("Este produto não existe.", TipoMensagemEnum.ALERTA); } ProdutoRepository.Remover(produto); } while (produto == null); }
///<summary></summary> public static void AlterarProduto() { string nome; ProdutoViewModel produtoASerAlterado = new ProdutoViewModel(); ProdutoViewModel produtoJaAlterado = new ProdutoViewModel(); do { System.Console.Write("Nome do produto a ser alterado: "); nome = Console.ReadLine(); if (!ValidacaoUtil.ValidarNome(nome)) { Mensagem.MostrarMensagem("Digite um nome de produto válido", TipoMensagemEnum.ALERTA); } } while (!ValidacaoUtil.ValidarNome(nome)); produtoASerAlterado = ProdutoRepository.BuscarProdutoPorNome(nome); produtoJaAlterado = produtoASerAlterado; //Mostrando dados do produto e perguntando qual informação alterar. bool rodar = true; do { Console.Clear(); System.Console.WriteLine($"______________________________\nId: {produtoASerAlterado.Id}\nNome: {produtoASerAlterado.Nome}\nCategoria: {produtoASerAlterado.Categoria} \nDescrição: {produtoASerAlterado.Descricao}\nPreço: {produtoASerAlterado.Preco}\nData de criação: {produtoASerAlterado.DataCriacao}\n______________________________"); MenuUtils.MostrarMenuAlterarProduto(); MenuAlterarProduto opcao = ((MenuAlterarProduto)Enum.Parse(typeof(MenuAlterarProduto), Console.ReadLine())); switch (opcao) { case MenuAlterarProduto.NOME: do { System.Console.Write("Digite um novo nome para o produto: "); produtoJaAlterado.Nome = Console.ReadLine(); if (!ValidacaoUtil.ValidarNome(produtoJaAlterado.Nome)) { Mensagem.MostrarMensagem("O nome não pode ficar vazia.", TipoMensagemEnum.ALERTA); } } while (!ValidacaoUtil.ValidarNome(produtoJaAlterado.Nome)); break; case MenuAlterarProduto.CATEGORIA: do { System.Console.Write("Digite uma nova categoria para o produto: "); produtoJaAlterado.Categoria = Console.ReadLine(); if (!ValidacaoUtil.ValidarNome(produtoJaAlterado.Categoria)) { Mensagem.MostrarMensagem("A categoria não pode ficar vazia", TipoMensagemEnum.ALERTA); } } while (!ValidacaoUtil.ValidarNome(produtoJaAlterado.Categoria)); break; case MenuAlterarProduto.DESCRICAO: do { System.Console.Write("Digite uma nova descrição para o produto: "); produtoJaAlterado.Descricao = Console.ReadLine(); if (!ValidacaoUtil.ValidarNome(produtoJaAlterado.Descricao)) { Mensagem.MostrarMensagem("A descrição não pode ficar vazia.", TipoMensagemEnum.ALERTA); } } while (!ValidacaoUtil.ValidarNome(produtoJaAlterado.Descricao)); break; case MenuAlterarProduto.PRECO: do { System.Console.Write("Digite um novo preço para o produto (Apenas números): "); string precoCapturado = Console.ReadLine(); if (!ValidacaoUtil.ValidarPreco(precoCapturado, produtoASerAlterado.Preco)) { Mensagem.MostrarMensagem("Preço inválido", TipoMensagemEnum.ERRO); } produtoJaAlterado.Preco = float.Parse(precoCapturado); } while (!ValidacaoUtil.ValidarPreco(produtoJaAlterado.Preco)); break; case MenuAlterarProduto.SAIR: rodar = false; break; } ProdutoRepository.Alterar(produtoASerAlterado, produtoJaAlterado); Mensagem.MostrarMensagem("Produto alterado com sucesso!", TipoMensagemEnum.SUCESSO); } while (rodar == true); if (produtoASerAlterado == null) { Mensagem.MostrarMensagem("O produto desejado não existe.", TipoMensagemEnum.ERRO); } }