예제 #1
0
 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.");
     }
 }
예제 #2
0
        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.");
            }
        }