Uebersetzungstabelle.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using GCHR.Model.Konto;
  4. namespace GCHR.Model.Uebersetzung
  5. {
  6. class Uebersetzungstabelle
  7. {
  8. public HerstellerKontenrahmen HerstellerKontenrahmen { set; private get; }
  9. private readonly Dictionary<string, Eintrag> _uebersetzungstabelle = new Dictionary<string, Eintrag>();
  10. public Uebersetzungstabelle(StreamReader sr)
  11. {
  12. while (!sr.EndOfStream)
  13. {
  14. var eintrag = new Eintrag(sr.ReadLine());
  15. while (_uebersetzungstabelle.ContainsKey(eintrag.KontonummerHaendler))
  16. {
  17. eintrag.KontonummerHaendler += "X";
  18. }
  19. _uebersetzungstabelle.Add(eintrag.KontonummerHaendler, eintrag);
  20. }
  21. }
  22. public void Speichern(StreamWriter sw)
  23. {
  24. foreach (var eintrag in _uebersetzungstabelle.Values)
  25. {
  26. sw.WriteLine(eintrag);
  27. }
  28. }
  29. public HerstellerKonto Uebersetzen(HaendlerKonto haendlerKonto, bool split)
  30. {
  31. return HerstellerKontenrahmen.Get(KontoUebersetzen(haendlerKonto, split));
  32. }
  33. private string KontoUebersetzen(HaendlerKonto haendlerKonto, bool split)
  34. {
  35. return _uebersetzungstabelle[haendlerKonto.Kontonummer].Uebersetzen(haendlerKonto, split);
  36. }
  37. }
  38. }