private async Task <bool> VerifyDataAsync( [NotNull] QualityVerificationGrpc.QualityVerificationGrpcClient rpcClient, [NotNull] CancellationTokenSource cancellationSource, [CanBeNull] SchemaMsg schemaMsg = null) { using (var call = rpcClient.VerifyDataQuality()) { var initialRequest = new DataVerificationRequest { Request = VerificationRequest, Schema = schemaMsg }; await call.RequestStream.WriteAsync(initialRequest); while (await call.ResponseStream.MoveNext(cancellationSource.Token)) { var responseMsg = call.ResponseStream.Current; if (responseMsg.SchemaRequest != null || responseMsg.DataRequest != null) { await ProvideDataToServer(responseMsg, call.RequestStream, cancellationSource); } else { HandleProgressMsg(responseMsg.Response); } } } return(true); }
public async Task <ServiceCallStatus> ExecuteAndProcessMessagesAsync( [NotNull] QualityVerificationGrpc.QualityVerificationGrpcClient rpcClient, bool provideDataFromClient = false, SchemaMsg schemaMsg = null) { return(provideDataFromClient ? await TryExecuteAsync(c => VerifyDataAsync(rpcClient, c, schemaMsg)) : await TryExecuteAsync(c => VerifyAsync(rpcClient, c))); }