예제 #1
0
        /// <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}.";
        }
예제 #2
0
        /// <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);
        }