public static ExtraSessionParams GetExtraSessionParams()

in FixAntenna/AdminTool/Commands/Util/CommandUtil.cs [76:160]


		public static ExtraSessionParams GetExtraSessionParams(SessionParameters parameters, FixSessionRuntimeState runtimeState)
		{
			var extraSessionParams = new ExtraSessionParams();
			var configuration = parameters.Configuration;

			// Extended
			extraSessionParams.TargetLocationID = parameters.TargetLocationId;
			extraSessionParams.TargetSubID = parameters.TargetSubId;
			extraSessionParams.SenderLocationID = parameters.SenderLocationId;
			extraSessionParams.SenderSubID = parameters.SenderSubId;
			extraSessionParams.HBI = parameters.HeartbeatInterval;

			if (!string.IsNullOrWhiteSpace(parameters.SessionQualifier))
			{
				var qualifierTag = configuration.GetProperty(Config.LogonMessageSessionQualifierTag);
				extraSessionParams.LogonMessageSessionQualifierTag = qualifierTag;
			}

			// Enabled for initiator only
			var storage = configuration.GetProperty(Config.StorageFactory);
			if (storage != null)
			{
				if (storage.Equals(typeof(InMemoryStorageFactory).FullName))
				{
					extraSessionParams.StorageType = StorageType.TRANSIENT;
				}
				else if (storage.Equals(typeof(MmfStorageFactory).FullName))
				{
					extraSessionParams.StorageType = StorageType.PERSISTENTMM;
				}
				else if (storage.Equals(typeof(SlicedFileStorageFactory).FullName))
				{
					extraSessionParams.StorageType = StorageType.SPLITPERSISTENT;
				}
				else
				{
					extraSessionParams.StorageType = StorageType.PERSISTENT;
				}
			}
			else
			{
				extraSessionParams.StorageType = StorageType.PERSISTENT;
			}
			extraSessionParams.EnableMessageRejecting = configuration.GetPropertyAsBoolean(Config.EnableMessageRejecting, false);
			var maxMessagesAmountInBunch = configuration.GetPropertyAsInt(Config.MaxMessagesToSendInBatch, 1, int.MaxValue, false);
			if (maxMessagesAmountInBunch > 0)
			{
				extraSessionParams.MaxMessagesAmountInBunch = maxMessagesAmountInBunch;
			}

			extraSessionParams.EncryptMethod = EncryptMethod.NONE;
			extraSessionParams.ClientType = ClientType.GENERIC;

			var autoReconnectAttempts = configuration.GetPropertyAsInt(Config.AutoreconnectAttempts);
			extraSessionParams.ReconnectMaxTries = autoReconnectAttempts;
			extraSessionParams.ForcedReconnect = autoReconnectAttempts >= 0;
			extraSessionParams.DisableTCPBuffer = !configuration.GetPropertyAsBoolean(Config.EnableNagle);

			// Sequence Numbers
			extraSessionParams.InSeqNum = GetInSeqNum(parameters, runtimeState);
			extraSessionParams.OutSeqNum = GetOutSeqNum(parameters, runtimeState);

			if (parameters.ForceSeqNumReset == ForceSeqNumReset.Always)
			{
				extraSessionParams.ForceSeqNumReset = Fixicc.Message.ForceSeqNumReset.ALWAYS;
			}
			else if (parameters.ForceSeqNumReset == ForceSeqNumReset.OneTime)
			{
				extraSessionParams.ForceSeqNumReset = Fixicc.Message.ForceSeqNumReset.ON;
			}
			else
			{
				extraSessionParams.ForceSeqNumReset = Fixicc.Message.ForceSeqNumReset.OFF;
			}

			// Security
			var username = parameters.OutgoingLoginMessage.GetTagValueAsString(553);
			extraSessionParams.Username = username;
			var password = parameters.OutgoingLoginMessage.GetTagValueAsString(554);
			if (password != null)
			{
				extraSessionParams.Password = password;
			}
			return extraSessionParams;
		}