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 void Settle(Bill bill, User user) { Require.NotNull(bill, "bill"); Require.NotNull(user, "user"); if (bill.IsSettled) { return; } foreach (BillUserGroupDebitor billUserGroupDebitor in bill.UserGroupDebitors) { if (!billUserGroupDebitor.UserGroupMembership.Equals(bill.Creditor)) { BookingService.Book(billUserGroupDebitor.UserGroupMembership.Account, bill.Creditor.Account, bill.GetPartialAmountByPortion(billUserGroupDebitor.Portion), string.Format("{0}: {1}", bill.Id, bill.Subject)); } } bill.Settle(new EntityChangedDto(user, DateTime.Now)); LogManager.GetLogger <BillService>().Info($"Die Rechnung mit der Nummer {bill.Id} und dem Betreff {bill.Subject} wurde abgerechnet."); }