Beispiel #1
0
            public override void OnFileReport(ClientSession session, FileRequestClientContext FileRequestClientContext, FileReport report)
            {
                var context = (FileAsyncContext)FileRequestClientContext;

                context.Buffer.AddRange(report.Content);

                if (report.EndOfFile)
                {
                    context.Files.Add(context.Buffer.ToArray());
                    context.Buffer.Clear();
                    context.FileIndex++;
                    context.Tcs.SetResult(context.Files.Last());
                    if (context.FileIndex == context.Files.Count)
                    {
                        (context as BarsFileAsyncContext)?.ParentContext.Tcs.SetResult(context.Files);
                        (context as TicksFileAsyncContext)?.ParentContext.Tcs.SetResult(context.Files);
                        return;
                    }
                }

                var request = new FileRequest(0);

                request.FileId = context.FileIds[context.FileIndex];
                request.Chunk  = ++context.ChunkIndex;
                session.SendFileRequest(context, request);
            }
Beispiel #2
0
            public override void OnFileReject(ClientSession session, FileRequestClientContext FileRequestClientContext, QueryReject reject)
            {
                var barsContext = FileRequestClientContext as BarsFileAsyncContext;

                if (barsContext != null)
                {
                    var exception = new Exception(reject.Message);
                    barsContext.Tcs.SetException(exception);
                    barsContext.ParentContext.Tcs.SetException(exception);
                }
            }