Beispiel #1
0
        public static MetricDict LoadMetrics(DirectoryInfo directory, string genId)
        {
            string filename = GetMetricsFileName(directory, genId);

            if (File.Exists(filename))
            {
                MetricDict metricDict = new MetricDict();

                JObject metrics;
                using (FileStream fs = new FileStream(filename, FileMode.Open))
                    using (StreamReader sr = new StreamReader(fs))
                        using (JsonTextReader jtr = new JsonTextReader(sr))
                        {
                            metrics = JObject.Load(jtr);
                        }

                //recover type dict but with id as index
                Dictionary <int, Type> typeDict = new Dictionary <int, Type>();
                JObject typeDictJson            = metrics["types"] as JObject;
                foreach (var kv in typeDictJson)
                {
                    typeDict[int.Parse(kv.Key)] = Type.GetType(kv.Value.Value <string>());
                }

                JArray data = metrics["data"] as JArray;
                foreach (JObject entry in data)
                {
                    Type     t      = typeDict[entry["type"].Value <int>()];
                    AMetric  metric = entry["metric"].ToObject(t) as AMetric;
                    FileInfo file   = new FileInfo(entry["file"].Value <string>());
                    metricDict[file] = metric;
                }
                return(metricDict);
            }
            return(null);
        }
 public DupeFileCollection(AMetric metric)
 {
     this.metric = metric;
 }