internal static async Task <IHubMessage?> RehydrateAsync(this IHubRehydrator rehydrator, string input, Type messageType) { if (rehydrator == null) { throw new ArgumentNullException(nameof(rehydrator)); } if (input == null) { throw new ArgumentNullException(nameof(input)); } if (messageType == null) { throw new ArgumentNullException(nameof(messageType)); } await using (var stream = new MemoryStream()) await using (var writer = new StreamWriter(stream)) { await writer.WriteAsync(input).ConfigureAwait(false); await writer.FlushAsync().ConfigureAwait(false); stream.Position = 0; return(await rehydrator.RehydrateAsync(stream, messageType).ConfigureAwait(false)); } }
/// <summary> /// Creates an instance of a RequestRouter using a given resolver. /// </summary> /// <param name="resolver">The IHubMessageTypeMap to use to figure out /// where to send what messages.</param> /// <param name="rehydrator">Rehydrate a message to a message type</param> /// <param name="bulkMediator">Service for dispatching collection of /// messages.</param> public SynchronousRouter( IHubMessageTypeMap resolver, IHubRehydrator rehydrator, IHubMessageBulkMediator bulkMediator) { _resolver = resolver; _rehydrator = rehydrator; _bulkMediator = bulkMediator; }
public QueueSubscriber( IHubMessageTypeMap resolver, IHubRehydrator rehydrator, IMediator mediator) { _resolver = resolver; _rehydrator = rehydrator; _mediator = mediator; }
/// <summary> /// Creates an instance of a CommandRouter using a given resolver. /// </summary> /// <param name="resolver">The IHubMessageTypeMap to use to figure out /// where to send what messages.</param> /// <param name="rehydrator">Rehydrates a message to a message type</param> /// <param name="commandDispatcher">Service for dispatching collection /// of requests.</param> public AsynchronousRouter( IHubMessageTypeMap resolver, IHubRehydrator rehydrator, IHubCommandMediator commandDispatcher) { _resolver = resolver; _rehydrator = rehydrator; _commandDispatcher = commandDispatcher; }
public ChangeOfSupplierTests() { var services = new ServiceCollection(); services.AddGreenEnergyHub(typeof(ChangeOfSupplierMessage).Assembly); services.AddScoped <IHubRehydrator>( sp => new JsonMessageDeserializer( Substitute.For <ILogger <JsonMessageDeserializer> >(), new JsonSerializer())); services.AddScoped <IHubMessageQueueDispatcher, HubMessageQueueDispatcherStub>(); var serviceProvider = services.BuildServiceProvider(); var hubRequestMediator = serviceProvider.GetRequiredService <IHubRequestMediator>(); _hubRehydrator = serviceProvider.GetRequiredService <IHubRehydrator>(); _bulkMediator = new HubRequestBulkMediator(hubRequestMediator); }