public PackageCacheStatusInfo(CacheStatusType cacheStatusType, string currentActionVerb, InstallStatusType installStatusType, int sweepIndex, int sweepCount, DateTime lastSweepStart, DateTime lastCacheStatusRequest, Dictionary <string, List <PathCacheStatus> > pathsProcessed, MemoryStatus memoryStatus) { this.CacheStatus = cacheStatusType.ToString(); this.InstallStatus = installStatusType.ToString(); this.SweepIndex = sweepIndex; this.SweepCount = sweepCount; this.LastSweepStart = lastSweepStart; Debug.Assert(currentActionVerb != null); this.CurrentActionVerb = currentActionVerb; this.pathsProcessed = pathsProcessed.ToDictionary(); this.pathsProcessedDelta = pathsProcessed.Where(p => p.Value.Last().Timestamp >= lastCacheStatusRequest).ToDictionary(); if (memoryStatus != null) { memoryStatus.Update(); this.MemoryStatus = memoryStatus; } }