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 OnTicksFileReport(ClientSession session, TicksFileRequestClientContext TicksFileRequestClientContext, QueryTicksFileReport report) { var context = (QueryQuoteHistoryTicksFilesAsyncContext)TicksFileRequestClientContext; if (report.Files.Length > 0) { var fileContext = new TicksFileAsyncContext(context); for (int i = 0; i < report.Files.Length; i++) { fileContext.FileIds.Add(report.Files[i].FileId); } var request = new FileRequest(0); request.FileId = fileContext.FileIds[0]; request.Chunk = 0; session.SendFileRequest(fileContext, request); } else { context.Tcs.SetResult(new List <byte[]>()); } }