PSParallel.InvokeParallelCommand.CaptureVariables C# (CSharp) Method

CaptureVariables() private static method

private static CaptureVariables ( System.Management.Automation.SessionState sessionState, InitialSessionState initialSessionState ) : void
sessionState System.Management.Automation.SessionState
initialSessionState System.Management.Automation.Runspaces.InitialSessionState
return void
		private static void CaptureVariables(SessionState sessionState, InitialSessionState initialSessionState)
		{
			var variables = GetVariables(sessionState);
			foreach (var variable in variables)
			{
				var existing = initialSessionState.Variables[variable.Name].FirstOrDefault();
				if (existing != null)
				{
					if ((existing.Options & (ScopedItemOptions.Constant | ScopedItemOptions.ReadOnly)) != ScopedItemOptions.None)
					{
						continue;
					}
					else
					{
						initialSessionState.Variables.Remove(existing.Name, existing.GetType());
						initialSessionState.Variables.Add(new SessionStateVariableEntry(variable.Name, variable.Value, variable.Description, variable.Options, variable.Attributes));
					}
				}
				else
				{
					initialSessionState.Variables.Add(new SessionStateVariableEntry(variable.Name, variable.Value, variable.Description, variable.Options, variable.Attributes));
				}
			}
		}