public void Can_fail_activate_message_template() { var data = new ActivateMessageTemplate { Id = MessagingRepository.MessageTemplates.First(x => x.Status == Status.Active).Id, Remarks = TestDataGenerator.GetRandomString() }; var exception = Assert.Throws <RegoValidationException>(() => MessageTemplateCommands.Activate(data)); Assert.That(exception.Message, Is.EqualTo( Enum.GetName(typeof(MessagingValidationError), MessagingValidationError.AlreadyActive))); }
public void Can_activate_message_template() { var addData = MessagingTestHelper.CreateAddMessageTemplateData(); var id = MessageTemplateCommands.Add(addData); var activateData = new ActivateMessageTemplate { Id = id, Remarks = TestDataGenerator.GetRandomString() }; MessageTemplateCommands.Activate(activateData); var messageTemplate = MessagingRepository.MessageTemplates.Single(x => x.Id == id); Assert.That(messageTemplate.Status, Is.EqualTo(Status.Active)); }
public void Activate(ActivateMessageTemplate model) { var validationResult = _messageTemplateQueries.GetValidationResult(model); if (!validationResult.IsValid) { throw new RegoValidationException(validationResult); } using (var scope = CustomTransactionScope.GetTransactionScope()) { var messageTemplate = _messagingRepository.MessageTemplates.Single(x => x.Id == model.Id); messageTemplate.Status = Status.Active; messageTemplate.Activated = DateTimeOffset.Now.ToBrandOffset(messageTemplate.Brand.TimezoneId); messageTemplate.ActivatedBy = _actorInfoProvider.Actor.UserName; messageTemplate.Remarks = model.Remarks; var oldMessageTemplate = _messagingRepository.MessageTemplates.SingleOrDefault(x => x.Id != messageTemplate.Id && x.BrandId == messageTemplate.BrandId && x.LanguageCode == messageTemplate.LanguageCode && x.MessageType == messageTemplate.MessageType && x.MessageDeliveryMethod == messageTemplate.MessageDeliveryMethod && x.Status == Status.Active); if (oldMessageTemplate != null) { oldMessageTemplate.Status = Status.Inactive; } _messagingRepository.SaveChanges(); _eventBus.Publish(new MessageTemplateActivatedEvent(Mapper.Map <Interface.Data.MessageTemplate>(messageTemplate)) { EventCreated = DateTimeOffset.Now.ToBrandOffset(messageTemplate.Brand.TimezoneId), }); scope.Complete(); } }
public ValidationResult GetValidationResult(ActivateMessageTemplate model) { return(new ActivateMessageTemplateValidator(_messagingRepository).Validate(model)); }