Esempio n. 1
0
        private Transaccion ObtenerTransaccionEnBaseUltimoEstado(int idTransaccion, TipoAccionOrden tipoAccionOrden)
        {
            int ultimoEstado = (int)EstadoTransacciones.Iniciada;

            if (tipoAccionOrden == TipoAccionOrden.ConfirmarRecepcion && ultimoEstado != (int)EstadoTransacciones.Iniciada)
            {
                return(null);
            }

            bool transaccionDebeActualizarse = false;

            switch (ultimoEstado)
            {
            case (int)EstadoTransacciones.Terminada:
                break;

            case (int)EstadoTransacciones.Cancelada:
                break;

            case (int)EstadoTransacciones.CanceladaPorVencimientoValidez:
                break;

            default:
                transaccionDebeActualizarse = true;
                break;
            }

            if (!transaccionDebeActualizarse)
            {
                return(null);
            }

            var transaccion = ObtenerTransaccionEnBd(idTransaccion);

            return(transaccion);
        }
        private NovedadFIXDTO IntentarConfirmarRecepcionYConcertarOrden(int idTransaccion, string[] campos, string mensaje, TipoAccionOrden tipoAccionOrden)
        {
            try
            {
                if (campos[6] == string.Empty || campos[7] == string.Empty)
                {
                    throw new Exception("Los campos del mensaje son inválidos");
                }

                return(new NovedadFIXDTO
                {
                    FechaConcertacion = DateTime.Parse(campos[2]),
                    Cantidad = Convert.ToDecimal(campos[3]),
                    Precio = Convert.ToDecimal(campos[4]),
                    Partida = campos[5],
                    IdTransaccionContraparte = campos[6],
                    IdFix = campos[7],
                    TipoAccionOrden = tipoAccionOrden,
                    IdTransaccion = idTransaccion
                });
            }
            catch (Exception ex)
            {
                string mensajeError = $"Error al intentar parser un mensaje sqs y concertar-mensaje:{mensaje}";
                _interfacePresenter.MostrarMensaje(mensajeError);

                return(null);
            }
        }
        private NovedadFIXDTO IntentarCancelarOrden(int idTransaccion, string fechaCancelacionString, string mensaje, TipoAccionOrden tipoAccionOrden)
        {
            bool fueExitoso = DateTime.TryParse(fechaCancelacionString, out var fechaCancelacion);

            if (!fueExitoso)
            {
                return(null);
            }

            return(new NovedadFIXDTO
            {
                FechaCancelacion = fechaCancelacion,
                IdTransaccion = idTransaccion,
                TipoAccionOrden = tipoAccionOrden
            });
        }
        private NovedadFIXDTO IntentarConfirmarRecepcionOrden(int idTransaccion, string[] campos, TipoAccionOrden tipoAccionOrden)
        {
            if (campos[2] == string.Empty || campos[3] == string.Empty)
            {
                throw new Exception("Los campos del mensaje son inválidos");
            }

            return(new NovedadFIXDTO
            {
                IdTransaccion = idTransaccion,
                IdTransaccionContraparte = campos[2],
                IdFix = campos[3],
                TipoAccionOrden = tipoAccionOrden
            });
        }