/// <summary> /// Registra a entrada de um carro no estacionamento. /// </summary> public static void Checkin(string placa) { ICommand _checkinCommand; //validation if (String.Equals(placa.Trim(), string.Empty)) { throw new Exception(String.Format("Placa inválida.", placa)); } if (Estacionamento.ObterCarros().Count == VAGAS_TOTAIS) { throw new Exception("Estacionamento cheio!"); } if (Estacionamento.ObterCarros().Any(c => c.Key.Placa.Contains(placa))) { throw new Exception(String.Format("Carro placa '{0} já existe!", placa)); } //TODO: replace this Car myCar = new Car(); myCar.Placa = placa; _checkinCommand = new CheckinCommand(myCar); _checkinCommand.Run(); }
/// <summary> /// Registra a saída de um carro do estacionamento. /// </summary> public static double Checkout(string placa) { ICommand _checkoutCommand; if (String.Equals(placa.Trim(), string.Empty)) { throw new Exception(String.Format("Placa inválida.", placa)); } if (!Estacionamento.ObterCarros().Any(c => c.Key.Placa.Contains(placa))) { throw new Exception(String.Format("Carro placa '{0}' NÃO existe!", placa)); } var entrada = Estacionamento.ObterCarros().FirstOrDefault(c => c.Key.Placa.Contains(placa)).Value; var valor = CalculaEstacionamento(entrada, DateTime.Now); Car myCar = new Car(); myCar.Placa = placa; _checkoutCommand = new CheckoutCommand(myCar); _checkoutCommand.Run(); return(valor); }
/// <summary> /// Retorna todos os carros no estacionamento /// </summary> public static IDictionary <Car, DateTime> ObterTodosCarros() { return(Estacionamento.ObterCarros()); }