public void AcceptPayment(Payment payment, User user) { Require.NotNull(payment, "payment"); Require.NotNull(user, "user"); if (payment.PaymentStatus == PaymentStatus.Accecpted) { throw new InvalidOperationException("Die Zahlung wurde bereits akzeptiert und gebucht."); } payment.Accept(new EntityChangedDto(user, DateTime.Now)); /*Der Nutzer der das tatsächliche Geld empfangen hat, ist der dem das Geld vom Konto abgezogen wird.*/ Account bookingRecipient = payment.Recipient; /*Der Nutzer der das tatsächliche Geld abgegeben hat, ist der dem das Geld auf dem Konto gutgeschrieben wird.*/ Account bookingSender = payment.Sender; BookingService.Book(bookingRecipient, bookingSender, payment.Amount, payment.Text); }
public PaymentProcessingResult Process(Payment payment) { payment.Accept(this); // ... }