private static void AddInstanceIndexStats(StoreStats stats, InstanceStatsHolder response) { foreach (var index in stats.Indexing) { IndexStats indexStats = null; if (response.DatabaseStats != null && response.DatabaseStats.Indexes != null) { indexStats = response.DatabaseStats.Indexes .Where(idx => idx.Name == index.Name) .FirstOrDefault(); } var instanceIdxStatus = new InstanceIndexStats() { Url = response.Url }; if (indexStats == null) { instanceIdxStatus.Exists = false; instanceIdxStatus.IsStale = true; } else { instanceIdxStatus.Exists = true; if (response.DatabaseStats != null && response.DatabaseStats.Indexes != null) { instanceIdxStatus.IsStale = response.DatabaseStats.StaleIndexes.Contains(index.Name); } else { instanceIdxStatus.IsStale = true; } if (response.IndexHashCodes != null) { int hashCode; if (response.IndexHashCodes.TryGetValue(indexStats.Name, out hashCode)) { instanceIdxStatus.HashCode = hashCode; } } instanceIdxStatus.CopyFrom(indexStats); } index.Instances.Add(instanceIdxStatus); } }
private static void AddStoreIndexStats(StoreStats stats, IEnumerable <InstanceStatsHolder> responses) { var allIndexNames = responses .Where(r => r.DatabaseStats != null && r.DatabaseStats.Indexes != null) .SelectMany(r => r.DatabaseStats.Indexes) .Select(idx => idx.Name) .Distinct() .OrderBy(name => name); foreach (var indexName in allIndexNames) { stats.Indexing.Add(new IndexingStatistics { Name = indexName }); } }
private static StoreStats CreateStats(Store store, IEnumerable <InstanceStatsHolder> responses) { var storeStats = new StoreStats { Name = store.Name }; AddStoreIndexStats(storeStats, responses); foreach (var instance in store.Instances) { var response = responses.Where(r => r.Url == instance.Url).FirstOrDefault(); AddInstanceIndexStats(storeStats, response); storeStats.Replication.Add(response.ReplicationStats); } return(storeStats); }
private static void AddStoreIndexStats(StoreStats stats, IEnumerable<InstanceStatsHolder> responses) { var allIndexNames = responses .Where(r => r.DatabaseStats != null && r.DatabaseStats.Indexes != null) .SelectMany(r => r.DatabaseStats.Indexes) .Select(idx => idx.Name) .Distinct() .OrderBy(name => name); foreach (var indexName in allIndexNames) { stats.Indexing.Add(new IndexingStatistics { Name = indexName }); } }
private static StoreStats CreateStats(Store store, IEnumerable<InstanceStatsHolder> responses) { var storeStats = new StoreStats { Name = store.Name }; AddStoreIndexStats(storeStats, responses); foreach (var instance in store.Instances) { var response = responses.Where(r => r.Url == instance.Url).FirstOrDefault(); AddInstanceIndexStats(storeStats, response); storeStats.Replication.Add(response.ReplicationStats); } return storeStats; }