in FixAntenna/AdminTool/Commands/Administrative/CreateInitiator.cs [32:119]
public override void Execute()
{
Log.Debug("Execute CreateInitiator Command");
try
{
if (RequestId == null)
{
SendInvalidArgument("Parameter RequestID is required");
return;
}
var createInitiatorRequest = (Fixicc.Message.CreateInitiator) Request;
var details = new SessionParameters();
if (!FillSenderTargetIds(createInitiatorRequest, details))
{
return;
}
if (!FillConnectionParameters(createInitiatorRequest, details))
{
return;
}
if (!FillFixVersion(createInitiatorRequest, details))
{
return;
}
if (!FillBackupConnection(createInitiatorRequest, details))
{
return;
}
var extraSessionParams = createInitiatorRequest.ExtraSessionParams;
if (extraSessionParams != null)
{ // fixed bug 15170 Session using the RAI was not created
if (!FillExtraSessionParams(details, extraSessionParams))
{
return;
}
FillCyclicSwitchOption(createInitiatorRequest, details);
FillAutoSwitchToBackupOption(createInitiatorRequest, details);
FillForcedReconnect(createInitiatorRequest, details);
}
if (ConfiguredSessionRegister.IsSessionRegistered(details.SessionId))
{
SendError($"Can't create initiator session. Session {details.SessionId} already exists");
return;
}
var session = details.CreateNewFixSession();
if (session == null)
{
SendError("Can't create session");
return;
}
session.SetFixSessionListener(new FixSessionListenerAnonymousInnerClass(this));
if (createInitiatorRequest.Backup != null
&& createInitiatorRequest.Backup.ActiveConnection == ActiveConnection.BACKUP)
{
var backupFIXSession = (IBackupFixSession) session;
//switch host and connect
backupFIXSession.SwitchToBackUp();
}
else
{
session.Connect();
}
SendResponseSuccess(new Response());
}
catch (IOException e)
{
Log.Error(e);
SendError($"Unknown host: {e.Message}");
}
catch (SocketException e)
{
Log.Error(e);
SendError($"Unknown host: {e.Message}");
}
catch (Exception e)
{
Log.Error(e);
SendError(e.Message);
}
}