/// <summary> /// Makes an RPC style request /// </summary> /// <typeparam name="TRequest">The request type</typeparam> /// <typeparam name="TResponse">The response type</typeparam> /// <param name="rpc">The rpc instance.</param> /// <param name="request">The request message.</param> /// <param name="cancellationToken">The cancellation token</param> /// <returns>The response</returns> public static Task <TResponse> RequestAsync <TRequest, TResponse>( this IRpc rpc, TRequest request, CancellationToken cancellationToken = default ) { Preconditions.CheckNotNull(rpc, "rpc"); return(rpc.RequestAsync <TRequest, TResponse>(request, c => { }, cancellationToken)); }
/// <summary> /// Makes an RPC style request /// </summary> /// <typeparam name="TRequest">The request type</typeparam> /// <typeparam name="TResponse">The response type</typeparam> /// <param name="rpc">The rpc instance.</param> /// <param name="request">The request message.</param> /// <param name="cancellationToken">The cancellation token</param> /// <returns>The response</returns> public static TResponse Request <TRequest, TResponse>( this IRpc rpc, TRequest request, CancellationToken cancellationToken = default ) { Preconditions.CheckNotNull(rpc, "rpc"); return(rpc.RequestAsync <TRequest, TResponse>(request, cancellationToken) .GetAwaiter() .GetResult()); }
/// <summary> /// Makes an RPC style request /// </summary> /// <param name="rpc">The rpc instance.</param> /// <param name="request">The request message.</param> /// <param name="requestType">The request type</param> /// <param name="responseType">The response type</param> /// <param name="cancellationToken">The cancellation token</param> /// <returns>The response</returns> public static Task <object> RequestAsync( this IRpc rpc, object request, Type requestType, Type responseType, CancellationToken cancellationToken = default ) { Preconditions.CheckNotNull(rpc, "rpc"); return(rpc.RequestAsync(request, requestType, responseType, c => { }, cancellationToken)); }
/// <summary> /// Makes an RPC style request /// </summary> /// <param name="rpc">The rpc instance.</param> /// <param name="request">The request message.</param> /// <param name="requestType">The request type</param> /// <param name="responseType">The response type</param> /// <param name="cancellationToken">The cancellation token</param> /// <returns>The response</returns> public static object Request( this IRpc rpc, object request, Type requestType, Type responseType, CancellationToken cancellationToken = default ) { Preconditions.CheckNotNull(rpc, "rpc"); return(rpc.RequestAsync(request, requestType, responseType, cancellationToken) .GetAwaiter() .GetResult()); }
public async Task ReturnsNotFoundGivenNoRemainingItems() { //Arrange var request = new SimpleMessageParam("test"); var mockResponse = new SimpleMessageResponse { Timespam = new TimeSpan(1000), ResponseText = "test" }; _rpc.RequestAsync <SimpleMessageParam, SimpleMessageResponse>(Arg.Any <SimpleMessageParam>(), Arg.Any <CancellationToken>()).Returns(mockResponse); var service = new RequestService(_rpc, _logger); //Act var result = await service.SimpleMessageRequest(request, CancellationToken.None); //Assert Assert.Equal("test", result.ResponseText); Assert.Equal(new TimeSpan(1000), result.Timespam); }
public async Task Should_be_able_to_send_struct() { var request = DateTime.UtcNow; var requestType = typeof(DateTime); var responseType = typeof(long); rpc.RequestAsync <DateTime, long>(Arg.Any <DateTime>(), configure).Returns(42); var response = await rpc.RequestAsync(request, requestType, responseType, configure); response.Should().Be(42); #pragma warning disable 4014 rpc.Received() .RequestAsync <DateTime, long>( Arg.Is(request), Arg.Is(configure), Arg.Any <CancellationToken>() ); #pragma warning restore 4014 }
public async Task <SimpleMessageResponse> SimpleMessageRequest(SimpleMessageParam request, CancellationToken cancellationToken) { request.CreateTimestamp = DateTimeOffset.Now; _logger.LogInformation($"Сообщение отправлено в очередь в { DateTimeOffset.Now }"); return(await _rpc.RequestAsync <SimpleMessageParam, SimpleMessageResponse>(request, cancellationToken)); }