public async Task WriteAsync(string fileName, PTurnData[] pTurnDataArr)
        {
            if (string.IsNullOrWhiteSpace(fileName) ||
                pTurnDataArr == null || pTurnDataArr.Length == 0)
            {
                throw new ArgumentException();
            }

            if (!ProcessedDataFilesStorage.Exists(fileName))
            {
                await CreateDataFileAsync(fileName);
            }

            using var st = ProcessedDataFilesStorage.GetWriteStream(fileName);
            st.Position  = st.Length;

            foreach (var pt in pTurnDataArr)
            {
                var s   = '\t';
                var str = string.Concat(Environment.NewLine, pt.FacedUpCards, s, pt.Hand, s, pt.PrevTurns,
                                        s, pt.ActiveCards, s, pt.InactiveCards);
                await st.WriteAsync(Encoding.UTF8.GetBytes(str));
            }

            await st.DisposeAsync();
        }
        public async Task <bool> CreateDataFileAsync(string fileName)
        {
            var columns = string.Join('\t', PDataFileStructure.Columns);
            var result  = await ProcessedDataFilesStorage.CreateFileAsync(fileName, Encoding.UTF8.GetBytes(columns));

            return(result);
        }
        public IAsyncEnumerable <PTurnData[]> GetAsyncChunks(string fileName)
        {
            if (string.IsNullOrWhiteSpace(fileName))
            {
                throw new ArgumentException();
            }

            var chunks = ProcessedDataFilesStorage.GetAsyncChunks(fileName);

            return(new PTurnDataFilesAsyncEnum(chunks, Options.BufferSize, PDataFileStructure));
        }
 public bool Exists(string fileName)
 {
     return(ProcessedDataFilesStorage.Exists(fileName));
 }
 public async Task <Storage.FileInfo[]> GetFilesInfoAsync()
 {
     return(await ProcessedDataFilesStorage.GetFilesInfo());
 }