Exemplo n.º 1
0
    /// <summary>
    /// Silently checks if an update for Zero Install is available.
    /// </summary>
    /// <returns>The version number of the newest available update; <c>null</c> if no update is available.</returns>
    public static ImplementationVersion?SilentUpdateCheck()
    {
        if (!IsDeployed || !NetUtils.IsInternetConnected)
        {
            return(null);
        }

        using var handler = new SilentTaskHandler();
        var services = new ServiceProvider(handler)
        {
            FeedManager = { Refresh = true }
        };

        if (services.Config is { NetworkUse : NetworkLevel.Offline } or {
            SelfUpdateUri : null
        })
Exemplo n.º 2
0
    /// <summary>
    /// Silently checks if an update for Zero Install is available.
    /// </summary>
    /// <returns>The version number of the newest available update; <c>null</c> if no update is available.</returns>
    public static ImplementationVersion?SilentUpdateCheck()
    {
        if (!IsDeployed || !NetUtils.IsInternetConnected)
        {
            return(null);
        }

        using var handler = new SilentTaskHandler();
        var services = new ServiceProvider(handler)
        {
            FeedManager = { Refresh = true }
        };

        if (services.Config.NetworkUse == NetworkLevel.Offline || services.Config.SelfUpdateUri == null)
        {
            return(null);
        }

        try
        {
            var selections = services.Solver.Solve(services.Config.SelfUpdateUri);
            var newVersion = selections.MainImplementation.Version;
            return((newVersion > Version) ? newVersion : null);
        }
        #region Error handling
        catch (OperationCanceledException)
        {
            return(null);
        }
        catch (WebException ex)
        {
            Log.Debug(ex);
            return(null);
        }
        catch (Exception ex) when(ex is UriFormatException or IOException or UnauthorizedAccessException or SignatureException or SolverException or InvalidDataException)
        {
            Log.Warn("Problem with silent self-update check");
            Log.Warn(ex);
            return(null);
        }
        #endregion
    }
}
Exemplo n.º 3
0
 protected virtual void Execute()
 {
     using (var handler = new SilentTaskHandler())
         handler.RunTask(Target);
 }
        /// <summary>
        /// Silently checks if an update for Zero Install is available.
        /// </summary>
        /// <returns>The version number of the newest available update; <c>null</c> if no update is available.</returns>
        public static ImplementationVersion?SilentUpdateCheck()
        {
            if (IsRunningFromCache || !NetUtils.IsInternetConnected)
            {
                return(null);
            }

            using var handler = new SilentTaskHandler();
            var services = new ServiceLocator(handler)
            {
                FeedManager = { Refresh = true }
            };

            if (services.Config.NetworkUse == NetworkLevel.Offline || services.Config.SelfUpdateUri == null)
            {
                return(null);
            }

            var requirements = new Requirements(services.Config.SelfUpdateUri);

            try
            {
                var selections = services.Solver.Solve(requirements);
                var newVersion = selections.MainImplementation.Version;
                return((newVersion > ImplementationVersion.ZeroInstall) ? newVersion : null);
            }
            #region Error handling
            catch (OperationCanceledException)
            {
                return(null);
            }
            catch (WebException ex)
            {
                Log.Debug(ex);
                return(null);
            }
            catch (IOException ex)
            {
                Log.Warn("Problem with silent self-update check");
                Log.Warn(ex);
                return(null);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Warn("Problem with silent self-update check");
                Log.Warn(ex);
                return(null);
            }
            catch (SignatureException ex)
            {
                Log.Warn("Problem with silent self-update check");
                Log.Warn(ex);
                return(null);
            }
            catch (UriFormatException ex)
            {
                Log.Warn("Problem with silent self-update check");
                Log.Warn(ex);
                return(null);
            }
            catch (SolverException ex)
            {
                Log.Warn("Problem with silent self-update check");
                Log.Warn(ex);
                return(null);
            }
            catch (InvalidDataException ex)
            {
                Log.Warn("Problem with silent self-update check");
                Log.Warn(ex);
                return(null);
            }
            #endregion
        }