Exemple #1
0
        public static string GetFileUrl(bool addExtension = false)
        {
            var lastestBuild      = ConfigRepository.Instance().GetBoolean("general_usebeta");
            var lastestReleaseUrl = ConfigRepository.Instance()["general_urllastestrelease"];
            var lastestBuildUrl   = ConfigRepository.Instance()["general_urllastestbuild"];

            var fileUrl = lastestBuild ? lastestBuildUrl : lastestReleaseUrl;

            if (!addExtension)
            {
                return(fileUrl);
            }
            if (Environment.OSVersion.Platform == PlatformID.MacOSX)
            {
                return(fileUrl + ".tar.gz");
            }
            return(fileUrl + ".zip");
        }
        public static string GetFileUrl(bool addExtension = false)
        {
            var useBeta           = ConfigRepository.Instance().GetBoolean("general_usebeta");
            var lastestReleaseUrl = ConfigRepository.Instance()["general_urllastestrelease"];
            var lastestBetaUrl    = ConfigRepository.Instance()["general_urllastestbeta"];

            var fileUrl = useBeta ? lastestBetaUrl : lastestReleaseUrl;

            if (!addExtension)
            {
                return(fileUrl);
            }

            // downloader is currently disable Mac Mono/Wine
            if (Environment.OSVersion.Platform == PlatformID.MacOSX)
            {
                return(fileUrl + ".tar.gz");
            }

            return(fileUrl + ".zip");
        }
        /// <summary>
        /// based on current installed revision get the latest online revision
        /// <para>server will determine if local revision should be updated</para>
        /// </summary>
        /// <returns></returns>
        public static ToolkitVersionOnline Load(string versionInfoUrl = "")
        {
            // No TLS 1.2 in WinXp, or before IE8 browser if OS is newer than WinXP
            // Automatic updates do not work in WinXP (Win10 TLS 1.2 must be manually activated)

            var versionInfoJson      = String.Empty;
            var toolkitVersionOnline = new ToolkitVersionOnline();

            if (String.IsNullOrEmpty(versionInfoUrl))
            {
                versionInfoUrl = String.Format("{0}/{1}", GetFileUrl(), ToolkitVersion.AssemblyInformationVersion);
            }

            try
            {
                // normal operation
                if (!GeneralExtensions.IsInDesignMode)
                {
                    versionInfoJson      = new WebClient().DownloadString(versionInfoUrl);
                    toolkitVersionOnline = JsonConvert.DeserializeObject <ToolkitVersionOnline>(versionInfoJson);

                    //  recommend update to latest revision under special conditions
                    var useBeta = ConfigRepository.Instance().GetBoolean("general_usebeta");

                    if ((!useBeta && ToolkitVersion.AssemblyConfiguration == "BETA") ||
                        (useBeta && ToolkitVersion.AssemblyConfiguration != "BETA"))
                    {
                        versionInfoJson      = new WebClient().DownloadString(GetFileUrl());
                        toolkitVersionOnline = JsonConvert.DeserializeObject <ToolkitVersionOnline>(versionInfoJson);
                        toolkitVersionOnline.CommitMessages    = new string[2];
                        toolkitVersionOnline.CommitMessages[0] = "<WARNING>: Special conditions were detected ...";
                        toolkitVersionOnline.CommitMessages[1] = "Recommend installing the latest online version.";
                        toolkitVersionOnline.UpdateAvailable   = true;
                    }
                    else
                    {
                        var installedRevision = ToolkitVersion.AssemblyInformationVersion;
                        // update available
                        if (!installedRevision.Contains(toolkitVersionOnline.Revision))
                        {
                            toolkitVersionOnline.UpdateAvailable = true;
                        }
                        else
                        {
                            toolkitVersionOnline.UpdateAvailable = false;
                        }
                    }
                }
                else // dumby JSON data for debugging
                {
                    versionInfoJson      = "{\"version\":\"2.7.1.0\",\"date\":1470934174,\"update\":true,\"commits\":[\"2016-08-11:AppVeyour build failed so recommitting\",\"2016-08-11: Commit for Beta Version 2.7.1.0\"],\"revision\":\"7f8f5233\"}";
                    toolkitVersionOnline = JsonConvert.DeserializeObject <ToolkitVersionOnline>(versionInfoJson);

                    var installedRevision = ToolkitVersion.AssemblyInformationVersion;
                    if (!installedRevision.Contains(toolkitVersionOnline.Revision))
                    {
                        toolkitVersionOnline.UpdateAvailable = true;
                    }
                    // alt debugging option
                    // toolkitVersionOnline.UpdateAvailable = false;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("VersionInfoUrl Load Error: " + ex.Message);
            }

            return(toolkitVersionOnline);
        }