Пример #1
0
        private void ShowPreferencesDialog()
        {
            using IDisposable scope = s_logger.CreateScope("Show preferences dialog");
            Preferences p = new Preferences(s_settings.Clone(), s_issueManager, SettingsFile, CacheFolder, s_logger);

            if (p.ShowDialog() == DialogResult.OK)
            {
                s_settings = p.NewSettings;

                // the issue manager was not successfully created, that is why we showed the preferences.
                if (s_issueManager == null)
                {
                    // this will ensure the GH token is valid
                    s_issueManager = IssueManager.Create(s_settings, CacheFolder, s_logger);
                }
                else
                {
                    // refresh the ZenHub token
                    s_issueManager.RefreshZenHubToken(s_settings.ZenHubToken);

                    // refresh the GitHub token
                    s_issueManager.RefreshGitHubToken(s_settings.GitHubToken);
                }

                // save the settings to disk
                s_settings.Serialize(SettingsFile, s_logger);

                // refresh the page
                LoadFormFromSettings();
            }
        }
Пример #2
0
        public static IssueManager Create(Settings settings, string cacheFolder)
        {
            IssueManager manager = new IssueManager(cacheFolder);

            if (!manager.RefreshGitHubToken(settings.GitHubToken))
            {
                return(null);
            }

            manager.RefreshZenHubToken(settings.ZenHubToken);

            return(manager);
        }
Пример #3
0
        public static IssueManager Create(Settings settings, string cacheFolder, FileLogger fileLogger)
        {
            using IDisposable scope = fileLogger.CreateScope($"Creating issue manager with cache folder: {cacheFolder}");
            IssueManager manager = new IssueManager(cacheFolder, fileLogger);

            if (!manager.RefreshGitHubToken(settings.GitHubToken))
            {
                return(null);
            }

            manager.RefreshZenHubToken(settings.ZenHubToken);

            return(manager);
        }
Пример #4
0
#pragma warning disable 1998 //We want a fire and forget async method here.
        private async void FrmMain_Load(object sender, EventArgs e)
        {
#pragma warning restore 1998

            using IDisposable scope = s_logger.CreateScope("Loading main form");

            s_settings = Settings.Deserialize(SettingsFile, s_logger);

            s_issueManager = IssueManager.Create(s_settings, CacheFolder, s_logger);

            // if we don't have a github token, prompt settings.
            if (s_issueManager == null)
            {
                s_logger.Log("Opening preferences dialog");
                ShowPreferencesDialog();

                s_issueManager = IssueManager.Create(s_settings, CacheFolder, s_logger);

                if (s_issueManager == null)
                {
                    MessageBox.Show("The application requires a GitHub token in order to work.", "Cannot continue", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Environment.Exit(-1);
                }
            }
            else
            {
                s_logger.Log("Loading form settings");
                LoadFormFromSettings();
            }

            // load the version
            if (ApplicationDeployment.IsNetworkDeployed)
            {
                tssVersion.Text = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
            }
            else
            {
                tssVersion.Text = "dev";
            }
        }
Пример #5
0
 internal RepoSelector(IssueManager issueMgr) : this()
 {
     _issueManager = issueMgr;
 }