Example #1
0
        private void UpdateCurrencyStatus(string code, CurrencyStatus status, string remarks)
        {
            var currency = _repository.Currencies.First(x => x.Code == code);

            if (currency.Status == status)
            {
                return;
            }

            using (var scope = CustomTransactionScope.GetTransactionScope())
            {
                var user = _actorInfoProvider.Actor.UserName;
                currency.Status      = status;
                currency.UpdatedBy   = user;
                currency.DateUpdated = DateTimeOffset.UtcNow;

                if (status == CurrencyStatus.Active)
                {
                    currency.ActivatedBy   = user;
                    currency.DateActivated = currency.DateUpdated;
                }
                else
                {
                    currency.DeactivatedBy   = user;
                    currency.DateDeactivated = currency.DateUpdated;
                }

                currency.Remarks = remarks;

                _repository.SaveChanges();

                var currencyStatusChanged = new CurrencyStatusChanged
                {
                    Code    = currency.Code,
                    Status  = currency.Status,
                    Remarks = remarks
                };

                _eventBus.Publish(currencyStatusChanged);

                scope.Complete();
            }
        }
 public void Consume(CurrencyStatusChanged message)
 {
     _eventHandlers.Handle(message);
 }
Example #3
0
 public void Handle(CurrencyStatusChanged @event)
 {
     AddActivityLog(AdminActivityLogCategory.Currency, @event);
 }