/// <summary> /// Calcula o valor e executa a baixa de um veículo /// </summary> public void Executar() { if (!this.Validar()) { return; } var entrada = _estacionamento.BuscarEntrada(this.Argumento); var valor = CalcularValorEstacionamento(entrada.Entrada, DateTime.Now); _estacionamento.RemoverEntrada(this.Argumento); Resultado = $"Placa '{Argumento}' valor de R${valor}."; }
/// <summary> /// Valida se é possível realizar o checkin /// </summary> /// <returns>Verdadeiro apenas todas validações forem atendidas</returns> public bool Validar() { try { if (string.IsNullOrEmpty(Argumento?.Placa)) { throw new Exception("Placa inválida."); } if (_estacionamento.VagasDisponiveis == 0) { throw new Exception("Estacionamento cheio!"); } if (_estacionamento.BuscarEntrada(Argumento.Placa) != null) { throw new Exception(String.Format("Carro placa '{0} já existe!", Argumento.Placa)); } } catch (Exception ex) { Resultado = ex.Message; return(false); } return(true); }