Пример #1
0
 void CrearMovimiento(CB03_Movimiento Movimiento)
 {
     _movimientoRepository.Create(Movimiento);
     _movimientoRepository.Save();
 }
Пример #2
0
        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"));
        }