@ -149,7 +149,7 @@ namespace MediaBrowser.Common.Implementations
/// </summary>
/// <value>The installation manager.</value>
protected IInstallationManager InstallationManager { get ; set ; }
/// <summary>
/// Initializes a new instance of the <see cref="BaseApplicationHost{TApplicationPathsType}"/> class.
/// </summary>
@ -186,7 +186,7 @@ namespace MediaBrowser.Common.Implementations
protected virtual void OnLoggerLoaded ( )
{
}
/// <summary>
@ -471,7 +471,7 @@ namespace MediaBrowser.Common.Implementations
{
ConfigureAutoRunAtStartup ( ) ;
}
/// <summary>
/// Configures the auto run at startup.
/// </summary>
@ -480,7 +480,7 @@ namespace MediaBrowser.Common.Implementations
if ( ConfigurationManager . CommonConfiguration . RunAtStartup )
{
//Copy our shortut into the startup folder for this user
File . Copy ( ProductShortcutPath , Path . Combine ( Environment . GetFolderPath ( Environment . SpecialFolder . Startup ) , Path . GetFileName ( ProductShortcutPath ) ? ? "MBstartup.lnk" ) , true ) ;
File . Copy ( ProductShortcutPath , Path . Combine ( Environment . GetFolderPath ( Environment . SpecialFolder . Startup ) , Path . GetFileName ( ProductShortcutPath ) ? ? "MBstartup.lnk" ) , true ) ;
}
else
{
@ -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 ( ) ;
}
}