public async Task SendMessageAsync(MessageParameters messageParameters) { JobContextMessage jobContextMessage = (JobContextMessage)messageParameters.JobContextMessage; await _topicPublishServices[messageParameters.JobType].PublishAsync( _jobContextMapper.MapFrom(jobContextMessage), messageParameters.TopicParameters, messageParameters.SubscriptionLabel); }
public void TestJobContextMappingInterfaceToDto() { DateTime now = DateTime.UtcNow; List <ITaskItem> tasks = new List <ITaskItem>() { new TaskItem { Tasks = new List <string> { "Task A" }, SupportsParallelExecution = true } }; var topicItem = new TopicItem("Topic A", "SqlFilter A", tasks); JobContextMessage jobContextMessage = new JobContextMessage { JobId = 12, KeyValuePairs = new Dictionary <string, object> { { JobContextMessageKey.UkPrn, 12345 } }, SubmissionDateTimeUtc = now, TopicPointer = 3, Topics = new List <ITopicItem> { topicItem } }; JobContextMapper mapper = new JobContextMapper(); JobContextDto dto = mapper.MapFrom(jobContextMessage); dto.SubmissionDateTimeUtc.Should().Be(now); dto.JobId.Should().Be(12); dto.KeyValuePairs.Should().BeEquivalentTo(jobContextMessage.KeyValuePairs); dto.Topics.Should().BeEquivalentTo(jobContextMessage.Topics); dto.TopicPointer.Should().Be(3); }