예제 #1
0
        public void AcceptBill(Bill bill, User debitor, User user, string billUrl, string settleBillUrl)
        {
            Require.NotNull(bill, "bill");
            Require.NotNull(debitor, "debitor");
            if (!bill.IsSettled)
            {
                BillAcceptState?billAcceptState = bill.GetDebitorState(debitor);
                if (billAcceptState != null && billAcceptState != BillAcceptState.Accepted)
                {
                    bill.AcceptByDebitor(debitor, new EntityChangedDto(user, DateTime.Now));

                    if (bill.HasEveryoneAccepted)
                    {
                        NotificationService.SendBillAcceptedNotification(bill, billUrl, settleBillUrl);
                    }
                }
            }
            else
            {
                throw new InvalidOperationException("Die Rechnung kann nicht akzeptiert werden da diese bereits abgerechnet wurde.");
            }
        }