예제 #1
0
        public void Can_log_Language_Status_Changed()
        {
            var @event = new LanguageStatusChanged();

            _serviceBus.PublishMessage(@event);
            AssertAdminActivityLog(@event, AdminActivityLogCategory.Language);
        }
예제 #2
0
        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();
        }
예제 #3
0
        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();
            }
        }
예제 #4
0
 public void Consume(LanguageStatusChanged message)
 {
     _eventHandlers.Handle(message);
 }
예제 #5
0
 public void Handle(LanguageStatusChanged @event)
 {
     AddActivityLog(AdminActivityLogCategory.Language, @event);
 }