예제 #1
0
        public World First(string simulationId)
        {
            var filePath = _filePathBuilder.Build(simulationId);

            var snapshotAsJson = ReadNthLineFromFile(filePath, 0);
            var world          = JsonConvert.DeserializeObject <World>(snapshotAsJson);

            return(world);
        }
예제 #2
0
        public async Task SaveAsync(World world, string simulationId)
        {
            var filePath = _filePathBuilder.Build(simulationId);

            EnsureDirectoryExists(_filePathBuilder);
            EnsureFileExists(filePath);

            await using var file = File.AppendText(filePath);
            var worldAsJson = JsonConvert.SerializeObject(world);
            await file.WriteLineAsync(worldAsJson);
        }