public override object ExecuteCommand(InCourseRequest inCourseRequest)
        {
            OrdenOperacionEntity request = new OrdenOperacionEntity()
            {
                IdOrden             = IdOrden,
                Cantidad            = Cantidad,
                Precio              = Precio,
                NroOperacionMercado = NroOperacionMercado
            };

            // Cambio de Estado
            if (Orden == null)
            {
                Orden = OrdenesDAL.ObtenerOrdenbyID(IdOrden);
            }
            Orden.IdEstado = (Cantidad == Orden?.Cantidad && Remanente == 0) ? (byte)EstadoOrden.Aplicada : (Remanente > 0 && Remanente == Cantidad) ? (byte)EstadoOrden.Aplicada : (byte)EstadoOrden.AplicadaParcial;

            using (ReadCommittedTransactionScope scope = new ReadCommittedTransactionScope(TransactionScopeOption.Required))
            {
                // Insertar OrdenOperacion
                OrdenesDAL.InsertarOrdenOperacion(request, Orden.IdEstado, Orden.NumeroOrdenMercado);

                Orden.IdMercado = CachingManager.Instance.GetAllMercados().FirstOrDefault(x => x.EsInterno).IdMercado;
                OrdenesDAL.ActualizarOrden(Orden);

                scope.Complete();
            }

            LoggingHelper.Instance.AgregarLog(new LogBitacoraOrdenEntity(request.IdOrden, LogCodigoAccion.CierreMercadoInterno, "Cierre de Mercado Interno #:" + request.NroOperacionMercado, (EstadoOrden)Orden.IdEstado, null, SourceEnum.Mobile));

            return(null);
        }
示例#2
0
        public static void InsertarOrdenOperacion(OrdenOperacionEntity ordenOperacion, byte?idEstado, string numeroOrdenMercado)
        {
            List <SqlParameter> lista = new List <SqlParameter>();

            lista.Add(SqlServerHelper.GetParam("@IdOrden", ordenOperacion.IdOrden));
            lista.Add(SqlServerHelper.GetParam("@NroOperacionMercado", ordenOperacion.NroOperacionMercado));
            lista.Add(SqlServerHelper.GetParam("@NroOperacionBoleto", ordenOperacion.NroOperacionBoleto));
            lista.Add(SqlServerHelper.GetParam("@Precio", ordenOperacion.Precio));
            lista.Add(SqlServerHelper.GetParam("@Cantidad", ordenOperacion.Cantidad));
            lista.Add(SqlServerHelper.GetParam("@OperoPorTasa", ordenOperacion.OperoPorTasa));
            if (ordenOperacion.PrecioVinculado.HasValue)
            {
                lista.Add(SqlServerHelper.GetParam("@PrecioVinculado", ordenOperacion.PrecioVinculado));
            }
            if (idEstado.HasValue)
            {
                lista.Add(SqlServerHelper.GetParam("@IdEstado", idEstado));
            }
            if (!string.IsNullOrEmpty(numeroOrdenMercado))
            {
                lista.Add(SqlServerHelper.GetParam("@NumeroOrdenMercado", numeroOrdenMercado));
            }
            SqlServerHelper.ExecuteNonQuery("orden_owner.ORD_InsertarOrdenOperacion", lista);
        }