protected override void EndProcessing() { var idRanges = IdRange.Invoke(Path, ObjectType).Select(o => o.BaseObject).Cast <ObjectIdRange>(); var reserved = Reserved.Invoke(Path, ObjectType).Select(o => o.BaseObject).Cast <ObjectIdInfo>(); var inUse = InUse.Invoke(Path, ObjectType, Recurse).Select(o => o.BaseObject).Cast <ObjectIdInfo>(); if (MyInvocation.BoundParameters.ContainsKey(nameof(ObjectType))) { idRanges = idRanges.Where(r => ObjectType.Contains(r.ObjectType)); reserved = reserved.Where(r => ObjectType.Contains(r.ObjectType)); inUse = inUse.Where(o => ObjectType.Contains(o.ObjectType)); } switch (Summary.IsPresent) { case true: WriteSummary(idRanges, reserved, inUse); break; case false: WriteDetails(idRanges, reserved, inUse); break; } }
protected override void ProcessRecord() => WriteObject( ObjectInfos .Where(o => ObjectType.Contains(o.ObjectType)), true );