Esempio n. 1
0
        // ##########################################################
        // ################# Internal functions #####################
        // ##########################################################

        /// <summary>
        /// Thread safe function for the thread DkimSignerAvailable
        /// </summary>
        private async void CheckDkimSignerAvailable()
        {
            cbxPrereleases.Enabled = false;

            await Task.Run(() => versionAvailable = ApiWrapper.GetAllRelease(cbxPrereleases.Checked, new Version("2.0.0")));

            cbxPrereleases.Enabled = true;

            cbVersionWeb.Items.Clear();
            if (versionAvailable != null)
            {
                if (versionAvailable.Count > 0)
                {
                    foreach (Release oVersionAvailable in versionAvailable)
                    {
                        cbVersionWeb.Items.Add(oVersionAvailable.TagName);
                    }

                    cbVersionWeb.Enabled = true;
                }
                else
                {
                    MessageBox.Show(this, "No release information from the Web available.", "Version", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    cbVersionWeb.Enabled = false;
                }
            }
            else
            {
                MessageBox.Show(this, "Could not obtain release information from the Web. Check your Internet connection or retry later.", "Error fetching version", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cbVersionWeb.Enabled = false;
            }

            cbxPrereleases.Enabled = true;
        }
        /// <summary>
        /// Thread safe function for the thread DkimSignerAvailable
        /// </summary>
        private async void CheckDkimSignerAvailable()
        {
            cbxPrereleases.Enabled = false;

            List <Release> aoRelease = null;
            StringBuilder  changelog = new StringBuilder("Couldn't get current version.\r\nCheck your Internet connection or restart the application.");

            // Check the lastest Release
            Exception ex = null;
            await Task.Run(() => { try { aoRelease = ApiWrapper.GetAllRelease(cbxPrereleases.Checked); } catch (Exception e) { ex = e; } });

            if (ex != null)
            {
                changelog.Append("\r\nError: " + ex.Message);
            }

            dkimSignerAvailable = null;

            if (aoRelease != null)
            {
                changelog.Clear();

                dkimSignerAvailable = aoRelease[0];
                changelog.AppendLine(aoRelease[0].TagName + " (" + aoRelease[0].CreatedAt.Substring(0, 10) + ")\r\n\t" + aoRelease[0].Body.Replace("\r\n", "\r\n\t") + "\r\n");

                for (int i = 1; i < aoRelease.Count; i++)
                {
                    if (dkimSignerAvailable.Version < aoRelease[i].Version)
                    {
                        dkimSignerAvailable = aoRelease[i];
                    }

                    // TAG (DATE)\r\nIndented Text
                    changelog.AppendLine(aoRelease[i].TagName + " (" + aoRelease[i].CreatedAt.Substring(0, 10) + ")\r\n\t" + aoRelease[i].Body.Replace("\r\n", "\r\n\t") + "\r\n");
                }
            }

            txtDkimSignerAvailable.Text = dkimSignerAvailable != null?dkimSignerAvailable.Version.ToString() : "Unknown";

            txtChangelog.Text = changelog.ToString();
            SetUpgradeButton();

            cbxPrereleases.Enabled = true;
        }