コード例 #1
0
        /// <summary>
        /// Checks for update to addon loader and downloads if a new release is available
        /// </summary>
        /// <returns></returns>
        public async Task HandleLoaderUpdate()
        {
            dynamic releaseInfo = new UpdateHelper(new WebClientWrapper()).GitReleaseInfo(loader_git_url);

            loader_destination = Path.Combine(loader_game_path, "d3d9.dll");

            latestLoaderVersion = releaseInfo.tag_name;

            if (File.Exists(loader_destination) && _configurationManager.UserConfig.LoaderVersion == latestLoaderVersion)
            {
                return;
            }

            string downloadLink = releaseInfo.assets[0].browser_download_url;

            await Download(downloadLink);
        }
コード例 #2
0
        /// <summary>
        /// Downloads the latest application release.
        /// </summary>
        /// <returns></returns>
        public async Task downloadLatestRelease()
        {
            //perhaps change this to check if downloaded update is latest or not
            if (Directory.Exists(update_folder))
            {
                Directory.Delete(update_folder, true);
            }

            //check application version
            dynamic latestInfo  = new UpdateHelper(new WebClientWrapper()).GitReleaseInfo(applicationRepoUrl);
            string  downloadUrl = latestInfo.assets[0].browser_download_url;

            viewModel.UpdateAvailable = $"{StaticText.Downloading} {latestInfo.tag_name}";

            Directory.CreateDirectory(update_folder);
            WebClient client = new WebClient();

            client.Headers.Add("User-Agent", "request");
            client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(selfUpdate_DownloadProgress);
            client.DownloadFileCompleted   += new AsyncCompletedEventHandler(selfUpdate_DownloadCompleted);
            await client.DownloadFileTaskAsync(new System.Uri(downloadUrl), Path.Combine(update_folder, update_name));
        }
コード例 #3
0
        /***** UPDATE CHECK *****/

        /// <summary>
        /// Checks whether an update is required and performs it for an add-on hosted on Github.
        /// </summary>
        private async Task GitCheckUpdate()
        {
            var client = new WebClient();

            client.Headers.Add("User-Agent", "request");

            dynamic release_info = new UpdateHelper(new WebClientWrapper()).GitReleaseInfo(addon_info.host_url);

            latestVersion = release_info.tag_name;

            var currentAddonVersion = _configurationManager.UserConfig.AddonsList.FirstOrDefault(a => a.Name == addon_name);

            if (currentAddonVersion != null && currentAddonVersion.Version == latestVersion)
            {
                return;
            }

            string download_link = release_info.assets[0].browser_download_url;

            viewModel.ProgBarLabel = "Downloading " + addon_info.addon_name + " " + latestVersion;
            await Download(download_link, client);
        }