예제 #1
0
        public static QuickFix.FIX42.OrderCancelReject Fix42Reject2OrderCancelReject(QuickFix.Message msgReject, QuickFix.Message msgOri)
        {
            try
            {
                QuickFix.FIX42.OrderCancelReject ocr = new QuickFix.FIX42.OrderCancelReject();

                if (msgOri.IsSetField(Tags.OrderID))
                {
                    ocr.Set(new OrderID(msgOri.GetString(Tags.OrderID)));
                }
                else
                {
                    ocr.Set(new OrderID("NONE"));
                }
                if (msgOri.IsSetField(Tags.SecondaryOrderID))
                {
                    ocr.Set(new SecondaryOrderID(msgOri.GetString(Tags.SecondaryOrderID)));
                }
                if (msgOri.IsSetField(Tags.ClOrdID))
                {
                    ocr.Set(new ClOrdID(msgOri.GetString(Tags.ClOrdID)));
                }
                if (msgOri.IsSetField(Tags.OrigClOrdID))
                {
                    ocr.Set(new OrigClOrdID(msgOri.GetString(Tags.OrigClOrdID)));
                }
                ocr.Set(new OrdStatus(OrdStatus.REJECTED));
                // if (msgOri.IsSetField(Tags.ClientID)) ocr.Set(new ClientID(msgOri.GetString(Tags.ClientID))); // not found on 4.4EP
                // TODO[FF] - Verificar a montagem do execbroker a partir de party ids
                // if (msgOri.IsSetField(Tags.ExecBroker)) ocr.Set(new ExecBroker(msgOri.GetString(Tags.ExecBroker))); // not found on 4.4EP
                if (msgOri.IsSetField(Tags.ListID))
                {
                    ocr.Set(new ListID(msgOri.GetString(Tags.ListID)));
                }
                if (msgOri.IsSetField(Tags.Account))
                {
                    ocr.Set(new Account(msgOri.GetString(Tags.Account)));
                }
                if (msgOri.IsSetField(Tags.TransactTime))
                {
                    ocr.Set(new TransactTime(msgOri.GetDateTime(Tags.TransactTime)));
                }
                if (msgOri.Header.GetString(Tags.MsgType).Equals(MsgType.ORDER_CANCEL_REQUEST)) // mandatory
                {
                    ocr.Set(new CxlRejResponseTo('1'));
                }
                else
                {
                    ocr.Set(new CxlRejResponseTo('2'));
                }
                //if (msgOri.IsSetField(Tags.CxlRejReason)) ocr.Set(new CxlRejReason(msgOri.GetInt(Tags.CxlRejReason)));
                if (msgOri.IsSetField(Tags.CxlRejReason))
                {
                    ocr.Set(new CxlRejReason(CxlRejReason.BROKER_OPTION));
                }
                if (msgOri.IsSetField(Tags.Text))
                {
                    ocr.Set(new Text(msgOri.GetString(Tags.Text)));
                }
                if (msgOri.IsSetField(Tags.EncodedTextLen))
                {
                    ocr.Set(new EncodedTextLen(msgOri.GetInt(Tags.EncodedTextLen)));
                }
                if (msgOri.IsSetField(Tags.EncodedText))
                {
                    ocr.Set(new EncodedText(msgOri.GetString(Tags.EncodedText)));
                }
                if (msgOri.IsSetField(Tags.Memo))
                {
                    ocr.SetField(new Memo(msgOri.GetString(Tags.Memo)));
                }

                /*
                 * if (msgOri.IsSetField(Tags.OrderID))
                 *  ocr.Set(new OrderID(msgOri.GetString(Tags.OrderID)));
                 * else
                 *  ocr.Set(new OrderID("NONE"));
                 * ocr.Set(new ClOrdID(msgOri.GetString(Tags.ClOrdID)));           // mandatory
                 * ocr.Set(new OrigClOrdID(msgOri.GetString(Tags.OrigClOrdID)));   // mandatory
                 * ocr.Set(new OrdStatus(OrdStatus.REJECTED));                     // mandatory
                 * if (msgOri.IsSetField(Tags.Account))
                 *  ocr.SetField(new Account(msgOri.GetString(Tags.Account)));
                 * if (msgOri.Header.GetString(Tags.MsgType).Equals(MsgType.ORDER_CANCEL_REQUEST)) // mandatory
                 *  ocr.Set(new CxlRejResponseTo('1'));
                 * else
                 *  ocr.Set(new CxlRejResponseTo('2'));
                 * if (msgReject.IsSetField(Tags.Text))
                 *  ocr.Set(new Text(msgReject.GetString(Tags.Text)));
                 * int len = msgOri.GetInt(Tags.NoPartyIDs);
                 * for (int i = 0; i < len; i++)
                 * {
                 *  Group grp = msgOri.GetGroup(i + 1, Tags.NoPartyIDs);
                 *  ocr.AddGroup(grp);
                 * }
                 * ocr.SetField(new Symbol(msgOri.GetString(Tags.Symbol)));
                 * if (msgOri.IsSetField(Tags.SecurityID)) ocr.SetField(new SecurityID(msgOri.GetField(Tags.SecurityID)));
                 * if (msgOri.IsSetField(Tags.SecurityIDSource)) ocr.SetField(new SecurityIDSource(msgOri.GetField(Tags.SecurityIDSource)));
                 * ocr.SetField(new Side(msgOri.GetChar(Tags.Side)));
                 * if (msgOri.IsSetField(Tags.Memo))
                 *  ocr.SetField(new Memo(msgOri.GetString(Tags.Memo)));
                 */
                return(ocr);
            }
            catch (Exception ex)
            {
                logger.Error("Fix42Reject2OrderCancelReject(): " + ex.Message, ex);
                return(null);
            }
        }