Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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.");
        }