Eintrag.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using GCHR.Model.Konto;
  3. namespace GCHR.Model.Uebersetzung
  4. {
  5. class Eintrag
  6. {
  7. public string KontonummerHaendler;
  8. private readonly string _ktnrHerstellerSusa = "";
  9. private readonly string _ktnrHerstellerSusaSplit = "";
  10. private readonly string _ktnrHerstellerStat = "";
  11. private readonly string _ktnrHerstellerStatSplit = "";
  12. public Eintrag(string csv)
  13. {
  14. var feld = csv.Split(new[] { ';' });
  15. try
  16. {
  17. KontonummerHaendler = feld[0];
  18. _ktnrHerstellerSusa = feld[1];
  19. _ktnrHerstellerSusaSplit = feld[2];
  20. _ktnrHerstellerStat = feld[3];
  21. _ktnrHerstellerStatSplit = feld[4];
  22. }
  23. catch (ArgumentOutOfRangeException)
  24. {
  25. }
  26. }
  27. public override string ToString()
  28. {
  29. return String.Join(";", new[] { KontonummerHaendler, _ktnrHerstellerSusa, _ktnrHerstellerSusaSplit,
  30. _ktnrHerstellerStat, _ktnrHerstellerStatSplit });
  31. }
  32. public string Uebersetzen(HaendlerKonto haendlerKonto, bool split)
  33. {
  34. var herstellerKontonummer = KontoUebersetzen(haendlerKonto, split);
  35. if (herstellerKontonummer == "") throw new KontoNichtZugeordnetException(haendlerKonto);
  36. return herstellerKontonummer;
  37. }
  38. private string KontoUebersetzen(HaendlerKonto haendlerKonto, bool split)
  39. {
  40. if (haendlerKonto.KontoTyp == KontoTypen.Stat)
  41. {
  42. return (split) ? _ktnrHerstellerStatSplit : _ktnrHerstellerStat;
  43. }
  44. return (split) ? _ktnrHerstellerSusaSplit : _ktnrHerstellerSusa;
  45. }
  46. public void Debug(bool susaKonto, bool splitKontenVerwenden)
  47. {
  48. if (susaKonto && _ktnrHerstellerSusa == "")
  49. throw new KontoNichtZugeordnetException(KontonummerHaendler);
  50. }
  51. }
  52. }