From eee8c2ad1c56e266b93f8073854bd4fa59b4d815 Mon Sep 17 00:00:00 2001 From: Erimilson Silva Date: Thu, 5 Dec 2024 15:16:03 -0300 Subject: [PATCH 1/2] feat: Adicionar Veiculos e Listar Veiculos realizadas --- DesafioFundamentos/Models/Estacionamento.cs | 31 +++++++++++++++------ trilha-net-fundamentos-desafio.sln | 25 +++++++++++++++++ 2 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 trilha-net-fundamentos-desafio.sln diff --git a/DesafioFundamentos/Models/Estacionamento.cs b/DesafioFundamentos/Models/Estacionamento.cs index 70ce2c910..dd9a1535f 100644 --- a/DesafioFundamentos/Models/Estacionamento.cs +++ b/DesafioFundamentos/Models/Estacionamento.cs @@ -15,8 +15,20 @@ public Estacionamento(decimal precoInicial, decimal precoPorHora) public void AdicionarVeiculo() { // TODO: Pedir para o usuário digitar uma placa (ReadLine) e adicionar na lista "veiculos" - // *IMPLEMENTE AQUI* Console.WriteLine("Digite a placa do veículo para estacionar:"); + string placa = Console.ReadLine(); + + // Verifica se o veículo já está estacionado + if (veiculos.Any(x => x.ToUpper() == placa.ToUpper())) + { + Console.WriteLine("Desculpe, esse veículo já está estacionado aqui."); + } + else + { + // Adiciona a placa na lista de veículos + veiculos.Add(placa); + Console.WriteLine($"O veículo {placa} foi estacionado com sucesso."); + } } public void RemoverVeiculo() @@ -24,22 +36,20 @@ public void RemoverVeiculo() Console.WriteLine("Digite a placa do veículo para remover:"); // Pedir para o usuário digitar a placa e armazenar na variável placa - // *IMPLEMENTE AQUI* - string placa = ""; + string placa = Console.ReadLine().ToUpper(); // Verifica se o veículo existe if (veiculos.Any(x => x.ToUpper() == placa.ToUpper())) { - Console.WriteLine("Digite a quantidade de horas que o veículo permaneceu estacionado:"); - // TODO: Pedir para o usuário digitar a quantidade de horas que o veículo permaneceu estacionado, // TODO: Realizar o seguinte cálculo: "precoInicial + precoPorHora * horas" para a variável valorTotal - // *IMPLEMENTE AQUI* + Console.WriteLine("Digite a quantidade de horas que o veículo permaneceu estacionado:"); int horas = 0; - decimal valorTotal = 0; + + decimal valorTotal = precoInicial + (precoPorHora * horas); // TODO: Remover a placa digitada da lista de veículos - // *IMPLEMENTE AQUI* + veiculos.Remove(placa); Console.WriteLine($"O veículo {placa} foi removido e o preço total foi de: R$ {valorTotal}"); } @@ -56,7 +66,10 @@ public void ListarVeiculos() { Console.WriteLine("Os veículos estacionados são:"); // TODO: Realizar um laço de repetição, exibindo os veículos estacionados - // *IMPLEMENTE AQUI* + foreach (var veiculo in veiculos) + { + Console.WriteLine(veiculo); + } } else { diff --git a/trilha-net-fundamentos-desafio.sln b/trilha-net-fundamentos-desafio.sln new file mode 100644 index 000000000..c30164000 --- /dev/null +++ b/trilha-net-fundamentos-desafio.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.002.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesafioFundamentos", "DesafioFundamentos\DesafioFundamentos.csproj", "{F0885201-43F6-4DC6-8A48-A8F305AF6D21}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F0885201-43F6-4DC6-8A48-A8F305AF6D21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0885201-43F6-4DC6-8A48-A8F305AF6D21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0885201-43F6-4DC6-8A48-A8F305AF6D21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0885201-43F6-4DC6-8A48-A8F305AF6D21}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {15FB243E-D5EE-4609-9A9C-54ACB9A7904E} + EndGlobalSection +EndGlobal From 1b048c143522ddee028130eff41cd644b83962d2 Mon Sep 17 00:00:00 2001 From: Erimilson Silva Date: Thu, 5 Dec 2024 20:44:09 -0300 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20M=C3=A9todo=20de=20remover=20Veicul?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DesafioFundamentos/Models/Estacionamento.cs | 22 +++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/DesafioFundamentos/Models/Estacionamento.cs b/DesafioFundamentos/Models/Estacionamento.cs index dd9a1535f..f51dac79c 100644 --- a/DesafioFundamentos/Models/Estacionamento.cs +++ b/DesafioFundamentos/Models/Estacionamento.cs @@ -1,3 +1,5 @@ +using System.Diagnostics.CodeAnalysis; + namespace DesafioFundamentos.Models { public class Estacionamento @@ -38,19 +40,31 @@ public void RemoverVeiculo() // Pedir para o usuário digitar a placa e armazenar na variável placa string placa = Console.ReadLine().ToUpper(); + if (string.IsNullOrEmpty(placa)) + { + Console.WriteLine("Placa inválida. Tente novamente."); + return; + } + + // Encontra o índice da placa, ignorando maiúsculas e minúsculas + int index = veiculos.FindIndex(v => v.Equals(placa, StringComparison.OrdinalIgnoreCase)); + // Verifica se o veículo existe - if (veiculos.Any(x => x.ToUpper() == placa.ToUpper())) + if (index != -1) { // TODO: Pedir para o usuário digitar a quantidade de horas que o veículo permaneceu estacionado, // TODO: Realizar o seguinte cálculo: "precoInicial + precoPorHora * horas" para a variável valorTotal Console.WriteLine("Digite a quantidade de horas que o veículo permaneceu estacionado:"); - int horas = 0; + if (!int.TryParse(Console.ReadLine(), out int horas) || horas < 0) + { + Console.WriteLine("Quantidade de horas inválida. Tente novamente."); + return; + } decimal valorTotal = precoInicial + (precoPorHora * horas); // TODO: Remover a placa digitada da lista de veículos - veiculos.Remove(placa); - + veiculos.RemoveAt(index); Console.WriteLine($"O veículo {placa} foi removido e o preço total foi de: R$ {valorTotal}"); } else