public void Deposit(decimal amount) { if (amount < 0) { throw new InvalidOperationException("Invalid amount value"); } var depositSucceded = new DepositSuccededEvent(guid.ToString(), amount, EventReasons.NONE); Append(depositSucceded); Apply(depositSucceded); if (_state.Equals(AccountState.BLOCKED)) { var unblockAccountEvent = new UnblockAccountCommand(guid.ToString()); Append(unblockAccountEvent); Apply(unblockAccountEvent); } }
private void Apply(UnblockAccountCommand evt) { _state = AccountState.UNBLOCKED; }