private bool PrepareProject(ProjectDeploymentData projectDeploymentData, DeploymentContext deploymentContext) { DeploymentInfo deploymentInfo = projectDeploymentData.DeploymentInfo; DeploymentTask deploymentTask = projectDeploymentData.DeploymentTask; PostDiagnosticMessage(string.Format("Preparing {0} '{1}'.", (deploymentInfo.IsSimulation ? " (simulation)" : ""), deploymentTask.GetType().Name), DiagnosticMessageType.Info); deploymentTask.DiagnosticMessagePosted += OnDeploymentTaskDiagnosticMessagePosted; OnDeploymentTaskStarting(deploymentInfo, deploymentTask, deploymentContext); try { deploymentTask.Initialize(deploymentInfo); deploymentTask.Prepare(); return true; } catch (Exception exc) { PostDiagnosticMessage(string.Format("Exception while preparing: {0}", exc.Message), DiagnosticMessageType.Error); } finally { deploymentTask.DiagnosticMessagePosted -= OnDeploymentTaskDiagnosticMessagePosted; } return false; }
private bool ExecuteProjectDeployment(ProjectDeploymentData projectDeploymentData, DeploymentContext deploymentContext) { DeploymentInfo deploymentInfo = projectDeploymentData.DeploymentInfo; DeploymentTask deploymentTask = projectDeploymentData.DeploymentTask; PostDiagnosticMessage(string.Format("Starting{0} '{1}'.", (deploymentInfo.IsSimulation ? " (simulation)" : ""), deploymentTask.GetType().Name), DiagnosticMessageType.Info); deploymentTask.DiagnosticMessagePosted += OnDeploymentTaskDiagnosticMessagePosted; try { deploymentTask.Execute(); PostDiagnosticMessage( string.Format("Finished{0} '{1}' (\"{2}\").", (deploymentInfo.IsSimulation ? " (simulation)" : ""), deploymentTask.GetType().Name, deploymentTask.Description), DiagnosticMessageType.Info); PostDiagnosticMessage( "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -", DiagnosticMessageType.Info); return true; } catch (Exception ex) { PostDiagnosticMessage(string.Format("Exception: {0}", ex.Message), DiagnosticMessageType.Error); LogInnerException(ex); } finally { // TODO IMM HI: catch exceptions; pass them upstream using some mechanisms like DeploymentTask.DiagnosticMessagePosted event OnDeploymentTaskFinished(deploymentInfo, deploymentTask, deploymentContext); deploymentTask.DiagnosticMessagePosted -= OnDeploymentTaskDiagnosticMessagePosted; } return false; }