Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class LoanApplicationAggregate
- {
- private Guid _applicationId;
- private LoanApplicationStatus _status;
- public void Approve()
- {
- if(_status != LoanApplicationStatus.Submitted)
- throw new InvalidOperationException("Can only approve a submitted loan application");
- var e = new LoanApplicationApproved
- {
- Id = _applicationId;
- }
- Publish(e)
- }
- private void Publish(object e)
- {
- _uncommittedEvents.Add(e);
- Apply(e);
- }
- private void Apply(object e)
- {
- _version++;
- RedirectToWhen.InvokeEventOptional(this, e);
- }
- private void When(LoanApplicationApproved e)
- {
- _status = LoanApplicationStatus.Approved;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement