Exemple #1
0
        public async Task <bool> TryHandleUpdateAvailableAsync(VersionCheckResults checkResult)
        {
            if (!String.IsNullOrWhiteSpace(checkResult.DownloadUrl) && !String.IsNullOrWhiteSpace(checkResult.Sha512sumDownloadUrl))
            {
                var zipPath = await this.updateDownloader.DownloadUpdateAsync(checkResult.DownloadUrl, checkResult.Sha512sumDownloadUrl, checkResult.NewVersion, updateDownloadFileName);

                if (zipPath == null)
                {
                    return(false);
                }

                this.extractedZipPath = await this.ExtractDownloadedZip(zipPath);

                this.CanAutoInstall = true;

                // If we return false, the upgrade will be aborted
                return(true);
            }
            else
            {
                // Can continue, but not auto-install
                this.CanAutoInstall = false;

                return(true);
            }
        }
        public VersionPromptResult ShowDialog(VersionCheckResults checkResults, bool canAutoInstall)
        {
            var vm = this.newVersionAlertViewModelFactory();
            vm.Changelog = checkResults.ReleaseNotes;
            vm.Version = checkResults.NewVersion;
            vm.CanInstall = canAutoInstall;
            var dialogResult = this.windowManager.ShowDialog(vm);

            if (dialogResult == true)
                return canAutoInstall ? VersionPromptResult.InstallNow : VersionPromptResult.Download;
            if (vm.DontRemindMe)
                return VersionPromptResult.Ignore;
            return VersionPromptResult.RemindLater;
        }
        public async Task<VersionPromptResult> ShowToast(VersionCheckResults checkResults, bool canAutoInstall, CancellationToken cancellationToken)
        {
            var vm = this.upgradeAvailableToastViewModelFactory();
            vm.Version = checkResults.NewVersion;
            vm.CanInstall = canAutoInstall;

            var dialogResult = await this.notifyIconManager.ShowBalloonAsync(vm, cancellationToken: cancellationToken);

            if (dialogResult == true)
                return canAutoInstall ? VersionPromptResult.InstallNow : VersionPromptResult.Download;
            if (vm.ShowMoreDetails)
                return VersionPromptResult.ShowMoreDetails;
            if (vm.DontRemindMe)
                return VersionPromptResult.Ignore;
            return VersionPromptResult.RemindLater;
        }
        public async Task<bool> TryHandleUpdateAvailableAsync(VersionCheckResults checkResult)
        {
            if (!String.IsNullOrWhiteSpace(checkResult.DownloadUrl) && !String.IsNullOrWhiteSpace(checkResult.Sha1sumDownloadUrl))
            {
                this.installerPath = await this.updateDownloader.DownloadUpdateAsync(checkResult.DownloadUrl, checkResult.Sha1sumDownloadUrl, checkResult.NewVersion);
                this.CanAutoInstall = true;

                // If we return false, the upgrade will be aborted
                return this.installerPath != null;
            }
            else
            {
                // Can continue, but not auto-install
                this.CanAutoInstall = false;

                return true;
            }
        }
        public VersionPromptResult ShowDialog(VersionCheckResults checkResults, bool canAutoInstall)
        {
            var vm = this.newVersionAlertViewModelFactory();

            vm.Changelog  = checkResults.ReleaseNotes;
            vm.Version    = checkResults.NewVersion;
            vm.CanInstall = canAutoInstall;
            var dialogResult = this.windowManager.ShowDialog(vm);

            if (dialogResult == true)
            {
                return(canAutoInstall ? VersionPromptResult.InstallNow : VersionPromptResult.Download);
            }
            if (vm.DontRemindMe)
            {
                return(VersionPromptResult.Ignore);
            }
            return(VersionPromptResult.RemindLater);
        }
Exemple #6
0
        public async Task <bool> TryHandleUpdateAvailableAsync(VersionCheckResults checkResult)
        {
            if (!String.IsNullOrWhiteSpace(checkResult.DownloadUrl) && !String.IsNullOrWhiteSpace(checkResult.Sha1sumDownloadUrl))
            {
                this.installerPath = await this.updateDownloader.DownloadUpdateAsync(checkResult.DownloadUrl, checkResult.Sha1sumDownloadUrl, checkResult.NewVersion);

                this.CanAutoInstall = true;

                // If we return false, the upgrade will be aborted
                return(this.installerPath != null);
            }
            else
            {
                // Can continue, but not auto-install
                this.CanAutoInstall = false;

                return(true);
            }
        }
Exemple #7
0
        public async Task <VersionCheckResults> FetchUpdateAsync()
        {
            // We don't care if we fail
            try
            {
                var update = await this.updateNotificationClient.FetchUpdateAsync(
                    this.applicationVersion.ToString(3),
                    processorArchitectureToStringMap[this.processorArchitecture],
                    this.variant);

                if (update == null)
                {
                    logger.Info("No updates found");
                    return(null);
                }

                if (update.Error != null)
                {
                    logger.Warn("Update API returned an error. Code: {0} Message: {1}", update.Error.Code, update.Error.Message);
                    return(null);
                }

                var updateData = update.Data;
                if (updateData == null)
                {
                    logger.Info("No updates available");
                    return(null);
                }

                var results = new VersionCheckResults(updateData.Version, updateData.DirectDownloadUrl, update.Data.Sha512sumDownloadUrl, updateData.ReleaseNotes, updateData.ReleasePageUrl);
                logger.Info("Found new version: {0}", results);
                return(results);
            }
            catch (Exception e)
            {
                logger.Warn(e, "Fetching updates failed with an error");
                return(null);
            }
        }
        public async Task <VersionPromptResult> ShowToast(VersionCheckResults checkResults, bool canAutoInstall, CancellationToken cancellationToken)
        {
            var vm = this.upgradeAvailableToastViewModelFactory();

            vm.Version    = checkResults.NewVersion;
            vm.CanInstall = canAutoInstall;

            var dialogResult = await this.notifyIconManager.ShowBalloonAsync(vm, cancellationToken : cancellationToken);

            if (dialogResult == true)
            {
                return(canAutoInstall ? VersionPromptResult.InstallNow : VersionPromptResult.Download);
            }
            if (vm.ShowMoreDetails)
            {
                return(VersionPromptResult.ShowMoreDetails);
            }
            if (vm.DontRemindMe)
            {
                return(VersionPromptResult.Ignore);
            }
            return(VersionPromptResult.RemindLater);
        }
        public async Task<bool> TryHandleUpdateAvailableAsync(VersionCheckResults checkResult)
        {
            if (!String.IsNullOrWhiteSpace(checkResult.DownloadUrl) && !String.IsNullOrWhiteSpace(checkResult.Sha1sumDownloadUrl))
            {
                var zipPath = await this.updateDownloader.DownloadUpdateAsync(checkResult.DownloadUrl, checkResult.Sha1sumDownloadUrl, checkResult.NewVersion, updateDownloadFileName);
                if (zipPath == null)
                    return false;

                this.extractedZipPath = await this.ExtractDownloadedZip(zipPath);

                this.CanAutoInstall = true;

                // If we return false, the upgrade will be aborted
                return true;
            }
            else
            {
                // Can continue, but not auto-install
                this.CanAutoInstall = false;

                return true;
            }
        }
 public Task<bool> TryHandleUpdateAvailableAsync(VersionCheckResults checkResult)
 {
     return Task.FromResult(true);
 }
Exemple #11
0
        public async Task<VersionCheckResults> FetchUpdateAsync()
        {
            // We don't care if we fail
            try
            {
                var update = await this.updateNotificationClient.FetchUpdateAsync(
                    this.applicationVersion.ToString(3),
                    processorArchitectureToStringMap[this.processorArchitecture],
                    this.variant);

                if (update == null)
                {
                    logger.Info("No updates found");
                    return null;
                }

                if (update.Error != null)
                {
                    logger.Warn("Update API returned an error. Code: {0} Message: {1}", update.Error.Code, update.Error.Message);
                    return null;
                }

                var updateData = update.Data;
                if (updateData == null)
                {
                    logger.Info("No updates available");
                    return null;
                }

                var results = new VersionCheckResults(updateData.Version, updateData.DirectDownloadUrl, update.Data.Sha1sumDownloadUrl, updateData.ReleaseNotes, updateData.ReleasePageUrl);
                logger.Info("Found new version: {0}", results);
                return results;
            }
            catch (Exception e)
            {
                logger.Warn(e, "Fetching updates failed with an error");
                return null;
            }
        }
 public Task <bool> TryHandleUpdateAvailableAsync(VersionCheckResults checkResult)
 {
     return(Task.FromResult(true));
 }