private async Task ProcessObject(object obj) { CancelProcessToken.ThrowIfCancellationRequested(); if (obj is string str) { await Set(str); } else if (obj is IObjectSummary o) { await Set(o.GetIdentifier()); } else if (obj is PSObject pso) { await ProcessObject(pso.BaseObject); } else if (obj is IEnumerable enumerable) { foreach (object eo in enumerable) { await ProcessObject(eo); } } else { throw new PSArgumentException($"Invalid type: {obj.GetType()}", InputName); } }
private async Task ProcessObject(object obj) { CancelProcessToken.ThrowIfCancellationRequested(); if (obj == null) { await Session.Discard(); } else if (obj is string str) { await Session.Discard(str, cancellationToken : CancelProcessToken); } else if (obj is SessionInfo o) { await Session.Discard(o.UID, cancellationToken : CancelProcessToken); } else if (obj is PSObject pso) { await ProcessObject(pso.BaseObject); } else if (obj is IEnumerable enumerable) { foreach (object eo in enumerable) { await ProcessObject(eo); } } else { throw new PSArgumentException($"Invalid type: {obj.GetType()}", nameof(ResetSession)); } }