:)
:
public CustomerChangedEmail ChangeEmail(string email)
{
if(this.Email.Equals(email))
{
throw new DomainException("Cannot change e-mail since it is the same.");
}
return On(new CustomerChangedEmail { EMail = email});
}
public CustomerChangedEmail On(CustomerChangedEmail customerChangedEmail)
{
this.EMail = customerChangedEmail.EMail;
return customerChangedEmail;
}
, , , DomainEvents. , ES.
/: . , ES . - , . , , .
, , , - . Customer DateEMailChangedSent, null, .
:
- , .
- (DateEMailChangedSent null)
- (1)
SendEMailChangedCommand (2)- Commit transaction (3)
, , ( 2PC), .
, , DateEMailChangedSent , , :
(1) , , , .
(2) - - , , , .
(3) , , , , DateEMailChangedSent null, , .
SendEMailChangedCommand DateEMailChangedSent, null, , . , , , ( ).
, :)