Beispiel #1
0
        /// <summary>
        /// Parse data based on options.
        /// </summary>
        /// <param name="options">options</param>
        /// <param name="sort">sort function used to sort features</param>
        /// <returns>Sorted feature names</returns>
        public List <string> Parse(SimpleDataTableBuilderOptions options, Action <List <string> > sort)
        {
            Clear();

            var format = new FeatureItemGroupXmlFormat();

            this.AddRange(from file in options.GetCountFiles()
                          let xmlfile = file.File.EndsWith(".xml") ? file.File : file.File + ".mapped.xml"
                                        select new MappedCountItem()
            {
                ItemName     = file.Name,
                NameGroupMap = (from m in format.ReadFromFile(xmlfile)
                                from n in m
                                select new FeatureItemGroup(n)).ToDictionary(m => m.Name)
            });

            var names = (from countItem in this
                         from featureName in countItem.NameGroupMap.Keys
                         select featureName).Distinct().ToList();

            sort(names);

            Console.WriteLine("merging subjects with identical queries...");
            for (int i = names.Count - 1; i >= 0; i--)
            {
                for (int j = i - 1; j >= 0; j--)
                {
                    if (this.All(m => HasSameQuery(m.NameGroupMap, names[j], names[i])))
                    {
                        this.ForEach(m => MergeGroup(m.NameGroupMap, names[j], names[i]));
                        Console.WriteLine("Merge " + names[i] + " into " + names[j]);
                    }
                }
            }
            Console.WriteLine("merging subjects with identical queries done.");

            this.ForEach(m => m.InitializeDisplayNameMap());

            var result = (from m in this
                          from n in m.DisplayNameGroupMap.Keys
                          select n).Distinct().ToList();

            sort(result);

            return(result);
        }
 public MappedPositionBuilder(SimpleDataTableBuilderOptions options)
 {
   this.options = options;
 }
 public MappedCountTableBuilder(SimpleDataTableBuilderOptions options)
 {
   this.options = options;
 }
 public MappedPositionBuilder(SimpleDataTableBuilderOptions options)
 {
     this.options = options;
 }
Beispiel #5
0
 public MappedCountTableBuilder(SimpleDataTableBuilderOptions options)
 {
     this.options = options;
 }