Get Session List (O2GO, CS)
From FxCodeBaseWiki
The example shows how to define if it is required to specify PIN and SubID when logging in for a certain connection.
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace Sample.LoginInfo
{
class Program
{
static FXCore.CoreAut mCore;
static FXCore.TradeDeskAut mDesk;
static void Main(string[] args)
{
try
{
if (args.Length < 2)
{
Console.WriteLine("usage: sample.LoginInfo user password [url] [connection]");
return;
}
string user = args[0];
string pwd = args[1];
string url = (args.Length > 2) ? args[2] : "http://www.fxcorporate.com";
string connection = (args.Length > 3) ? args[3] : "Demo";
//create o2go objects
mCore = new FXCore.CoreAut();
mDesk = (FXCore.TradeDeskAut)mCore.CreateTradeDesk("trader");
//gets the information about available trading sessions.
FXCore.SessionDescriptorEnumAut sessions = (FXCore.SessionDescriptorEnumAut)mDesk.RetrieveTradeSessions(user, pwd, url, connection);
//check whether the SubID is required for logging in
string subID = null ;
if (sessions.Count == 1)
Console.WriteLine("Only one trading session is available, so it is not necessary to specify SubID in the Login* methods.");
else
{
Console.WriteLine("There are several sessions available:");
//print information about available sessions
foreach (FXCore.SessionDescriptorAut sess in sessions)
Console.WriteLine("Session SubID:{0}; Name:{1}; Description:{2}; RequirePIN:{3}.", sess.SubID, sess.Name, sess.Description, sess.RequirePIN);
Console.WriteLine("Please specify a session (type its SubID).");
subID = Console.ReadLine();
}
//check whether PIN is required for the selected session
string pin = null;
FXCore.SessionDescriptorAut session = subID == null ? (FXCore.SessionDescriptorAut)sessions.Item(1) : FindSession(sessions, subID);
if (session == null)
throw new Exception("Incorrect subid was specified.");
if (!session.RequirePIN)
Console.WriteLine("PIN is not required.");
else
{
Console.WriteLine("PIN is required. Please type the PIN.");
pin = Console.ReadLine();
}
//logging in
Console.WriteLine("Logging in using the following parameters: user='{0}', url='{1}', connection='{2}', subid='{3}', PIN='{4}'...",
user, url, connection, subID, pin);
mDesk.LoginWithSubidPIN(user, pwd, url, connection, subID, pin);
Console.WriteLine("Logged in.");
}
catch (Exception e)
{
Console.WriteLine("{0}", e.ToString());
}
//finalizing
mDesk.Logout();
}
/// <summary>
/// Search for the session by its subid.
/// </summary>
static FXCore.SessionDescriptorAut FindSession(FXCore.SessionDescriptorEnumAut sessions, string subID)
{
foreach (FXCore.SessionDescriptorAut session in sessions)
{
if (session.SubID.CompareTo(subID) == 0)
return session;
}
return null;
}
}
}
This Article in Other Languages
Language: | English • español |
---|