protected void ProcessFixTDataDictionaries(SessionID sessionID, Dictionary settings, DataDictionaryProvider provider) { provider.AddTransportDataDictionary(sessionID.BeginString, createDataDictionary(sessionID, settings, SessionSettings.TRANSPORT_DATA_DICTIONARY, sessionID.BeginString)); foreach (KeyValuePair <string, string> setting in settings) { if (setting.Key.StartsWith(SessionSettings.APP_DATA_DICTIONARY, System.StringComparison.CurrentCultureIgnoreCase)) { if (setting.Key.Equals(SessionSettings.APP_DATA_DICTIONARY, System.StringComparison.CurrentCultureIgnoreCase)) { Fields.ApplVerID applVerId = Message.GetApplVerID(settings.GetString(SessionSettings.DEFAULT_APPLVERID)); DataDictionary.DataDictionary dd = createDataDictionary(sessionID, settings, SessionSettings.APP_DATA_DICTIONARY, sessionID.BeginString); provider.AddApplicationDataDictionary(applVerId.Obj, dd); } else { int offset = setting.Key.IndexOf("."); if (offset == -1) { throw new System.ArgumentException(string.Format("Malformed {0} : {1}", SessionSettings.APP_DATA_DICTIONARY, setting.Key)); } string beginStringQualifier = setting.Key.Substring(offset); DataDictionary.DataDictionary dd = createDataDictionary(sessionID, settings, setting.Key, beginStringQualifier); provider.AddApplicationDataDictionary(Message.GetApplVerID(beginStringQualifier).Obj, dd); } } } }
protected DataDictionary.DataDictionary createDataDictionary(SessionID sessionID, QuickFix.Dictionary settings, string settingsKey, string beginString) { DataDictionary.DataDictionary dd; string path; if (settings.Has(settingsKey)) { path = settings.GetString(settingsKey); } else { path = beginString.Replace("\\.", "") + ".xml"; } if (!dictionariesByPath_.TryGetValue(path, out dd)) { dd = new DataDictionary.DataDictionary(path); dictionariesByPath_[path] = dd; } DataDictionary.DataDictionary ddCopy = new DataDictionary.DataDictionary(dd); if (settings.Has(SessionSettings.VALIDATE_FIELDS_OUT_OF_ORDER)) { ddCopy.CheckFieldsOutOfOrder = settings.GetBool(SessionSettings.VALIDATE_FIELDS_OUT_OF_ORDER); } if (settings.Has(SessionSettings.VALIDATE_FIELDS_HAVE_VALUES)) { ddCopy.CheckFieldsHaveValues = settings.GetBool(SessionSettings.VALIDATE_FIELDS_HAVE_VALUES); } if (settings.Has(SessionSettings.VALIDATE_USER_DEFINED_FIELDS)) { ddCopy.CheckUserDefinedFields = settings.GetBool(SessionSettings.VALIDATE_USER_DEFINED_FIELDS); } return(ddCopy); }
protected void ProcessFixDataDictionary(SessionID sessionID, Dictionary settings, DataDictionaryProvider provider) { DataDictionary.DataDictionary dataDictionary = createDataDictionary(sessionID, settings, SessionSettings.DATA_DICTIONARY, sessionID.BeginString); provider.AddTransportDataDictionary(sessionID.BeginString, dataDictionary); provider.AddApplicationDataDictionary(FixValues.ApplVerID.FromBeginString(sessionID.BeginString), dataDictionary); }