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));
}
}
}