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); }
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); } }