public Task AddAsync(MagnetMessage message, CancellationToken cancellationToken)
        {
            MessageRecord record = _mapper.Map <MessageRecord>(message);

            _messages.Add(record);
            return(Task.CompletedTask);
        }
 public static T GetPropertyValue <T>(this MagnetMessage message, string name)
 {
     if (message.Properties != null && message.Properties.ContainsKey(name))
     {
         return((T)Convert
                .ChangeType(message.Properties[name], typeof(T)));
     }
     return(default);
Example #3
0
        public async Task TriggerAsync(
            MessageBuilder builder,
            CancellationToken cancellationToken)
        {
            HttpClient client  = _httpClientFactory.CreateClient(_options.HttpClientName);
            var        request = new HttpRequestMessage(
                HttpMethod.Post,
                $"{client.BaseAddress.ToString().Trim('/')}/message");

            MagnetMessage message = builder.Build();

            request.Content = new StringContent(
                JsonConvert.SerializeObject(message),
                Encoding.UTF8,
                "application/json");

            HttpResponseMessage result = await client.SendAsync(request, cancellationToken);

            result.EnsureSuccessStatusCode();
        }
Example #4
0
        public async Task Trigger_Success()
        {
            //arrange
            HttpRequestMessage sentRequest = null;
            IHttpClientFactory factory     = CreateHttpClientFactoryMock(msg =>
            {
                sentRequest = msg;
            });
            var gun = new MessageGun(factory, new MessageGunOptions());

            //act
            await gun.TriggerAsync(MessageBuilder.New("Pdf", "UnitTest"), default);


            //assert
            sentRequest.Should().NotBeNull();
            MagnetMessage message = await GetMessageFromRequest(sentRequest);

            message.MatchSnapshot(o => o
                                  .IgnoreField("Id")
                                  .IgnoreField("ReceivedAt"));
        }
 public static string GetPropertyValue(this MagnetMessage message, string name)
 {
     return(message.GetPropertyValue <string>(name));
 }
Example #6
0
 public async Task <string> ProcessMessageAsync(MagnetMessage message)
 {
     message.Id         = Guid.NewGuid();
     message.ReceivedAt = DateTime.UtcNow;
     return(await _messageBus.PublishAsync(message));
 }