[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;
            }
        }