Esempio n. 1
0
        public List <EstacionamentoOutPut> getVeiculos()
        {
            var veiculos = new List <EstacionamentoOutPut>();

            if (_veiculosEstacionados == null)
            {
                return(veiculos);
            }

            var preco      = TemTabelaPreco() ? _tabelaPreco.Preco : 2;
            var tolerancia = TemTabelaPreco() ? _tabelaPreco.Tolerancia : 0;

            foreach (var veiculoEstacionado in _veiculosEstacionados)
            {
                var estacionamentoOutPut = new EstacionamentoOutPut();
                estacionamentoOutPut.Estacionamento = veiculoEstacionado;
                estacionamentoOutPut.Veiculo        = veiculoEstacionado.Veiculo;
                var duracao = DateTime.Now.Subtract(veiculoEstacionado.HoraChegada);
                estacionamentoOutPut.Duracao = duracao.ToString();
                var tempoCobrado = this.TempoCobrado(duracao.TotalHours);
                estacionamentoOutPut.TempoCobrado = tempoCobrado;
                estacionamentoOutPut.Preco        = PrecoFormatado(preco);
                estacionamentoOutPut.ValorAPagar  = ((tempoCobrado - (tolerancia / 60)) * preco).ToString("C", CultureInfo.CurrentCulture);
                veiculos.Add(estacionamentoOutPut);
            }

            return(veiculos);
        }
        public void MarcarSaida(MarcarSaidaDTO marcarSaida)
        {
            var estacionamento = _dbContext.Estacionamentos
                                 .Include(e => e.Veiculo)
                                 .Where(e => e.Id == marcarSaida.Id)
                                 .FirstOrDefault();

            estacionamento.HoraSaida = DateTime.Now;

            var estacionamentoOutPut = new EstacionamentoOutPut();

            estacionamentoOutPut.Estacionamento = estacionamento;
            estacionamentoOutPut.Veiculo        = estacionamento.Veiculo;
            var duracao = DateTime.Now.Subtract(estacionamento.HoraChegada);

            estacionamentoOutPut.Duracao = duracao.ToString();
            var tempoCobrado = this.TempoCobrado(duracao.TotalHours);

            estacionamentoOutPut.TempoCobrado = tempoCobrado;
            estacionamentoOutPut.Preco        = this.getTabelaPreco().Preco.ToString();
            var tolerancia = this.getTabelaPreco() != null?this.getTabelaPreco().Tolerancia : 0;

            estacionamentoOutPut.ValorAPagar = ((tempoCobrado - (tolerancia / 60)) * this.getTabelaPreco().Preco).ToString();

            estacionamento.ValorPagar = float.Parse(estacionamentoOutPut.ValorAPagar);

            _dbContext.Update(estacionamento);
            _dbContext.SaveChanges();
        }