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); }
public void Handle(CurrencyStatusChanged @event) { AddActivityLog(AdminActivityLogCategory.Currency, @event); }