Example #1
0
        /// <summary>
        /// Retrieves a list of all the game data history stored in local storage.
        /// </summary>
        /// <returns></returns>
        public async Task <GameDataList> RetrieveGameData()
        {
            var data = new GameDataList();

            var dataFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(
                BaseFileName,
                CreationCollisionOption.OpenIfExists);


            if (dataFile == null)
            {
                return(data);
            }


            using (var dataInputStream = await dataFile.OpenStreamForReadAsync())
            {
                try
                {
                    var binaryReader = new BinaryReader(dataInputStream);

                    data.Read(binaryReader);
                }
                catch (EndOfStreamException)
                {
                    // Swallow this exception which is thrown when you try to deserialize an empty obj.
                }
            }
            return(data);
        }
Example #2
0
        /// <summary>
        /// Adds the pending game data to local storage.
        /// </summary>
        /// <returns></returns>
        public async Task StoreGameData(GameData dataToSave)
        {
            if (dataToSave.GameDuration <= 0 ||
                dataToSave.GameHost == null ||
                dataToSave.GameMoves == null ||
                dataToSave.PlayerDictionary == null ||
                dataToSave.Winner == null)
            {
#if DEBUG
                throw new ArgumentException("Invalid game data.");
#else
                return;
#endif
            }


            //
            // Retrieve existing data in storage so that it isn't overwritten.
            //

            _gameDataList._GameData.Clear();
            _gameDataList = await RetrieveGameData();

            _gameDataList._GameData.Add(dataToSave);


            //
            // Now write the data to the file.
            //

            var localFolder = ApplicationData.Current.LocalFolder;

            var file = await localFolder.CreateFileAsync(
                BaseFileName,
                CreationCollisionOption.OpenIfExists);

            using (var streamFile = await file.OpenStreamForWriteAsync())
            {
                var binaryWriter = new BinaryWriter(streamFile);

                _gameDataList.Write(binaryWriter);
            }
        }
Example #3
0
        /// <summary>
        /// Adds the pending game data to local storage.
        /// </summary>
        /// <returns></returns>
        public async Task StoreGameData(GameData dataToSave)
        {
            if (dataToSave.GameDuration <= 0 ||
                dataToSave.GameHost == null ||
                dataToSave.GameMoves == null ||
                dataToSave.PlayerDictionary == null ||
                dataToSave.Winner == null)
            {
#if DEBUG
                throw new ArgumentException("Invalid game data.");
#else
                return;
#endif
            }


            //
            // Retrieve existing data in storage so that it isn't overwritten.
            //

            _gameDataList._GameData.Clear();
            _gameDataList = await RetrieveGameData();
            _gameDataList._GameData.Add(dataToSave);


            //
            // Now write the data to the file.
            //

            var localFolder = ApplicationData.Current.LocalFolder;

            var file = await localFolder.CreateFileAsync(
                BaseFileName,
                CreationCollisionOption.OpenIfExists);

            using (var streamFile = await file.OpenStreamForWriteAsync())
            {
                    var binaryWriter = new BinaryWriter(streamFile);

                    _gameDataList.Write(binaryWriter);
            }
        }
Example #4
0
 private GameDataHistory()
 {
     _gameDataList = new GameDataList();
 }
        public void Initialize()
        {
            _testGameMoveDataPoint = new GameMoveDataPoint { MoveType = MoveType.Dump, Player = "NewPlayer", TimeOfMove = 5 };

            _playerGameStats = new PlayerGameStats
                {
                    AvgTimeBetweenDumps = 10,
                    AvgTimeBetweenPeels = 5,
                    IsWinner = true,
                    NumberOfDumps = 3,
                    NumberOfPeels = 0,
                    PerformedFirstPeel = false,
                    RawGameData = new List<GameMoveDataPoint>() {_testGameMoveDataPoint, _testGameMoveDataPoint, _testGameMoveDataPoint}
                };

            _gameData = new GameData {GameDuration = 10, GameHost = "GameHost", GameStartTime = DateTime.Now, Winner = "NewPlayer"};
            _gameData.GameMoves.Add(_testGameMoveDataPoint);
            _gameData.GameMoves.Add(_testGameMoveDataPoint);
            _gameData.PlayerDictionary.Add("NewPlayer", _playerGameStats);
            _gameData.PlayerDictionary.Add("NewPlayer2", _playerGameStats);

            _gameDataList = new GameDataList();
            _gameDataList._GameData.Add(_gameData);
            _gameDataList._GameData.Add(_gameData);

            _stringPacketV1 = new PacketV1
                {
                    PacketType = PacketType.c_QueryIfAliasAvailable,
                    Data = "Mobius",
                    Recipients = null,
                    Sender = "*****@*****.**"
                };

            _IBinarySerializablePacketV1 = new PacketV1
            {
                PacketType = PacketType.c_UploadGameData,
                Data = _gameData,
                Recipients = null,
                Sender = "*****@*****.**"
            };

            _packetBase = new PacketBase
                {
                    PacketVersion = PacketVersion.Version1,
                    Data = _stringPacketV1
                };
        }
Example #6
0
 private GameDataHistory()
 {
     _gameDataList = new GameDataList();
 }
Example #7
0
        /// <summary>
        /// Retrieves a list of all the game data history stored in local storage.
        /// </summary>
        /// <returns></returns>
        public async Task<GameDataList> RetrieveGameData()
        {
            var data = new GameDataList();

            var dataFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(
                BaseFileName,
                CreationCollisionOption.OpenIfExists);


            if (dataFile == null)
            {
                return data;
            }


            using (var dataInputStream = await dataFile.OpenStreamForReadAsync())
            {
                try
                {
                    var binaryReader = new BinaryReader(dataInputStream);

                    data.Read(binaryReader);
                }
                catch (EndOfStreamException)
                {
                    // Swallow this exception which is thrown when you try to deserialize an empty obj.
                }
            }
            return data;
        }