예제 #1
0
        private string DistribuirPorEstado(Order order)
        {
            OrdenEntity orden = null;

            if (Source == SourceEnum.Api)
            {
                orden = OrdenHelper.DesbloquearOrden(order.IdOrden, Source);
            }
            if (Source == SourceEnum.ComplementoDMA)
            {
                orden = OrdenHelper.ObtenerOrdenbyNumeroOrdenInterno(order.IdOrden);
                order.NumeroOrdenMercado = orden.NumeroOrdenMercado;
                order.NumeroOrdenInterno = orden.NumeroOrdenInterno;
            }
            else
            {
                orden = OrdenHelper.ObtenerOrdenbyID(order.IdOrden);
            }
            switch (orden.IdEstado)
            {
            case (int)EstadoOrden.Ingresada:
                return(CancelarOrden(orden, GetUltimaActualizacion(order.Timestamp)));

            case (int)EstadoOrden.EnMercado:
            case (int)EstadoOrden.Aplicada:
                //case (int)EstadoOrden.AplicadaParcial:
                return(CancelarOrdenMercado(orden, GetUltimaActualizacion(order.Timestamp)));

            default:
                throw new M4TraderApplicationException("Estado no Valido para la orden Nro: " + orden.NumeroOrdenInterno);
            }
        }