internal Payment(DateTime dueDate, decimal dueAmount, IParty payer, IParty payee, PaymentType type, string sale, int booking, IDataAccessFacade dataAccessFacade) { validateDueAmount(dueAmount); validateParty(payer); validateParty(payee); validateSale(sale); // Get entities for DataAccess IParty payerEntity = ((AParty)payer)._partyEntity; IParty payeeEntity = ((AParty)payee)._partyEntity; this.dataAccessFacade = dataAccessFacade; _paymentEntity = dataAccessFacade.CreatePayment(dueDate, dueAmount, payerEntity, payeeEntity, type, sale, booking); Payer = payer; Payee = payee; }