@ -566,56 +566,33 @@ namespace MediaBrowser.Common.Implementations
/// <param name="cancellationToken">The cancellation token.</param>
/// <param name="progress">The progress.</param>
/// <returns>Task{CheckForUpdateResult}.</returns>
public async Task < CheckForUpdateResult > CheckForApplicationUpdate ( CancellationToken cancellationToken ,
IProgress < double > progress )
{
var result = await CheckForApplicationUpdateInternal ( cancellationToken , progress ) . ConfigureAwait ( false ) ;
return result ;
}
public abstract Task < CheckForUpdateResult > CheckForApplicationUpdate ( CancellationToken cancellationToken ,
IProgress < double > progress ) ;
/// <summary>
/// Checks for application update internal .
/// Updates the application.
/// </summary>
/// <param name="package">The package that contains the update</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <param name="progress">The progress.</param>
/// <returns>Task{CheckForUpdateResult}.</returns>
private async Task < CheckForUpdateResult > CheckForApplicationUpdateInternal ( CancellationToken cancellationToken ,
IProgress < double > progress )
{
var availablePackages = await InstallationManager . GetAvailablePackagesWithoutRegistrationInfo ( cancellationToken ) . ConfigureAwait ( false ) ;
var version = InstallationManager . GetLatestCompatibleVersion ( availablePackages , ApplicationUpdatePackageName , ConfigurationManager . CommonConfiguration . SystemUpdateLevel ) ;
return version ! = null ? new CheckForUpdateResult { AvailableVersion = version . version , IsUpdateAvailable = version . version > ApplicationVersion , Package = version } :
new CheckForUpdateResult { AvailableVersion = ApplicationVersion , IsUpdateAvailable = false } ;
}
/// <returns>Task.</returns>
public abstract Task UpdateApplication ( PackageVersionInfo package , CancellationToken cancellationToken ,
IProgress < double > progress ) ;
/// <summary>
/// Gets the name of the application update package .
/// Shuts down.
/// </summary>
/// <value>The name of the application update package.</value>
protected abstract string ApplicationUpdatePackageName { get ; }
public abstract void Shutdown ( ) ;
/// <summary>
/// Updates the application .
/// Called when [application updated].
/// </summary>
/// <param name="package">The package that contains the update</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <param name="progress">The progress.</param>
/// <returns>Task.</returns>
public async Task UpdateApplication ( PackageVersionInfo package , CancellationToken cancellationToken , IProgress < double > progress )
/// <param name="newVersion">The new version.</param>
protected void OnApplicationUpdated ( Version newVersion )
{
await InstallationManager . InstallPackage ( package , progress , cancellationToken ) . ConfigureAwait ( false ) ;
EventHelper . QueueEventIfNotNull ( ApplicationUpdated , this , new GenericEventArgs < Version > { Argument = package . version } , Logger ) ;
EventHelper . QueueEventIfNotNull ( ApplicationUpdated , this , new GenericEventArgs < Version > { Argument = newVersion } , Logger ) ;
NotifyPendingRestart ( ) ;
}
/// <summary>
/// Shuts down.
/// </summary>
public abstract void Shutdown ( ) ;
}
}