public override IEnumerable <ITextualStreamingRecord> ReadRecords() { string line; ITextualStreamingRecord record; while (true) { line = this.BaseTextReader.ReadLine(); if (SolderFascadeAccessor.DataTypeFascade.IsNullOrEmpty(line)) { yield break; } // TODO fix counts record = new TextualStreamingRecord(this.ParserState.lineIndex, this.ParserState.lineIndex, this.ParserState.characterIndex); record.Add(string.Empty, line); yield return(record); } }
public override IAsyncEnumerable <ITextualStreamingRecord> ReadRecordsAsync(CancellationToken cancellationToken) { return(AsyncEnumerable.CreateEnumerable <ITextualStreamingRecord>(() => AsyncEnumerable.CreateEnumerator(MoveNextAsync, Current, Dispose))); async Task <bool> MoveNextAsync(CancellationToken cancellationToken_) { bool hasNext; string line; ITextualStreamingRecord record; line = await this.BaseTextReader.ReadLineAsync(); if (SolderFascadeAccessor.DataTypeFascade.IsNullOrEmpty(line)) { record = null; hasNext = false; } else { // TODO fix counts record = new TextualStreamingRecord(this.ParserState.lineIndex, this.ParserState.lineIndex, this.ParserState.characterIndex); record.Add(string.Empty, line); hasNext = true; } this.ParserState.record = record; return(hasNext); } ITextualStreamingRecord Current() { return(this.parserState.record); } void Dispose() { // do nothing } }