/// <summary>Регистрирует клиента на подписку</summary> /// <param name="categories">строковый массив категорий для подписки</param> /// <param name="propertyUpdate">делегат события при изменении значения свойства</param> /// <param name="showError">делегат события при ошибке</param> /// <param name="fileReceived">делегат события при получении файла</param> public bool RegisterForUpdates(string[] categories, PropertyUpdateWrapper propertyUpdate, ClientErrorWrapper showError = null, ClientFileReceivedWrapper fileReceived = null) { _propertyUpdate = propertyUpdate; _showError = showError; _fileReceived = fileReceived; try { _proxy.RegisterForUpdates(_clientId, categories); return(true); } catch (EndpointNotFoundException ex) { Data.SendToErrorsLog("Ошибка подключения к [" + _host + "]: " + ex.Message); return(false); } catch (Exception ex) { var message = String.Concat("Ошибка в RegisterForUpdates() для [" + _host + "]: ", ex.Message); SendMessage(message); Data.SendToErrorsLog("Ошибка в RegisterForUpdates() для [" + _host + "]: " + ex.FullMessage()); return(false); } }
public void Connect(string host, int port, string[] categories, PropertyUpdateWrapper propertyUpdate, ClientErrorWrapper showError, ClientFileReceivedWrapper fileReceived, ConnectionStatusWrapper connectionStatus) { _host = host; _port = port; _categories = categories; _propertyUpdate = propertyUpdate; _showError = showError; _fileReceived = fileReceived; _connectionStatus = connectionStatus; ThreadPool.QueueUserWorkItem(param => { _callback = new CallbackHandler(_clientId, host, port, ConnectionStatus); Thread.Sleep(100); _callback.RegisterForUpdates(categories, propertyUpdate, showError, fileReceived); }); _faultTimer = new System.Timers.Timer(15 * 1000) { AutoReset = false }; _faultTimer.Elapsed += Reconnecting; }