private void ConfigureAllExtensions() { // declaring instance store this.workflowApplication.InstanceStore = _stores.CreateInstanceStore(); var IOParticipant = _stores.CreatePersistenceIOParticipant(); if (IOParticipant != null) this.workflowApplication.Extensions.Add(IOParticipant); // adding the tracking participants this.workflowApplication.Extensions.Add(this.GetTrackingParticipant()); // adding the custom extensions IEnumerable<object> extensions = this.Runtime.Configuration.CreateWorkflowExtensions(); if (extensions != null) { foreach (object extension in extensions) { this.workflowApplication.Extensions.Add(extension); } } // adding the custom extension creation functions IEnumerable<Func<object>> extensionFunctions = this.Runtime.Configuration.CreateWorkflowExtensionCreationFunctions<object>(); if (extensionFunctions != null) { foreach(Func<object> extensionFunc in extensionFunctions) { this.workflowApplication.Extensions.Add<object>(extensionFunc); } } _paramDefaults = new HostParameterDefaults(); if (this.PSWorkflowContext.PSWorkflowCommonParameters != null) { foreach (KeyValuePair<string, object> param in this.PSWorkflowContext.PSWorkflowCommonParameters) { if (param.Key != Constants.PSRunningTime && param.Key != Constants.PSElapsedTime) { _paramDefaults.Parameters.Add(param.Key, param.Value); } } } if (this.PSWorkflowContext.PrivateMetadata != null) { _paramDefaults.Parameters[Constants.PrivateMetadata] = this.PSWorkflowContext.PrivateMetadata; } // Job related parameters if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataName)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataName)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataName]; } if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataInstanceId)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataInstanceId)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataInstanceId]; } if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataSessionId)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataSessionId)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataSessionId]; } if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataCommand)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataCommand)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataCommand]; } if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataParentName)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataParentName)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataParentName]; } if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataParentInstanceId)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataParentInstanceId)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataParentInstanceId]; } if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataParentSessionId)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataParentSessionId)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataParentSessionId]; } if (this.PSWorkflowContext.JobMetadata.ContainsKey(Constants.JobMetadataParentCommand)) { _paramDefaults.Parameters[TranslateMetaDataName(Constants.JobMetadataParentCommand)] = this.PSWorkflowContext.JobMetadata[Constants.JobMetadataParentCommand]; } _paramDefaults.Parameters["WorkflowInstanceId"] = this.InstanceId; _paramDefaults.Parameters["Input"] = this.Streams.InputStream; _paramDefaults.Parameters["Result"] = this.Streams.OutputStream; _paramDefaults.Parameters["PSError"] = this.Streams.ErrorStream; _paramDefaults.Parameters["PSWarning"] = this.Streams.WarningStream; _paramDefaults.Parameters["PSProgress"] = this.Streams.ProgressStream; _paramDefaults.Parameters["PSVerbose"] = this.Streams.VerboseStream; _paramDefaults.Parameters["PSDebug"] = this.Streams.DebugStream; _paramDefaults.Parameters["PSInformation"] = this.Streams.InformationStream; // Assign PSActivityHost here _paramDefaults.Runtime = Runtime; _paramDefaults.JobInstanceId = _job.InstanceId; // Assign PSHostPersistDelegate here Func<bool> hostDelegate = this.CheckForPersistenceAfterPSActivity; _paramDefaults.HostPersistenceDelegate = hostDelegate; Action<object> activateDelegate = this.ReactivateWorkflow; _paramDefaults.ActivateDelegate = activateDelegate; _paramDefaults.AsyncExecutionCollection = this.asyncExecutionCollection; _paramDefaults.RemoteActivityState = this.RemoteActivityState; System.Activities.Hosting.SymbolResolver resolver = new System.Activities.Hosting.SymbolResolver(); resolver.Add("ParameterDefaults", _paramDefaults); this.workflowApplication.Extensions.Add(resolver); this.workflowApplication.Extensions.Add(_paramDefaults); }
public SymbolResolverLocationReferenceEnvironment(SymbolResolver symbolResolver) { this.symbolResolver = symbolResolver; }