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."); }