public virtual void ToAdmin(QuickFix.Message message, QuickFix.SessionID session) { try { logger.Debug("SND(Admin) --> type[" + message.GetType().ToString() + "] msg[" + message.ToString() + "]"); //if (message.Header.GetField(QuickFix.Fields.Tags.MsgType) != QuickFix.Fields.MsgType.HEARTBEAT) // this.Crack(message, session); // Complementa a mensagem de logon com a senha if (message.GetType() == typeof(Logon)) { Logon message2 = (Logon)message; if (_channelUmdfConfig.LogonPassword != "") { message2.Set(new QuickFix.Fields.RawData(_channelUmdfConfig.LogonPassword)); message2.Set(new QuickFix.Fields.RawDataLength(_channelUmdfConfig.LogonPassword.Length)); if (_channelUmdfConfig.NewPassword != null && _channelUmdfConfig.NewPassword.Length > 0) { QuickFix.Fields.StringField newPassword = new QuickFix.Fields.StringField(925, _channelUmdfConfig.NewPassword.Trim()); message2.SetField(newPassword); } } message2.Set(new QuickFix.Fields.HeartBtInt(_channelUmdfConfig.HeartBtInt)); message2.Set(new QuickFix.Fields.EncryptMethod(0)); message2.Set(new QuickFix.Fields.ResetSeqNumFlag(_channelUmdfConfig.ResetOnLogon)); } logger.Debug("ToAdmin(). Session id : " + session.ToString() + " Msg: " + message.GetType().ToString()); //if (message.getHeader().getField(MsgType.FIELD) != QuickFix.MsgType.Heartbeat) // this.crack(message, session); } catch (Exception ex) { logger.Error("ToAdmin(): " + ex.Message, ex); } }
public void CheckValidFormat() { QuickFix.DataDictionary.DataDictionary dd = new QuickFix.DataDictionary.DataDictionary(); dd.LoadFIXSpec("FIX44"); dd.CheckFieldsHaveValues = true; var goodFields = new QuickFix.Fields.StringField[] { new QuickFix.Fields.StringField(QuickFix.Fields.Tags.Symbol, "foo"), // string new QuickFix.Fields.StringField(QuickFix.Fields.Tags.Side, "2"), // char new QuickFix.Fields.StringField(QuickFix.Fields.Tags.LastQty, "123"), // int new QuickFix.Fields.StringField(QuickFix.Fields.Tags.AvgPx, "1.23"), // decimal new QuickFix.Fields.StringField(QuickFix.Fields.Tags.ReportToExch, "Y"), // bool new QuickFix.Fields.StringField(QuickFix.Fields.Tags.ContraTradeTime, "20011217-09:30:47.123"), // datetime new QuickFix.Fields.StringField(QuickFix.Fields.Tags.MDEntryDate, "20030910"), // dateonly new QuickFix.Fields.StringField(QuickFix.Fields.Tags.MDEntryTime, "13:20:00.123"), // timeonly new QuickFix.Fields.StringField(QuickFix.Fields.Tags.Symbol, "") // string }; foreach (var datum in goodFields) { Assert.DoesNotThrow(delegate { dd.CheckValidFormat(datum); }); } var badFields = new QuickFix.Fields.StringField[] { new QuickFix.Fields.StringField(QuickFix.Fields.Tags.Side, "toolong"), // char new QuickFix.Fields.StringField(QuickFix.Fields.Tags.LastQty, "notint"), // int new QuickFix.Fields.StringField(QuickFix.Fields.Tags.AvgPx, "notdec"), // decimal new QuickFix.Fields.StringField(QuickFix.Fields.Tags.ReportToExch, "notbool"), // bool new QuickFix.Fields.StringField(QuickFix.Fields.Tags.ContraTradeTime, "notdatetime"), // datetime new QuickFix.Fields.StringField(QuickFix.Fields.Tags.MDEntryDate, "notdate"), // dateonly new QuickFix.Fields.StringField(QuickFix.Fields.Tags.MDEntryTime, "nottime") // timeonly }; foreach (var datum in badFields) { Assert.Throws(typeof(IncorrectDataFormat), delegate { dd.CheckValidFormat(datum); }); } var emptyFields = new QuickFix.Fields.StringField[] { new QuickFix.Fields.StringField(QuickFix.Fields.Tags.Side, ""), // char new QuickFix.Fields.StringField(QuickFix.Fields.Tags.LastQty, ""), // int new QuickFix.Fields.StringField(QuickFix.Fields.Tags.AvgPx, ""), // decimal new QuickFix.Fields.StringField(QuickFix.Fields.Tags.ReportToExch, ""), // bool new QuickFix.Fields.StringField(QuickFix.Fields.Tags.ContraTradeTime, ""), // datetime new QuickFix.Fields.StringField(QuickFix.Fields.Tags.MDEntryDate, ""), // dateonly new QuickFix.Fields.StringField(QuickFix.Fields.Tags.MDEntryTime, "") // timeonly }; foreach (var datum in emptyFields) { Assert.Throws(typeof(IncorrectDataFormat), delegate { dd.CheckValidFormat(datum); }); } // Setting change! dd.CheckFieldsHaveValues = false; foreach (var datum in emptyFields) { Assert.DoesNotThrow(delegate { dd.CheckValidFormat(datum); }); } }