FullTextLineWriter
using Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Writers;
using System;
using System.IO;
using System.Threading;
namespace Relativity.DataExchange.Export.VolumeManagerV2.Metadata.Images.Lines
{
    public class FullTextLineWriter : IFullTextLineWriter
    {
        public void WriteLine(string batesNumber, long pageOffset, IRetryableStreamWriter writer, TextReader textReader, CancellationToken token)
        {
            writer.WriteChunk("FT,", token);
            writer.WriteChunk(batesNumber, token);
            writer.WriteChunk(",1,1,", token);
            if (pageOffset == -9223372036854775808) {
                for (int num = textReader.Read(); num != -1; num = textReader.Read()) {
                    writer.WriteChunk(GetLfpFullTextTransform(num), token);
                }
            } else {
                for (int i = 0; i < pageOffset; i++) {
                    int num2 = textReader.Read();
                    if (num2 == -1)
                        break;
                    writer.WriteChunk(GetLfpFullTextTransform(num2), token);
                }
            }
            writer.WriteChunk(Environment.NewLine, token);
            writer.FlushChunks(token);
        }
        private string GetLfpFullTextTransform(int c)
        {
            switch (c) {
            case 10:
            case 32:
                return "|0|0|0|0^";
            case 44:
                return "";
            default:
                return Convert.ToChar(c).ToString();
            }
        }
    }
}