private void AddObligation(AddObligationToAccount command) { this.Monitor(); if (!_accountState.Obligations.ContainsKey(command.Obligation.ObligationNumber)) { var @event = new ObligationAddedToAccount(command.AccountNumber, command.Obligation); Persist(@event, s => { _accountState = _accountState.Event(@event); ApplySnapShotStrategy(); _log.Debug($"Added obligation {command.Obligation.ObligationNumber} to account {command.AccountNumber}"); /* Optionally, put this command on the external notificaiton system (i.e. Kafka) */ }); } else { _log.Debug($"You are trying to add obligation {command.Obligation.ObligationNumber} an account which has exists on account {command.AccountNumber}. No action taken."); } }
private void AddObligation(AddObligationToAccount command) { Monitor(); if (!_accountState.Obligations.ContainsKey(command.MaintenanceFee.ObligationNumber)) { var @event = new ObligationAddedToAccount(command.AccountNumber, command.MaintenanceFee); Persist(@event, s => { _accountState = _accountState.ApplyEvent(@event); ApplySnapShotStrategy(); _log.Debug( $"[AddObligation]: Added maintenanceFee {command.MaintenanceFee.ObligationNumber} to account {command.AccountNumber}"); //Report current state to Kafka Self.Tell(new PublishAccountStateToKafka()); }); } else { _log.Debug( $"[AddObligation]: You are trying to add maintenanceFee {command.MaintenanceFee.ObligationNumber} an account which has exists on account {command.AccountNumber}. No action taken."); } }