コード例 #1
0
        private void Handler_HasCome(object sender, Message msg)
        {
            _toServiceMessenger = Utils.GetAnswerMessenger(msg);
            switch ((ServiceOperation)msg.What)
            {
            case ServiceOperation.GetClientSettings:
                _callbacks.Dequeue(ServiceOperation.GetClientSettings, Utils.GetData <ConnectionCredentials>(msg));
                break;

            case ServiceOperation.GetIsConnected:
                _callbacks.Dequeue(ServiceOperation.GetIsConnected, Utils.GetData <ManagerConnectionState>(msg));
                break;

            case ServiceOperation.GetScenarios:
                _callbacks.Dequeue(ServiceOperation.GetScenarios, Utils.GetData <ScenarioInfo[]>(msg));
                break;

            case ServiceOperation.GetNotifications:
                _callbacks.Dequeue(ServiceOperation.GetNotifications, Utils.GetData <LazuriteNotification[]>(msg));
                break;

            case ServiceOperation.ConnectionLost:
                ConnectionLost?.Invoke();
                break;

            case ServiceOperation.ConnectionRestored:
                ConnectionRestored?.Invoke();
                break;

            case ServiceOperation.CredentialsInvalid:
                LoginOrPasswordInvalid?.Invoke();
                break;

            case ServiceOperation.CredentialsLoaded:
                CredentialsLoaded?.Invoke();
                break;

            case ServiceOperation.NeedClientSettings:
                NeedClientSettings?.Invoke();
                break;

            case ServiceOperation.NeedRefresh:
                NeedRefresh?.Invoke();
                break;

            case ServiceOperation.ScenariosChanged:
                ScenariosChanged?.Invoke(Utils.GetData <ScenarioInfo[]>(msg));
                break;

            case ServiceOperation.SecretCodeInvalid:
                SecretCodeInvalid?.Invoke();
                break;

            case ServiceOperation.ConnectionError:
                ConnectionError?.Invoke();
                break;
            }
        }
コード例 #2
0
 public void GetClientSettings(Action <ConnectionCredentials> callback)
 {
     if (_credentials == null)
     {
         NeedClientSettings?.Invoke();
         _getClientSettingsCallbackCrutch = callback;
     }
     else
     {
         callback(_credentials.Value);
     }
 }
コード例 #3
0
 public void RefreshIteration()
 {
     if (_iterationRefreshNow)
     {
         return;
     }
     _iterationRefreshNow = true;
     try
     {
         //recreate connection if error
         if (_credentials == null)
         {
             NeedClientSettings?.Invoke();
             _iterationRefreshNow = false;
         }
         else
         {
             if (!_succeed)
             {
                 RecreateConnection();
             }
             _refreshEndingToken = new CancellationTokenSource();
             _refreshEndingToken.Token.Register(() => {
                 _iterationRefreshNow = false;
             });
             SyncAddictionalData(success =>
             {
                 _succeed = success;
                 if (IsMultiples(_refreshIncrement, ScenariosManagerFullRefreshInterval) || Scenarios == null)
                 {
                     Refresh(success2 =>
                     {
                         _succeed = success2;
                         _refreshEndingToken.Cancel();
                     });
                 }
                 else
                 {
                     Update(success2 =>
                     {
                         _succeed = success2;
                         _refreshEndingToken.Cancel();
                     });
                 }
             });
         }
         _refreshIncrement++;
     }
     catch (Exception e)
     {
         Log.Error("Error in listen changes iteration", e);
     }
 }
コード例 #4
0
 public void Initialize(Action <bool> callback)
 {
     TryLoadClientSettings();
     if (_credentials != null)
     {
         InitializeInternal(callback);
     }
     else
     {
         callback?.Invoke(false);
         NeedClientSettings?.Invoke();
     }
 }