KeeAgent.KeeAgentExt.PwEntryForm_EntrySaving C# (CSharp) Method

PwEntryForm_EntrySaving() private method

private PwEntryForm_EntrySaving ( object aSender, KeePass.Util.CancellableOperationEventArgs aEventArgs ) : void
aSender object
aEventArgs KeePass.Util.CancellableOperationEventArgs
return void
        private void PwEntryForm_EntrySaving(object aSender,
            CancellableOperationEventArgs aEventArgs)
        {
            /* Get reference to new settings */

              var entryForm = aSender as PwEntryForm;
              if (entryForm != null && (entryForm.DialogResult == DialogResult.OK ||
            saveBeforeCloseQuestionMessageShown)) {
            var foundControls = entryForm.Controls.Find("EntryPanel", true);
            if (foundControls.Length != 1) {
              return;
            }
            var entryPanel = foundControls[0] as EntryPanel;
            if (entryPanel == null) {
              return;
            }
            var settings = entryPanel.CurrentSettings;
            if (settings == null) {
              return;
            }

            /* validate KeeAgent Entry Settings */

            if (settings.AllowUseOfSshKey) {
              string errorMessage = null;
              switch (settings.Location.SelectedType) {
            case EntrySettings.LocationType.Attachment:
              if (string.IsNullOrWhiteSpace(settings.Location.AttachmentName)) {
                errorMessage = "Must specify attachment";
              } else if (entryForm.EntryBinaries
                         .Get(settings.Location.AttachmentName) == null) {
                errorMessage = "Attachment does not exist";
              }
              break;
            case EntrySettings.LocationType.File:
              if (string.IsNullOrWhiteSpace(settings.Location.FileName)) {
                errorMessage = "Must specify file name";
              } else if (!File.Exists(settings.Location.FileName.ExpandEnvironmentVariables())) {
                errorMessage = "File does not exist";
              }
              break;
            default:
              errorMessage = "Must select attachment or file";
              break;
              }

              /* if there was a problem with a KeeAgent settings, activate the
               * KeeAgent tab, show error message and cancel the save */

              if (errorMessage != null) {
            // Activate KeeAgent tab
            var keeAgentTab = entryPanel.Parent as TabPage;
            if (keeAgentTab != null) {
              foundControls = entryForm.Controls.Find("m_tabMain", true);
              if (foundControls.Length == 1) {
                var tabControl = foundControls[0] as TabControl;
                if (tabControl != null) {
                  tabControl.SelectTab(keeAgentTab);
                }
              }
            }
            MessageService.ShowWarning(errorMessage);
            aEventArgs.Cancel = true;
              }
            }
              }
              saveBeforeCloseQuestionMessageShown = false;
        }