private void ParseFile(String filename, TermCSV csv, String languageCd) { int countEntries = 0; int countAxis = 0; String[] lines = File.ReadAllLines(filename, Encoding.Default); int currentLevel = 0; TermCSVEntry currentAxis = null; String upperCode = "", currentCode = ""; foreach(String line in lines) { if (string.IsNullOrEmpty(line)) continue; if(line.StartsWith("**")) { String axisName = line.Replace("*","").Trim(); currentAxis = new TermCSVEntry(); currentAxis.Code = axisName[0].ToString().ToUpper(); TermCSVEntry existingEntry = csv.GetEntry(currentAxis.Code); if (existingEntry == null) { currentAxis.Term = axisName; currentAxis.IsAxis = true; currentAxis.IsMainclass = false; currentAxis.IsPreferred = true; currentAxis.Metadata.Add("code", currentAxis.Code); csv.Entries.Add(currentAxis); countAxis++; } else { existingEntry.Translations.Add(languageCd, ExtractTerm(line)); } continue; } if(currentAxis != null) { TermCSVEntry entry = new TermCSVEntry(); String code = ExtractCode(line); entry.Code = currentAxis.Code + "-" + code; TermCSVEntry existingEntry = csv.GetEntry(entry.Code); if (existingEntry == null) { entry.Term = ExtractTerm(line); entry.IsAxis = false; entry.IsMainclass = false; entry.AssociationKind = "2"; entry.AssociationType = "is part of"; entry.AssociationTypeReverse = "is parent of"; entry.IsPreferred = true; int level = GetLevel(line); if (level == 0) { entry.RelationCode = currentAxis.Code; } else { entry.RelationCode = entry.Code.Substring(0, entry.Code.Length - 1); } entry.Metadata.Add("code", code); csv.Entries.Add(entry); countEntries++; } else { existingEntry.Translations.Add(languageCd, ExtractTerm(line)); } //Console.WriteLine("Found code: " + entry.Code + ", Term: " + entry.Term); } else { Console.WriteLine("Invalid file format, file must begin with axis information."); break; } } Console.WriteLine("File imported. Axis count: " + countAxis + ", Entry count: " + countEntries); }
private void ParseFile(String filename, TermCSV csv, String languageCd) { int countEntries = 0; int countAxis = 0; var engine = new FileHelpers.FileHelperEngine<ATC_Entry>(); List<ATC_Entry> entries = engine.ReadFileAsList(filename); List<String> codeList = new List<string>(); TermCSVEntry currentAxis = null; foreach (ATC_Entry atc_entry in entries) { if (atc_entry == null || string.IsNullOrEmpty(atc_entry.ATC_CODE)) continue; if (atc_entry.ATC_CODE.Length == 1) { currentAxis = new TermCSVEntry(); currentAxis.Code = atc_entry.ATC_CODE; currentAxis.Term = atc_entry.BEDEUTUNG; currentAxis.IsAxis = true; currentAxis.IsMainclass = false; currentAxis.IsPreferred = true; currentAxis.Metadata.Add("DDD-INFO", atc_entry.DDD_INFO); csv.Entries.Add(currentAxis); countAxis++; codeList.Add(atc_entry.ATC_CODE); continue; } if (currentAxis != null) { TermCSVEntry entry = new TermCSVEntry(); entry.Code = atc_entry.ATC_CODE; entry.Term = atc_entry.BEDEUTUNG; entry.IsAxis = false; entry.IsMainclass = false; entry.AssociationKind = "2"; entry.AssociationType = "is part of"; entry.AssociationTypeReverse = "is parent of"; entry.IsPreferred = true; String code = atc_entry.ATC_CODE; while(code.Length > 0) { code = code.Substring(0, code.Length - 1); if(codeList.Contains(code)) { entry.RelationCode = code; break; } } entry.Metadata.Add("DDD-INFO", atc_entry.DDD_INFO); csv.Entries.Add(entry); countEntries++; if (codeList.Contains(atc_entry.ATC_CODE)) { // WARNING codeList.Add(atc_entry.ATC_CODE); } else codeList.Add(atc_entry.ATC_CODE); //Console.WriteLine("Found code: " + entry.Code + ", Term: " + entry.Term); } } Console.WriteLine("File imported. Axis count: " + countAxis + ", Entry count: " + countEntries); }