public EinzahlResult EingezahltenBetragVomZuZahlendenBetragAbziehen(decimal zuZahlenderBetrag, decimal eingezahlterBetrag, Guid vorgangsNummer) { if (IstBetragAbgezahlt(zuZahlenderBetrag)) { return(EinzahlResult.EinzahlvorgangFehlerhaft(EinzahlError.VorgangBereitsBezahlt)); } decimal restBetrag = zuZahlenderBetrag - eingezahlterBetrag; if (restBetrag < 0.0m) { decimal tatsaechlichZuZahlenderBetrag = eingezahlterBetrag + restBetrag; _bankService.GeldEinzahlen(vorgangsNummer, tatsaechlichZuZahlenderBetrag); return(EinzahlResult.EinzahlungenErfolgreich(restBetrag)); } _bankService.GeldEinzahlen(vorgangsNummer, eingezahlterBetrag); return(EinzahlResult.EinzahlungenErfolgreich(restBetrag)); }