/// <summary>
/// The function that must be called when your app has loaded.
/// </summary>
public void AppLoaded()
{
if (AutoUpdaterInfo == null)
{
throw new FailedToInitializeException();
}
// if we want to kill ourself, then don't bother checking for updates
if (ClosingForInstall)
{
return;
}
// get the current update step from the info file
m_UpdateStepOn = AutoUpdaterInfo.UpdateStepOn;
if (UpdateStepOn != UpdateStepOn.Nothing)
{
version = AutoUpdaterInfo.UpdateVersion;
changes = AutoUpdaterInfo.ChangesInLatestVersion;
changesAreRTF = AutoUpdaterInfo.ChangesIsRTF;
switch (UpdateStepOn)
{
case UpdateStepOn.UpdateAvailable:
if (internalUpdateType == UpdateType.CheckAndDownload || internalUpdateType == UpdateType.Automatic)
{
DownloadUpdate(); // begin downloading the update
}
else
{
UpdateReady();
}
break;
case UpdateStepOn.UpdateReadyToInstall:
UpdateReadyToInstall();
break;
case UpdateStepOn.UpdateDownloaded:
if (internalUpdateType == UpdateType.Automatic)
{
ExtractUpdate(); // begin extraction
}
else
{
UpdateReadyToExtract();
}
break;
}
}
else // UpdateStepOn == UpdateStepOn.Nothing
{
switch (AutoUpdaterInfo.AutoUpdaterStatus)
{
case AutoUpdaterStatus.UpdateSucceeded:
// set the version & changes
version = AutoUpdaterInfo.UpdateVersion;
changes = AutoUpdaterInfo.ChangesInLatestVersion;
changesAreRTF = AutoUpdaterInfo.ChangesIsRTF;
if (UpdateSuccessful != null)
{
UpdateSuccessful(this, new SuccessArgs {
Version = version
});
}
break;
case AutoUpdaterStatus.UpdateFailed:
if (UpdateFailed != null)
{
UpdateFailed(this, new FailArgs {
ErrorTitle = AutoUpdaterInfo.ErrorTitle, ErrorMessage = AutoUpdaterInfo.ErrorMessage
});
}
break;
}
// clear the changes and resave
AutoUpdaterInfo.ClearSuccessError();
AutoUpdaterInfo.Save();
}
}