Advertisement
Guest User

Untitled

a guest
Jul 5th, 2015
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. public class LoanApplicationAggregate
  2. {
  3. private Guid _applicationId;
  4. private LoanApplicationStatus _status;
  5.  
  6. public void Approve()
  7. {
  8. if(_status != LoanApplicationStatus.Submitted)
  9. throw new InvalidOperationException("Can only approve a submitted loan application");
  10.  
  11. var e = new LoanApplicationApproved
  12. {
  13. Id = _applicationId;
  14. }
  15. Publish(e)
  16. }
  17.  
  18. private void Publish(object e)
  19. {
  20. _uncommittedEvents.Add(e);
  21. Apply(e);
  22. }
  23.  
  24. private void Apply(object e)
  25. {
  26. _version++;
  27. RedirectToWhen.InvokeEventOptional(this, e);
  28. }
  29.  
  30. private void When(LoanApplicationApproved e)
  31. {
  32. _status = LoanApplicationStatus.Approved;
  33. }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement