Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
        }