[vk]http://vk.com/video_ext.php?oid=-66650972&id=167470507&hash=5aed0d16f3d8cb3b&hd=3[/vk]
[vk]http://vk.com/video_ext.php?oid=-66650972&id=167477199&hash=974c22b650016bee&hd=3[/vk]
[vk]http://vk.com/video_ext.php?oid=-66650972&id=167477299&hash=130700df674df7af&hd=3[/vk]
Проект StockSharp.TraderConnection
Файл SafeConnection.cs
В версии S# 4.1.19.1 настройки переподключения сгруппированы в следующие свойства:
Trader.ReConnectionSettings.ConnectionSettings - настройки для подключения
Trader.ReConnectionSettings.ExportSettings - настройки для экспорта
В связи с чем, изменен вид указания интервала попыток подключений, теперь он внутри свойства ConnectionSettings.
Возобновление экспорта теперь осуществляется автоматически, поэтому строка:
Trader.ReConnectionSettings.IsReStartExport = true;
более не нужна.
Было:
Code
/// <summary>
/// Подключиться безопасно к торговой платформе
/// </summary>
public void ConnectSafe()
{
//Интервал переподключения
Trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
//Когда переподключаться
Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;
//Запускать ли заново экспрорт после переподключения
Trader.ReConnectionSettings.IsReStartExport = true;
//Подписаться на появление ошибки подключения от трейдера
Trader.ConnectionError += OnNewException;
//Подписаться на появление ошибок не выставленной заявки
Trader.OrdersRegisterFailed += fails => fails.ForEach(f => OnNewException(f.Error));
//Подписаться на событие успешного подключения к торговой платформе
Trader.Connected += () =>
{
try
{
//Запустить экспорт данных из торговой платформы
Trader.StartExport();
}
catch (Exception ex)
{
//Вызвать событие появления нового исключения
OnNewException(ex);
}
};
//Подключиться к торговой платформе
Trader.Connect();
}
Стало:
Code
public void ConnectSafe()
{
//Интервал переподключения
Trader.ReConnectionSettings.ConnectionSettings.Interval = TimeSpan.FromSeconds(10);
//Когда переподключаться
Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;
//Запускать ли заново экспрорт после переподключения
//Trader.ReConnectionSettings.IsReStartExport = true;
//Подписаться на появление ошибки подключения от трейдера
Trader.ConnectionError += OnNewException;
//Подписаться на появление ошибок не выставленной заявки
Trader.OrdersRegisterFailed += fails => fails.ForEach(f => OnNewException(f.Error));
//Подписаться на событие успешного подключения к торговой платформе
Trader.Connected += () =>
{
try
{
//Запустить экспорт данных из торговой платформы
Trader.StartExport();
}
catch (Exception ex)
{
//Вызвать событие появления нового исключения
OnNewException(ex);
}
};
//Подключиться к торговой платформе
Trader.Connect();
}
Начиная с версии S# 4.1.19.1 статус подключения коннектора вынесен в специальное свойство ConnectionState, которое может принимать следующие значения:
Disconnected - Не активно,
Disconnecting - В процессе отключения,
Connected - В процессе подключения,
Connecting - Подключение активно,
Failed - Ошибка подключения
Таким образом, теперь нет свойства IsConnected, а наличие статуса подключения мы можем получать от свойства ConnectionState.
Было:
Code
public void DisConnectSafe()
{
//Если коннектор к торговой платформе не пуст и соединение установлено
if (Trader != null && Trader.IsConnected)
{
Trader.StopExport();
Trader.Disconnect();
}
}
Стало:
Code
public void DisConnectSafe()
{
//Если коннектор к торговой платформе не пуст и соединение установлено
if (Trader != null && Trader.ConnectionState == ConnectionStates.Connected)
{
Trader.StopExport();
Trader.Disconnect();
}
}
Было:
Code
public bool IsConnected
{
get
{
return Trader != null && Trader.IsConnected;
}
}
Стало:
Code
public bool IsConnected
{
get
{
return Trader != null && Trader.ConnectionState == ConnectionStates.Connected;
}
}