void CrearMovimiento(CB03_Movimiento Movimiento) { _movimientoRepository.Create(Movimiento); _movimientoRepository.Save(); }
public DtoApiResponseMessage RealizarTransferencia(DtoTranferencia dto) { var cuentaOrigen = _cuentasRepository.GetFirst <CB02_Cuenta>(cuenta => cuenta.NumeroCuenta.Equals(dto.CuentaOrigen)); var cuentaDestino = _cuentasRepository.GetFirst <CB02_Cuenta>(cuenta => cuenta.NumeroCuenta.Equals(dto.CuentaDestino)); if (cuentaOrigen == null) { return(_apiResponseMessage.CrearDtoApiResponseMessage(null, "MSG007")); } else if (cuentaDestino == null) { return(_apiResponseMessage.CrearDtoApiResponseMessage(null, "MSG008")); } using var transaccion = new TransactionScope(); try { if (dto.Monto > cuentaOrigen.Saldo) { return(_apiResponseMessage.CrearDtoApiResponseMessage(null, "MSG005")); } cuentaOrigen.Saldo = cuentaOrigen.Saldo - dto.Monto; _cuentasRepository.Update(cuentaOrigen); _cuentasRepository.Save(); cuentaDestino.Saldo = cuentaDestino.Saldo + dto.Monto; _cuentasRepository.Update(cuentaDestino); _cuentasRepository.Save(); var entidadMovimientoOrigen = new CB03_Movimiento { FechaCreacion = new DateTime(), TipoMovimiento = "DEBITO", Valor = dto.Monto, SaldoFinal = cuentaOrigen.Saldo - dto.Monto, CuentaOrigen = cuentaOrigen.NumeroCuenta, CuentaDestino = cuentaDestino.NumeroCuenta, CuentaId = cuentaOrigen.Id, }; CrearMovimiento(entidadMovimientoOrigen); //_movimientoRepository.Create(entidadMovimientoOrigen); //_movimientoRepository.Save(); var entidadMovimientoDestino = new CB03_Movimiento { FechaCreacion = new DateTime(), TipoMovimiento = "CREDITO", Valor = dto.Monto, SaldoFinal = cuentaDestino.Saldo + dto.Monto, CuentaOrigen = cuentaDestino.NumeroCuenta, CuentaDestino = cuentaDestino.NumeroCuenta, CuentaId = cuentaDestino.Id }; CrearMovimiento(entidadMovimientoDestino); //_movimientoRepository.Create(entidadMovimientoDestino); //_movimientoRepository.Save(); transaccion.Complete(); } catch (Exception ex) { throw ex; } finally { transaccion.Dispose(); } //var dtoMapeado = mapearEntidadMovimientoADto(ProcesoElectoral); return(_apiResponseMessage.CrearDtoApiResponseMessage(null, "MSG006")); }