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);
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(); }
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)); }
public async Task <string> ProcessMessageAsync(MagnetMessage message) { message.Id = Guid.NewGuid(); message.ReceivedAt = DateTime.UtcNow; return(await _messageBus.PublishAsync(message)); }