Search code examples
c#reactive-programminggrpc

How to convert stream code to observable(reactive) in c#?


I have this code and it worked. How can I convert this code to reactive programming code? This code worked with grpc server send stream file to grpc server and get result of operation in message

foreach (var item in uploadedFiles)
{
    using (var call = client.TransferFiles(item))
    {
        while (await call.ResponseStream.MoveNext())
        {
            var currentFile = call.ResponseStream.Current;
            System.Diagnostics.Debug.WriteLine(currentFile .Message);
        }
    }
}

client.TransferFiles(item) implement in grpc server


Solution

  • your code in Rx like this :

    uploadedFiles.ToObservable().Subscribe(uploadedFile =>
                {
                    var call = client.TransferFiles(uploadedFile);
                    while (call.ResponseStream.MoveNext())
                    {
                        var currentFile = call.ResponseStream.Current;
                        System.Diagnostics.Debug.WriteLine(currentFile.Message);
                    }
                });