however i couldn't figure out how i can recall the api without having to repeat the whole process again.
- Code: Select all
O2GSession session = null;
try
{
session = O2GTransport.createSession();
SessionStatusListener statusListener = new SessionStatusListener(session);
session.subscribeSessionStatus(statusListener);
statusListener.Reset();
session.login("id", "password", "http://www.fxcorporate.com/Hosts.jsp", "Real");
if (statusListener.WaitEvents() && statusListener.Connected)
{
ResponseListener responseListener = new ResponseListener(session);
session.subscribeResponse(responseListener);
O2GLoginRules loginRules = session.getLoginRules();
if (loginRules == null)
{
throw new Exception("Cannot get login rules");
}
O2GResponse response;
if (loginRules.isTableLoadedByDefault(O2GTableType.Offers))
{
response = loginRules.getTableRefreshResponse(O2GTableType.Offers);
if (response != null)
{
responseListener.PrintOffers(session, response, null);
}
}
else
{
O2GRequestFactory requestFactory = session.getRequestFactory();
if (requestFactory != null)
{
O2GRequest offersRequest = requestFactory.createRefreshTableRequest(O2GTableType.Offers);
responseListener.SetRequestID(offersRequest.RequestID);
session.sendRequest(offersRequest);
if (!responseListener.WaitEvents())
{
throw new Exception("Response waiting timeout expired");
}
response = responseListener.GetResponse();
if (response != null)
{
responseListener.PrintOffers(session, response, null);
}
}
}
// Do nothing 10 seconds, let offers print
Thread.Sleep(1000);
Console.WriteLine("Done!");
session.unsubscribeResponse(responseListener);
statusListener.Reset();
session.logout();
statusListener.WaitEvents();
}
session.unsubscribeSessionStatus(statusListener);
}
catch (Exception e)
{
Console.WriteLine("Exception: {0}", e.ToString());
}
finally
{
if (session != null)
{
session.Dispose();
}
}