Exemplo n.º 1
0
        public void IgnoresCuratorComment()
        {
            using var ms = new MemoryStream(Encoding.UTF8.GetBytes(TestResources.GameWithCuratorComment));
            var gameStream = new PgnGameStream(ms);
            var games      = gameStream.ParseRemainingGames();

            Assert.Equal(2, games.Count);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Processes the job.
        /// </summary>
        /// <param name="job">The job to process.</param>
        /// <returns>An awaitable task.</returns>
        public async Task ProcessAsync(ProcessJob job)
        {
            var    util    = new TransferUtility(job.S3);
            string tmpPath = Path.GetTempFileName();
            await util.DownloadAsync(new TransferUtilityDownloadRequest()
            {
                BucketName = job.SourceBucketName,
                Key        = job.SourceKey,
                FilePath   = tmpPath,
            });

            using var stream        = File.OpenRead(tmpPath);
            using var pgnGameStream = new PgnGameStream(stream);
            while (!pgnGameStream.EndOfStream)
            {
                var nextGame = pgnGameStream.ParseNextGame();
                var(game, rows) = Flattener.FlattenPgnGame(nextGame, job.DatasetId);
            }
        }