diff --git a/DesafioFundamentos/DesafioFundamentos.sln b/DesafioFundamentos/DesafioFundamentos.sln new file mode 100644 index 00000000..dd4a46d8 --- /dev/null +++ b/DesafioFundamentos/DesafioFundamentos.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.csproj", "{E1C84192-F7BA-44FD-81F7-05280D0BDB26}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E1C84192-F7BA-44FD-81F7-05280D0BDB26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1C84192-F7BA-44FD-81F7-05280D0BDB26}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1C84192-F7BA-44FD-81F7-05280D0BDB26}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1C84192-F7BA-44FD-81F7-05280D0BDB26}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1BF7022E-18F5-4386-BAE7-2771BECF0A6F} + EndGlobalSection +EndGlobal diff --git a/DesafioFundamentos/Models/Estacionamento.cs b/DesafioFundamentos/Models/Estacionamento.cs index 70ce2c91..f3545bf3 100644 --- a/DesafioFundamentos/Models/Estacionamento.cs +++ b/DesafioFundamentos/Models/Estacionamento.cs @@ -5,6 +5,7 @@ public class Estacionamento private decimal precoInicial = 0; private decimal precoPorHora = 0; private List veiculos = new List(); + private string veiculo; public Estacionamento(decimal precoInicial, decimal precoPorHora) { @@ -17,6 +18,16 @@ 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:"); + veiculo = Console.ReadLine(); + if (ValidarPlacaVeiculo(veiculo)) + { + veiculos.Add(veiculo); + } + else + { + Console.WriteLine("Veiculo não cadastrado, por favor informe um veiculo valido, cujo a placa seja composta por 3 letras e 4 números separados por um traço (-)"); + } + } public void RemoverVeiculo() @@ -25,27 +36,38 @@ public void RemoverVeiculo() // Pedir para o usuário digitar a placa e armazenar na variável placa // *IMPLEMENTE AQUI* - string placa = ""; - // Verifica se o veículo existe - if (veiculos.Any(x => x.ToUpper() == placa.ToUpper())) + string placa = Console.ReadLine(); + if (ValidarPlacaVeiculo(placa)) { - Console.WriteLine("Digite a quantidade de horas que o veículo permaneceu estacionado:"); + // 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* - int horas = 0; - decimal valorTotal = 0; + // 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* + int horas = int.Parse(Console.ReadLine()); + + decimal valorTotal = 0; - // TODO: Remover a placa digitada da lista de veículos - // *IMPLEMENTE AQUI* + 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}"); + Console.WriteLine($"O veículo {placa} foi removido e o preço total foi de: R$ {valorTotal}"); + } + else + { + Console.WriteLine("Desculpe, esse veículo não está estacionado aqui. Confira se digitou a placa corretamente"); + } } else { - Console.WriteLine("Desculpe, esse veículo não está estacionado aqui. Confira se digitou a placa corretamente"); + Console.WriteLine("Veiculo não cadastrado, por favor informe um veiculo valido, cujo a placa seja composta por 3 letras e 4 números separados por um traço (-)"); } } @@ -57,11 +79,28 @@ 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 { Console.WriteLine("Não há veículos estacionados."); } } + + + private bool ValidarPlacaVeiculo(string veiculo) + { + bool result = true; + + if(veiculo.Length < 7 || !veiculo.Substring(0, 3).All(char.IsLetter) || !veiculo.Substring(4, 4).All(char.IsDigit)) + { + result = false; + } + + return result; + } } }