Ejemplo n.º 1
0
        /// <summary>
        /// Registra a entrada de um carro no estacionamento.
        /// </summary>
        public static void Checkin(string placa)
        {
            CheckIn check = new CheckIn(placa);

            if (String.Equals(check.car.placa, string.Empty))
            {
                throw new Exception(String.Format("Placa inválida.", placa));
            }

            if (Estacionamento.ObterTodosCarros().Count == VAGAS_TOTAIS)
            {
                throw new Exception("Estacionamento cheio!");
            }

            foreach (Carro c in Estacionamento.ObterTodosCarros().Keys)
            {
                if (c.placa.Equals(check.car.placa))
                {
                    throw new Exception(String.Format("Carro placa '{0} já existe!", placa));
                }
            }
            // if (Estacionamento.ObterTodosCarros().ContainsKey(check.car))
            //throw new Exception(String.Format("Carro placa '{0} já existe!", placa));

            Estacionamento.Adiciona(check.car, check.dataCheckIn);
        }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        public static Estacionamento GetInstance()
        {
            if (Instance != null)
            {
                return(Instance);
            }

            Instance = new Estacionamento();
            return(Instance);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Registra a saída de um carro do estacionamento.
        /// </summary>
        public static double Checkout(string placa)
        {
            CheckOut check = new CheckOut(placa);

            if (String.Equals(check.car.placa, string.Empty))
            {
                throw new Exception(String.Format("Placa inválida.", placa));
            }

            if (!Estacionamento.ObterTodosCarros().ContainsKey(check.car))
            {
                throw new Exception(String.Format("Carro placa '{0}' NÃO existe!", placa));
            }

            var valor = CalculaEstacionamento(Estacionamento.ObterTodosCarros()[check.car], check.dataCheckOut);

            Estacionamento.Remover(check.car);

            return(valor);
        }
Ejemplo n.º 6
0
 public CommandCheckin()
 {
     estacionamento = Estacionamento.GetInstance();
 }
Ejemplo n.º 7
0
 public void Run()
 {
     Estacionamento.Remover(_car);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Retorna todos os carros no estacionamento
 /// </summary>
 public static IDictionary <Car, DateTime> ObterTodosCarros()
 {
     return(Estacionamento.ObterCarros());
 }
Ejemplo n.º 9
0
 public void Run()
 {
     Estacionamento.Adiciona(_car, DateTime.Now);
 }
Ejemplo n.º 10
0
 public void Run()
 {
     Estacionamento.Add(_MyCar, _CheckinDate);
 }
 public void Run()
 {
     Estacionamento.Remove(_MyCar.Placa);
 }