public void MergeFeaturesWithConfiguration(IDictionary <string, Common.FeatureUsageData.Feature> featureReport) { FeatureDetails featureDetails = new FeatureDetails(); if (_configuration != null && _configuration.FeatureDetails != null) { IDictionary <string, Common.FeatureUsageData.Dom.Feature> features = new Dictionary <string, Common.FeatureUsageData.Dom.Feature>(); if (_configuration.FeatureDetails.Features != null) { foreach (Common.FeatureUsageData.Dom.Feature configFeature in _configuration.FeatureDetails.Features) { Common.FeatureUsageData.Dom.Feature feature = configFeature; if (featureReport != null && featureReport.ContainsKey(configFeature.Name)) { feature = MergeFeatures(configFeature, featureReport[configFeature.Name]); } features.Add(feature.Name, feature); } } if (featureReport != null && featureReport.Count > 0) { foreach (var reportedFeature in featureReport) { if (!features.ContainsKey(reportedFeature.Key)) { features.Add(reportedFeature.Key, new Feature { Name = reportedFeature.Value.Name, LastUsedOn = reportedFeature.Value.LastUsageTime.Date.ToString("d"), CreationTime = reportedFeature.Value.CreationTime.ToString("d"), Subfeatures = Common.FeatureUsageData.Feature.ConvertFeatures(reportedFeature.Value.Features()) }); } } } featureDetails.Features = features.Values.ToArray(); } else { Common.FeatureUsageData.Dom.Feature[] features = Alachisoft.NCache.Common.FeatureUsageData.Feature.ConvertFeatures(featureReport); featureDetails.Features = features; } _finalConfiguration.FeatureDetails = featureDetails; }
public static Common.FeatureUsageData.Dom.Feature[] ConvertFeatures(IDictionary <string, Feature> subFeatures) { if (subFeatures != null && subFeatures.Count > 0) { Common.FeatureUsageData.Dom.Feature[] features = new Common.FeatureUsageData.Dom.Feature[subFeatures.Count]; Feature[] reportedFeatures = subFeatures.Values.ToArray(); for (int i = 0; i < reportedFeatures.Length; i++) { features[i] = new Dom.Feature { Name = reportedFeatures[i].Name, LastUsedOn = reportedFeatures[i].LastUsageTime.ToString("d"), CreationTime = reportedFeatures[i].CreationTime.ToString("d"), Subfeatures = ConvertFeatures(reportedFeatures[i].SubFeatures) }; } return(features); } return(null); }