using System.Collections.Generic; using System.IO; using GCHR.Model.Konto; namespace GCHR.Model.Uebersetzung { class Uebersetzungstabelle { public HerstellerKontenrahmen HerstellerKontenrahmen { set; private get; } private readonly Dictionary _uebersetzungstabelle = new Dictionary(); public Uebersetzungstabelle(StreamReader sr) { while (!sr.EndOfStream) { var eintrag = new Eintrag(sr.ReadLine()); while (_uebersetzungstabelle.ContainsKey(eintrag.KontonummerHaendler)) { eintrag.KontonummerHaendler += "X"; } _uebersetzungstabelle.Add(eintrag.KontonummerHaendler, eintrag); } } public void Speichern(StreamWriter sw) { foreach (var eintrag in _uebersetzungstabelle.Values) { sw.WriteLine(eintrag); } } public HerstellerKonto Uebersetzen(HaendlerKonto haendlerKonto, bool split) { return HerstellerKontenrahmen.Get(KontoUebersetzen(haendlerKonto, split)); } private string KontoUebersetzen(HaendlerKonto haendlerKonto, bool split) { return _uebersetzungstabelle[haendlerKonto.Kontonummer].Uebersetzen(haendlerKonto, split); } } }