private void CheckForUpdateBindCompletedEventHandler(object sender, BindCompletedEventArgs e) { Exception error = (Exception)null; DeploymentManager deploymentManager = (DeploymentManager)null; bool updateAvailable = false; Version availableVersion = (Version)null; bool isUpdateRequired = false; Version minimumRequiredVersion = (Version)null; long updateSize = 0; new NamedPermissionSet("FullTrust").Assert(); try { deploymentManager = (DeploymentManager)sender; if (e.Error == null && !e.Cancelled) { UpdateCheckInfo updateCheckResult = this.DetermineUpdateCheckResult(deploymentManager.ActivationDescription); if (updateCheckResult.UpdateAvailable) { deploymentManager.DeterminePlatformRequirements(); try { deploymentManager.DetermineTrust(new TrustParams() { NoPrompt = true }); } catch (TrustNotGrantedException ex) { if (!deploymentManager.ActivationDescription.IsUpdateInPKTGroup) { throw; } } } this.ProcessUpdateCheckResult(updateCheckResult, deploymentManager.ActivationDescription); if (!updateCheckResult.UpdateAvailable) { return; } updateAvailable = true; availableVersion = updateCheckResult.AvailableVersion; isUpdateRequired = updateCheckResult.IsUpdateRequired; minimumRequiredVersion = updateCheckResult.MinimumRequiredVersion; updateSize = updateCheckResult.UpdateSizeBytes; } else { error = e.Error; } } catch (Exception ex) { if (ExceptionUtility.IsHardException(ex)) { throw; } else { error = ex; } } finally { CodeAccessPermission.RevertAssert(); Interlocked.Exchange(ref this._guard, 0); CheckForUpdateCompletedEventArgs e1 = new CheckForUpdateCompletedEventArgs(error, e.Cancelled, (object)null, updateAvailable, availableVersion, isUpdateRequired, minimumRequiredVersion, updateSize); CheckForUpdateCompletedEventHandler completedEventHandler = (CheckForUpdateCompletedEventHandler)this.Events[ApplicationDeployment.checkForUpdateCompletedKey]; if (completedEventHandler != null) { completedEventHandler((object)this, e1); } if (deploymentManager != null) { deploymentManager.ProgressChanged -= new DeploymentProgressChangedEventHandler(this.CheckForUpdateProgressChangedEventHandler); deploymentManager.BindCompleted -= new BindCompletedEventHandler(this.CheckForUpdateBindCompletedEventHandler); new NamedPermissionSet("FullTrust").Assert(); try { deploymentManager.Dispose(); } finally { CodeAccessPermission.RevertAssert(); } } } }
private void CheckForUpdateBindCompletedEventHandler(object sender, BindCompletedEventArgs e) { Exception error = null; DeploymentManager manager = null; bool updateAvailable = false; Version availableVersion = null; bool isUpdateRequired = false; Version minimumRequiredVersion = null; long updateSize = 0L; new NamedPermissionSet("FullTrust").Assert(); try { manager = (DeploymentManager)sender; if ((e.Error == null) && !e.Cancelled) { UpdateCheckInfo info = this.DetermineUpdateCheckResult(manager.ActivationDescription); if (info.UpdateAvailable) { manager.DeterminePlatformRequirements(); try { TrustParams trustParams = new TrustParams { NoPrompt = true }; manager.DetermineTrust(trustParams); } catch (TrustNotGrantedException) { if (!manager.ActivationDescription.IsUpdateInPKTGroup) { throw; } } } this.ProcessUpdateCheckResult(info, manager.ActivationDescription); if (info.UpdateAvailable) { updateAvailable = true; availableVersion = info.AvailableVersion; isUpdateRequired = info.IsUpdateRequired; minimumRequiredVersion = info.MinimumRequiredVersion; updateSize = info.UpdateSizeBytes; } } else { error = e.Error; } } catch (Exception exception2) { if (ExceptionUtility.IsHardException(exception2)) { throw; } error = exception2; } finally { CodeAccessPermission.RevertAssert(); Interlocked.Exchange(ref this._guard, 0); CheckForUpdateCompletedEventArgs args = new CheckForUpdateCompletedEventArgs(error, e.Cancelled, null, updateAvailable, availableVersion, isUpdateRequired, minimumRequiredVersion, updateSize); CheckForUpdateCompletedEventHandler handler = (CheckForUpdateCompletedEventHandler)this.Events[checkForUpdateCompletedKey]; if (handler != null) { handler(this, args); } if (manager != null) { manager.ProgressChanged -= new DeploymentProgressChangedEventHandler(this.CheckForUpdateProgressChangedEventHandler); manager.BindCompleted -= new BindCompletedEventHandler(this.CheckForUpdateBindCompletedEventHandler); new NamedPermissionSet("FullTrust").Assert(); try { manager.Dispose(); } finally { CodeAccessPermission.RevertAssert(); } } } }