Example #1
0
        internal void Save(WorkflowStoreComponents components, Dictionary <string, object> WorkflowContext)
        {
            Collection <object> objs = new Collection <object>();

            if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
            {
                objs.Add(this.PSWorkflowInstance.State);
            }
            if (WorkflowContext != null)
            {
                objs.Add(WorkflowContext);
            }
            if ((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition && this.PSWorkflowInstance.PSWorkflowDefinition != null)
            {
                objs.Add(this.PSWorkflowInstance.PSWorkflowDefinition);
            }
            if ((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError && this.PSWorkflowInstance.Error != null && !WorkflowJobSourceAdapter.GetInstance().IsShutdownInProgress&& this.PSWorkflowInstance.Error.GetType() != typeof(RemoteException))
            {
                objs.Add(this.PSWorkflowInstance.Error);
            }
            if ((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata && this.PSWorkflowInstance.PSWorkflowContext != null)
            {
                objs.Add(this.PSWorkflowInstance.PSWorkflowContext);
            }
            if ((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams && this.PSWorkflowInstance.Streams != null)
            {
                objs.Add(this.PSWorkflowInstance.Streams);
            }
            if ((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer && this.PSWorkflowInstance.Timer != null)
            {
                objs.Add(this.PSWorkflowInstance.Timer);
            }
            this.DoSave(objs);
        }
Example #2
0
        internal void Save(WorkflowStoreComponents components, Dictionary <string, object> WorkflowContext)
        {
            Collection <object> componentsToSave = new Collection <object>();

            if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
            {
                componentsToSave.Add(PSWorkflowInstance.State);
            }

            if (WorkflowContext != null)
            {
                componentsToSave.Add(WorkflowContext);
            }

            if (((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition) &&
                (PSWorkflowInstance.PSWorkflowDefinition != null))
            {
                componentsToSave.Add(PSWorkflowInstance.PSWorkflowDefinition);
            }

            if (((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError) &&
                (PSWorkflowInstance.Error != null))
            {
                if (!WorkflowJobSourceAdapter.GetInstance().IsShutdownInProgress)
                {
                    if (PSWorkflowInstance.Error.GetType() != typeof(RemoteException))
                    {
                        componentsToSave.Add(PSWorkflowInstance.Error);
                    }
                }
            }

            if (((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata) &&
                (PSWorkflowInstance.PSWorkflowContext != null))
            {
                componentsToSave.Add(PSWorkflowInstance.PSWorkflowContext);
            }

            if (((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams) &&
                (PSWorkflowInstance.Streams != null))
            {
                componentsToSave.Add(PSWorkflowInstance.Streams);
            }

            if (((components & WorkflowStoreComponents.ActivityState) == WorkflowStoreComponents.ActivityState) &&
                (PSWorkflowInstance.RemoteActivityState != null))
            {
                componentsToSave.Add(PSWorkflowInstance.RemoteActivityState);
            }

            if (((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer) &&
                PSWorkflowInstance.Timer != null)
            {
                componentsToSave.Add(PSWorkflowInstance.Timer);
            }

            DoSave(componentsToSave);
        }
Example #3
0
        public void Load(WorkflowStoreComponents components)
        {
            Collection <Type> types = new Collection <Type>();

            if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
            {
                types.Add(typeof(JobState));
                this.PSWorkflowInstance.JobStateRetrieved = false;
            }
            if ((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition)
            {
                types.Add(typeof(PSWorkflowDefinition));
                this.PSWorkflowInstance.PSWorkflowDefinition = null;
            }
            if ((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError)
            {
                types.Add(typeof(Exception));
                this.PSWorkflowInstance.Error = null;
            }
            if ((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata)
            {
                types.Add(typeof(PSWorkflowContext));
                this.PSWorkflowInstance.PSWorkflowContext = null;
            }
            if ((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams)
            {
                types.Add(typeof(PowerShellStreams <PSObject, PSObject>));
                this.PSWorkflowInstance.Streams = null;
            }
            if ((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer)
            {
                types.Add(typeof(PSWorkflowTimer));
                this.PSWorkflowInstance.Timer = null;
            }
            IEnumerable <object> objs = this.DoLoad(types);

            foreach (object obj in objs)
            {
                Type type = obj.GetType();
                if ((JobState)type != typeof(JobState))
                {
                    if (type != typeof(PSWorkflowDefinition))
                    {
                        if (obj as Exception == null)
                        {
                            if (type != typeof(PSWorkflowContext))
                            {
                                if (type != typeof(PowerShellStreams <PSObject, PSObject>))
                                {
                                    if (type != typeof(PSWorkflowTimer))
                                    {
                                        continue;
                                    }
                                    this.PSWorkflowInstance.Timer = (PSWorkflowTimer)obj;
                                }
                                else
                                {
                                    this.PSWorkflowInstance.Streams = (PowerShellStreams <PSObject, PSObject>)obj;
                                }
                            }
                            else
                            {
                                this.PSWorkflowInstance.PSWorkflowContext = (PSWorkflowContext)obj;
                            }
                        }
                        else
                        {
                            this.PSWorkflowInstance.Error = (Exception)obj;
                        }
                    }
                    else
                    {
                        this.PSWorkflowInstance.PSWorkflowDefinition = (PSWorkflowDefinition)obj;
                    }
                }
                else
                {
                    this.PSWorkflowInstance.State             = (JobState)obj;
                    this.PSWorkflowInstance.JobStateRetrieved = true;
                }
            }
        }
Example #4
0
 public void Save(WorkflowStoreComponents components)
 {
     this.Save(components, null);
 }
Example #5
0
		public void Load(WorkflowStoreComponents components)
		{
			Collection<Type> types = new Collection<Type>();
			if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
			{
				types.Add(typeof(JobState));
				this.PSWorkflowInstance.JobStateRetrieved = false;
			}
			if ((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition)
			{
				types.Add(typeof(PSWorkflowDefinition));
				this.PSWorkflowInstance.PSWorkflowDefinition = null;
			}
			if ((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError)
			{
				types.Add(typeof(Exception));
				this.PSWorkflowInstance.Error = null;
			}
			if ((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata)
			{
				types.Add(typeof(PSWorkflowContext));
				this.PSWorkflowInstance.PSWorkflowContext = null;
			}
			if ((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams)
			{
				types.Add(typeof(PowerShellStreams<PSObject, PSObject>));
				this.PSWorkflowInstance.Streams = null;
			}
			if ((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer)
			{
				types.Add(typeof(PSWorkflowTimer));
				this.PSWorkflowInstance.Timer = null;
			}
			IEnumerable<object> objs = this.DoLoad(types);
			foreach (object obj in objs)
			{
				Type type = obj.GetType();
				if ((JobState)type != typeof(JobState))
				{
					if (type != typeof(PSWorkflowDefinition))
					{
						if (obj as Exception == null)
						{
							if (type != typeof(PSWorkflowContext))
							{
								if (type != typeof(PowerShellStreams<PSObject, PSObject>))
								{
									if (type != typeof(PSWorkflowTimer))
									{
										continue;
									}
									this.PSWorkflowInstance.Timer = (PSWorkflowTimer)obj;
								}
								else
								{
									this.PSWorkflowInstance.Streams = (PowerShellStreams<PSObject, PSObject>)obj;
								}
							}
							else
							{
								this.PSWorkflowInstance.PSWorkflowContext = (PSWorkflowContext)obj;
							}
						}
						else
						{
							this.PSWorkflowInstance.Error = (Exception)obj;
						}
					}
					else
					{
						this.PSWorkflowInstance.PSWorkflowDefinition = (PSWorkflowDefinition)obj;
					}
				}
				else
				{
					this.PSWorkflowInstance.State = (JobState)obj;
					this.PSWorkflowInstance.JobStateRetrieved = true;
				}
			}
		}
Example #6
0
		internal void Save(WorkflowStoreComponents components, Dictionary<string, object> WorkflowContext)
		{
			Collection<object> objs = new Collection<object>();
			if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
			{
				objs.Add(this.PSWorkflowInstance.State);
			}
			if (WorkflowContext != null)
			{
				objs.Add(WorkflowContext);
			}
			if ((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition && this.PSWorkflowInstance.PSWorkflowDefinition != null)
			{
				objs.Add(this.PSWorkflowInstance.PSWorkflowDefinition);
			}
			if ((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError && this.PSWorkflowInstance.Error != null && !WorkflowJobSourceAdapter.GetInstance().IsShutdownInProgress && this.PSWorkflowInstance.Error.GetType() != typeof(RemoteException))
			{
				objs.Add(this.PSWorkflowInstance.Error);
			}
			if ((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata && this.PSWorkflowInstance.PSWorkflowContext != null)
			{
				objs.Add(this.PSWorkflowInstance.PSWorkflowContext);
			}
			if ((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams && this.PSWorkflowInstance.Streams != null)
			{
				objs.Add(this.PSWorkflowInstance.Streams);
			}
			if ((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer && this.PSWorkflowInstance.Timer != null)
			{
				objs.Add(this.PSWorkflowInstance.Timer);
			}
			this.DoSave(objs);
		}
Example #7
0
		public void Save(WorkflowStoreComponents components)
		{
			this.Save(components, null);
		}
Example #8
0
        /// <summary>
        /// Load
        /// </summary>
        /// <param name="components"></param>
        public void Load(WorkflowStoreComponents components)
        {
            Collection<Type> componentsToLoad = new Collection<Type>();

            if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
            {
                componentsToLoad.Add(typeof(JobState));
                PSWorkflowInstance.JobStateRetrieved = false;
            }

            if ((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition)
            {
                componentsToLoad.Add(typeof(PSWorkflowDefinition));
                PSWorkflowInstance.PSWorkflowDefinition = null;
            }

            if ((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError)
            {
                componentsToLoad.Add(typeof(Exception));
                PSWorkflowInstance.Error = null;
            }

            if ((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata)
            {
                componentsToLoad.Add(typeof(PSWorkflowContext));
                PSWorkflowInstance.PSWorkflowContext = null;
            }

            if ((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams)
            {
                componentsToLoad.Add(typeof(PowerShellStreams<PSObject, PSObject>));
                PSWorkflowInstance.Streams = null;
            }

            if ((components & WorkflowStoreComponents.ActivityState) == WorkflowStoreComponents.ActivityState)
            {
                componentsToLoad.Add(typeof(PSWorkflowRemoteActivityState));
                PSWorkflowInstance.RemoteActivityState = null;
            }

            if ((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer)
            {
                componentsToLoad.Add(typeof(PSWorkflowTimer));
                PSWorkflowInstance.Timer = null;
            }

            IEnumerable<object> loadedComponents = DoLoad(componentsToLoad);
            
            foreach (object loadedComponent in loadedComponents)
            {
                Type componentType = loadedComponent.GetType();

                if (componentType == typeof(JobState))
                {
                    PSWorkflowInstance.State = (JobState)loadedComponent;
                    PSWorkflowInstance.JobStateRetrieved = true;
                }
                else if (componentType == typeof(PSWorkflowDefinition))
                {
                    PSWorkflowInstance.PSWorkflowDefinition = (PSWorkflowDefinition)loadedComponent;
                }
                else if (loadedComponent is Exception)
                {
                    PSWorkflowInstance.Error = (Exception)loadedComponent;
                }
                else if (componentType == typeof(PSWorkflowContext))
                {
                    PSWorkflowInstance.PSWorkflowContext = (PSWorkflowContext)loadedComponent;
                }
                else if (componentType == typeof(PowerShellStreams<PSObject, PSObject>))
                {
                    PSWorkflowInstance.Streams = (PowerShellStreams<PSObject, PSObject>)loadedComponent;
                }
                else if (componentType == typeof(PSWorkflowTimer))
                {
                    PSWorkflowInstance.Timer = (PSWorkflowTimer)loadedComponent;
                }
                else if (componentType == typeof(PSWorkflowRemoteActivityState))
                {
                    PSWorkflowInstance.RemoteActivityState = (PSWorkflowRemoteActivityState)loadedComponent;
                }
            }
        }
Example #9
0
        internal void Save(WorkflowStoreComponents components, Dictionary<string, object> WorkflowContext)
        {
            Collection<object> componentsToSave = new Collection<object>();

            if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
            {
                componentsToSave.Add(PSWorkflowInstance.State);
            }

            if (WorkflowContext != null)
            {
                componentsToSave.Add(WorkflowContext);
            }

            if (((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition) &&
                (PSWorkflowInstance.PSWorkflowDefinition != null))
            {
                componentsToSave.Add(PSWorkflowInstance.PSWorkflowDefinition);
            }

            if (((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError) &&
                (PSWorkflowInstance.Error != null))
            {
                if (!WorkflowJobSourceAdapter.GetInstance().IsShutdownInProgress)
                {
                    if (PSWorkflowInstance.Error.GetType() != typeof(RemoteException))
                    {
                        componentsToSave.Add(PSWorkflowInstance.Error);
                    }
                }
            }

            if (((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata) &&
                (PSWorkflowInstance.PSWorkflowContext != null))
            {
                componentsToSave.Add(PSWorkflowInstance.PSWorkflowContext);
            }

            if (((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams) &&
                (PSWorkflowInstance.Streams != null))
            {
                componentsToSave.Add(PSWorkflowInstance.Streams);
            }

            if (((components & WorkflowStoreComponents.ActivityState) == WorkflowStoreComponents.ActivityState) &&
                (PSWorkflowInstance.RemoteActivityState != null))
            {
                componentsToSave.Add(PSWorkflowInstance.RemoteActivityState);
            }

            if (((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer) &&
                PSWorkflowInstance.Timer != null)
            {
                componentsToSave.Add(PSWorkflowInstance.Timer);
            }

            DoSave(componentsToSave);
        }
Example #10
0
        /// <summary>
        /// Load
        /// </summary>
        /// <param name="components"></param>
        public void Load(WorkflowStoreComponents components)
        {
            Collection <Type> componentsToLoad = new Collection <Type>();

            if ((components & WorkflowStoreComponents.JobState) == WorkflowStoreComponents.JobState)
            {
                componentsToLoad.Add(typeof(JobState));
                PSWorkflowInstance.JobStateRetrieved = false;
            }

            if ((components & WorkflowStoreComponents.Definition) == WorkflowStoreComponents.Definition)
            {
                componentsToLoad.Add(typeof(PSWorkflowDefinition));
                PSWorkflowInstance.PSWorkflowDefinition = null;
            }

            if ((components & WorkflowStoreComponents.TerminatingError) == WorkflowStoreComponents.TerminatingError)
            {
                componentsToLoad.Add(typeof(Exception));
                PSWorkflowInstance.Error = null;
            }

            if ((components & WorkflowStoreComponents.Metadata) == WorkflowStoreComponents.Metadata)
            {
                componentsToLoad.Add(typeof(PSWorkflowContext));
                PSWorkflowInstance.PSWorkflowContext = null;
            }

            if ((components & WorkflowStoreComponents.Streams) == WorkflowStoreComponents.Streams)
            {
                componentsToLoad.Add(typeof(PowerShellStreams <PSObject, PSObject>));
                PSWorkflowInstance.Streams = null;
            }

            if ((components & WorkflowStoreComponents.ActivityState) == WorkflowStoreComponents.ActivityState)
            {
                componentsToLoad.Add(typeof(PSWorkflowRemoteActivityState));
                PSWorkflowInstance.RemoteActivityState = null;
            }

            if ((components & WorkflowStoreComponents.Timer) == WorkflowStoreComponents.Timer)
            {
                componentsToLoad.Add(typeof(PSWorkflowTimer));
                PSWorkflowInstance.Timer = null;
            }

            IEnumerable <object> loadedComponents = DoLoad(componentsToLoad);

            foreach (object loadedComponent in loadedComponents)
            {
                Type componentType = loadedComponent.GetType();

                if (componentType == typeof(JobState))
                {
                    PSWorkflowInstance.State             = (JobState)loadedComponent;
                    PSWorkflowInstance.JobStateRetrieved = true;
                }
                else if (componentType == typeof(PSWorkflowDefinition))
                {
                    PSWorkflowInstance.PSWorkflowDefinition = (PSWorkflowDefinition)loadedComponent;
                }
                else if (loadedComponent is Exception)
                {
                    PSWorkflowInstance.Error = (Exception)loadedComponent;
                }
                else if (componentType == typeof(PSWorkflowContext))
                {
                    PSWorkflowInstance.PSWorkflowContext = (PSWorkflowContext)loadedComponent;
                }
                else if (componentType == typeof(PowerShellStreams <PSObject, PSObject>))
                {
                    PSWorkflowInstance.Streams = (PowerShellStreams <PSObject, PSObject>)loadedComponent;
                }
                else if (componentType == typeof(PSWorkflowTimer))
                {
                    PSWorkflowInstance.Timer = (PSWorkflowTimer)loadedComponent;
                }
                else if (componentType == typeof(PSWorkflowRemoteActivityState))
                {
                    PSWorkflowInstance.RemoteActivityState = (PSWorkflowRemoteActivityState)loadedComponent;
                }
            }
        }