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); }
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); }
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) { } } }