示例#1
0
    void LoadDatabaseSettings (string filePath, string fileName)
    {
      DatabaseConnection = DatabaseConnection ?? new TDatabaseConnection (filePath, fileName);

      // database
      if (DatabaseConnection.Request ()) {
        // notify factory database
        // SQL
        var message = new TShellMessage (TMessageAction.Response, TypeInfo);
        message.Support.Argument.Types.ConnectionData.CopyFrom (DatabaseConnection.Request (TAuthentication.SQL));

        DelegateCommand.PublishModuleMessage.Execute (message);

        // Windows
        message = new TShellMessage (TMessageAction.Response, TypeInfo);
        message.Support.Argument.Types.ConnectionData.CopyFrom (DatabaseConnection.Request (TAuthentication.Windows));

        DelegateCommand.PublishModuleMessage.Execute (message);

        // settings validating
        TDispatcher.Invoke (RequestServiceValidationDispatcher);
      }

      else {
        var errorMessage = new TErrorMessage (Properties.Resource.RES_ERROR, Properties.Resource.RES_LOAD_DATABASE, (string) DatabaseConnection.Result.ErrorContent)
        {
          Severity = TSeverity.Hight
        };

        TDispatcher.BeginInvoke (ShowErrorBoxDispatcher, errorMessage);
      }
    }
示例#2
0
    void SelectSettingsDispatcher (TEntityAction action)
    {
      m_DatabaseValidatingInProgress = false;

      if (action.Result.IsValid) {
        Model.Unlock ();
        Model.MenuLeftEnable ();

        Model.Select (action);

        // to module
        var entityAction = TEntityAction.CreateDefault;
        entityAction.Param1 = Model.ComponentModelItem;

        var message = new TShellMessage (TMessageAction.DatabaseValidated, TypeInfo);
        message.Support.Argument.Types.Select (entityAction);

        DelegateCommand.PublishModuleMessage.Execute (message);

        // update INI support section
        //SupportSettings.Change ("ColumnWidth", action.ModelAction.SettingsModel.ColumnWidth.ToString ()); 

        OnSettingsReportCommadClicked (); // show current settings
      }

      else {
        Model.MenuLeftDisable ();
      }

      ApplyChanges ();
    }
示例#3
0
    void DatabaseValidateDispatcher ()
    {
      if (m_DatabaseValidatingInProgress.IsFalse ()) {
        Model.ClearPanels ();
        Model.DatabaseStatus (true);
        Model.Unlock ();

        // open and validate current database (for sure)
        if (DatabaseConnection.IsAuthentication) {
          // to services (Select - Settings)
          var action = TEntityAction.Create (TCategory.Settings, TOperation.Select, TExtension.Settings);

          var message = new TShellMessage (TMessageAction.Request, TypeInfo);
          message.Support.Argument.Types.Select (action);

          DelegateCommand.PublishModuleMessage.Execute (message);

          m_DatabaseValidatingInProgress = true;

          Model.Lock ();
          Model.MenuLeftDisable ();
        }
      }

      ApplyChanges ();
    }
示例#4
0
    void SaveSettingsDispatcher (TDatabaseAuthentication databaseAuthentication)
    {
      var filePath = System.Environment.CurrentDirectory;
      var fileName = TNames.SettingsIniFileName;

      DatabaseConnection = DatabaseConnection ?? new TDatabaseConnection (filePath, fileName);

      if (DatabaseConnection.Save (databaseAuthentication)) {
        DatabaseConnection.Request (); // update

        // notify edit
        var message = new TShellMessage (TMessageAction.Response, TypeInfo);
        message.Support.Argument.Types.ConnectionData.CopyFrom (databaseAuthentication);

        DelegateCommand.PublishModuleMessage.Execute (message);

        // settings validating
        TDispatcher.Invoke (RequestServiceValidationDispatcher);
      }

      else {
        TDispatcher.Invoke (CloseSnackbarDispatcher);

        var errorMessage = new TErrorMessage (Properties.Resource.RES_ERROR, Properties.Resource.RES_SAVE, (string) DatabaseConnection.Result.ErrorContent)
        {
          Severity = TSeverity.Hight
        };

        TDispatcher.BeginInvoke (ShowErrorBoxDispatcher, errorMessage);
      }
    }
示例#5
0
    void RequestServiceValidationDispatcher ()
    {
      // settings validating
      var message = new TShellMessage (TMessageAction.SettingsValidating, TypeInfo);
      message.Support.Argument.Types.ConnectionData.CopyFrom (DatabaseConnection.CurrentDatabase);

      DelegateCommand.PublishModuleMessage.Execute (message);
    }
示例#6
0
    void DatabaseSettingsSuccessDispatcher ()
    {
      Model.ClearPanels ();
      Model.DatabaseStatus (true);
      Model.Unlock ();

      ApplyChanges ();

      OnCollectionCommadClicked ();

      // notify modules
      var message = new TShellMessage (TMessageAction.DatabaseValidated, TypeInfo);
      DelegateCommand.PublishModuleMessage.Execute (message);
    }
示例#7
0
 void RequestServiceValidationDispatcher ()
 {
   // settings validating
   var message = new TShellMessage (TMessageAction.SettingsValidating, TypeInfo);
   DelegateCommand.PublishModuleMessage.Execute (message);
 }
示例#8
0
 public override void RefreshProcess ()
 {
   // notify modules
   var message = new TShellMessage (TMessageAction.RefreshProcess, TypeInfo);
   DelegateCommand.PublishModuleMessage.Execute (message);
 }
示例#9
0
    public override void ProcessMessage (TMessageModule message)
    {
      if (message.NotNull ()) {
        // services
        if (message.IsModule (TResource.TModule.Services)) {
          SelectAuthentication (message.Support.Argument.Types.Authentication);

          // SettingsValidated
          if (message.IsAction (TMessageAction.SettingsValidated)) {
            // Success
            if (message.Support.IsActionStatus (TActionStatus.Success)) {
              TDispatcher.Invoke (DatabaseSettingsSuccessDispatcher);
            }

            // Error
            if (message.Support.IsActionStatus (TActionStatus.Error)) {
              TDispatcher.Invoke (DatabaseSettingsErrorDispatcher);
            }
          }

          // Response
          if (message.IsAction (TMessageAction.Response)) {
            // (Select - Settings)
            if (message.Support.Argument.Types.IsOperation (TOperation.Select, TExtension.Settings)) {
              var action = TEntityAction.Request (message.Support.Argument.Types.EntityAction);

              TDispatcher.BeginInvoke (SelectSettingsDispatcher, action);
            }

            // (Change - Settings)
            if (message.Support.Argument.Types.IsOperation (TOperation.Change, TExtension.Settings)) {
              var action = TEntityAction.Request (message.Support.Argument.Types.EntityAction);

              TDispatcher.BeginInvoke (SelectSettingsDispatcher, action);
            }
          }
        }

        // factory
        if (message.IsModule (TResource.TModule.Factory)) {
          // Changed
          if (message.IsAction (TMessageAction.Changed)) {
            Model.Lock ();
            Model.ShowPanels ();
            Model.SnackbarContent.SetMessage (Properties.Resource.RES_VALIDATING);
            ApplyChanges ();

            TDispatcher.Invoke (OpenSnackbarDispatcher);
            TDispatcher.BeginInvoke (SaveSettingsDispatcher, message.Support.Argument.Types.ConnectionData);
          }

          // Authentication
          if (message.IsAction (TMessageAction.Authentication)) {
            Model.Lock ();
            Model.ShowPanels ();
            Model.SnackbarContent.SetMessage (Properties.Resource.RES_VALIDATING);
            ApplyChanges ();

            TDispatcher.Invoke (OpenSnackbarDispatcher);
            TDispatcher.BeginInvoke (ChangeAuthenticationDispatcher, message.Support.Argument.Types.Authentication);
          }

          // Request
          if (message.IsAction (TMessageAction.Request)) {
            Model.Lock ();
            Model.ShowPanels ();
            Model.SnackbarContent.SetMessage (Properties.Resource.RES_VALIDATING);
            ApplyChanges ();

            TDispatcher.Invoke (OpenSnackbarDispatcher);

            var action = TEntityAction.Request (message.Support.Argument.Types.EntityAction);

            var msg = new TShellMessage (TMessageAction.Request, TypeInfo);
            msg.Support.Argument.Types.Select (action);

            DelegateCommand.PublishModuleMessage.Execute (msg);
          }
        }
      }
    }