public void Can_log_Language_Status_Changed() { var @event = new LanguageStatusChanged(); _serviceBus.PublishMessage(@event); AssertAdminActivityLog(@event, AdminActivityLogCategory.Language); }
public void Handle(LanguageStatusChanged statusChangedEvent) { var repository = _container.Resolve <IReportRepository>(); var record = repository.LanguageRecords.SingleOrDefault(r => r.Code == statusChangedEvent.Code); if (record == null) { throw new RegoException(string.Format(LanguageRecordNotFoundMessage, statusChangedEvent.Code)); } record.Status = statusChangedEvent.Status.ToString(); switch (statusChangedEvent.Status) { case CultureStatus.Active: record.Activated = statusChangedEvent.EventCreated; record.ActivatedBy = statusChangedEvent.EventCreatedBy; break; case CultureStatus.Inactive: record.Deactivated = statusChangedEvent.EventCreated; record.DeactivatedBy = statusChangedEvent.EventCreatedBy; break; } repository.SaveChanges(); }
private void UpdateCultureStatus(string code, CultureStatus status, string remarks) { var culture = _repository.Cultures.First(x => x.Code == code); if (culture.Status == status) { return; } using (var scope = CustomTransactionScope.GetTransactionScope()) { var user = _actorInfoProvider.Actor.UserName; culture.Status = status; culture.UpdatedBy = user; culture.DateUpdated = DateTimeOffset.Now; if (status == CultureStatus.Active) { culture.ActivatedBy = user; culture.DateActivated = culture.DateUpdated; } else { culture.DeactivatedBy = user; culture.DateDeactivated = culture.DateUpdated; } _repository.SaveChanges(); var languageStatusChanged = new LanguageStatusChanged { Code = culture.Code, Status = culture.Status, Remarks = remarks }; _eventBus.Publish(languageStatusChanged); scope.Complete(); } }
public void Consume(LanguageStatusChanged message) { _eventHandlers.Handle(message); }
public void Handle(LanguageStatusChanged @event) { AddActivityLog(AdminActivityLogCategory.Language, @event); }