using System; using GCHR.Model.Konto; namespace GCHR.Model.Uebersetzung { class Eintrag { public string KontonummerHaendler; private readonly string _ktnrHerstellerSusa = ""; private readonly string _ktnrHerstellerSusaSplit = ""; private readonly string _ktnrHerstellerStat = ""; private readonly string _ktnrHerstellerStatSplit = ""; public Eintrag(string csv) { var feld = csv.Split(new[] { ';' }); try { KontonummerHaendler = feld[0]; _ktnrHerstellerSusa = feld[1]; _ktnrHerstellerSusaSplit = feld[2]; _ktnrHerstellerStat = feld[3]; _ktnrHerstellerStatSplit = feld[4]; } catch (ArgumentOutOfRangeException) { } } public override string ToString() { return String.Join(";", new[] { KontonummerHaendler, _ktnrHerstellerSusa, _ktnrHerstellerSusaSplit, _ktnrHerstellerStat, _ktnrHerstellerStatSplit }); } public string Uebersetzen(HaendlerKonto haendlerKonto, bool split) { var herstellerKontonummer = KontoUebersetzen(haendlerKonto, split); if (herstellerKontonummer == "") throw new KontoNichtZugeordnetException(haendlerKonto); return herstellerKontonummer; } private string KontoUebersetzen(HaendlerKonto haendlerKonto, bool split) { if (haendlerKonto.KontoTyp == KontoTypen.Stat) { return (split) ? _ktnrHerstellerStatSplit : _ktnrHerstellerStat; } return (split) ? _ktnrHerstellerSusaSplit : _ktnrHerstellerSusa; } public void Debug(bool susaKonto, bool splitKontenVerwenden) { if (susaKonto && _ktnrHerstellerSusa == "") throw new KontoNichtZugeordnetException(KontonummerHaendler); } } }