예제 #1
0
        public double RegistrarSaida(DTO.Movimentacao m)
        {
            m.Placa = m.Placa.ToUpper().Replace("-", "");
            //Ler dados da movimentação através da placa
            Movimentacao movimentacao = LerMovimentacao(m.Placa);

            //Calcular o tempo da movimentação
            movimentacao.Saida = DateTime.Now;
            TimeSpan tempoNoLocal =
                movimentacao.Saida.Value - movimentacao.Entrada;
            //Calcular o valor da vaga de acordo com o tipo do veiculo
            Vaga     vaga     = vagaBll.GetById(movimentacao.VagaID);
            TipoVaga tipoVaga = tipoVagaBll.GetById(vaga.TipoVagaID);

            //Calcular o preço a pagar
            movimentacao.Valor =
                CalcularPrecoFinalEstadia(tempoNoLocal, vaga, tipoVaga.Valor);
            using (TransactionScope scope = new TransactionScope())
            {
                //Efetuar a Saida
                movimentacaoDAL.RegistrarSaida(movimentacao);
                //Desocupar a Vaga
                vagaBll.Desocupar(movimentacao.VagaID);
                scope.Complete();
            }
            return(movimentacao.Valor.Value);
        }
예제 #2
0
        public void RegistrarEntrada(DTO.Movimentacao m)
        {
            DbCommand command = DbFactory.GetCommand();

            command.CommandText =
                @"INSERT INTO MOVIMENTACOES 
                    (PLACA,ENTRADA,VAGAID,MODELO,COR) VALUES
                    (@PLACA,@ENTRADA,@VAGAID,@MODELO,@COR)";
            command.Parameters.AddWithValue("@PLACA", m.Placa);
            command.Parameters.AddWithValue("@ENTRADA", m.Entrada);
            command.Parameters.AddWithValue("@VAGAID", m.VagaID);
            command.Parameters.AddWithValue("@MODELO", m.Modelo);
            command.Parameters.AddWithValue("@COR", m.Cor);
            new DbExecuter().Execute(command);
        }
예제 #3
0
 public void RegistrarEntrada(DTO.Movimentacao m)
 {
     Validate(m);
     m.Entrada = DateTime.Now;
     using (TransactionScope scope = new TransactionScope())
     {
         try
         {
             //Insere a movimentação no banco de dados
             movimentacaoDAL.RegistrarEntrada(m);
             //Altera o status da vaga no banco de dados
             vagaBll.Ocupar(m.VagaID);
             //Se a linha debaixo for executada,
             //as operações SQL são CONFIRMADAS no banco de dados,
             //caso contrário, uma REVERSÃO das operações é executada
             scope.Complete();
         }
         catch (Exception ex)
         {
         }
     }
 }