예제 #1
0
        private async Task <Game> LoadTempGame()
        {
            Game          game   = null;
            StorageFolder folder = ApplicationData.Current.LocalFolder;

            try
            {
                StorageFile tempFile = await folder.GetFileAsync(@"temp.quno");

                try
                {
                    UniversalGameSerializer serializer = new UniversalGameSerializer();
                    game = await serializer.LoadFromFileAsync(tempFile);
                }
                catch (Exception)
                {
                    // Nothing to do here if we can't deserialize the game,
                    // so allow this method to return null and thus start a new game.
                }
                finally
                {
                    await tempFile.DeleteAsync();
                }
            }
            catch (FileNotFoundException)
            {
                // There must not be saved game, so allow this method to retun null.
            }

            return(game);
        }
예제 #2
0
        private async void SaveTempGame(Game game)
        {
            StorageFolder folder   = ApplicationData.Current.LocalFolder;
            StorageFile   tempFile = await folder.CreateFileAsync(@"temp.quno", CreationCollisionOption.ReplaceExisting);

            UniversalGameSerializer serializer = new UniversalGameSerializer();

            serializer.SaveToFileAsync(game, tempFile);

            return;
        }
예제 #3
0
        private async void ButtonOpen_Click(object sender, RoutedEventArgs e)
        {
            FileOpenPicker fileOpenPicker = new FileOpenPicker();

            fileOpenPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            fileOpenPicker.FileTypeFilter.Add(@".quno");

            StorageFile file = await fileOpenPicker.PickSingleFileAsync();

            if (file != null)
            {
                UniversalGameSerializer serializer = new UniversalGameSerializer();
                var game = await serializer.LoadFromFileAsync(file);

                this.viewModel.OpenGame(game);
            }

            return;
        }
예제 #4
0
        private async void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            FileSavePicker fileSavePicker = new FileSavePicker();

            fileSavePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            fileSavePicker.FileTypeChoices.Add(this.fileFilter, new List <string>()
            {
                ".quno"
            });
            fileSavePicker.SuggestedFileName = this.fileSuggestedName;

            StorageFile file = await fileSavePicker.PickSaveFileAsync();

            if (file != null)
            {
                UniversalGameSerializer serializer = new UniversalGameSerializer();
                serializer.SaveToFileAsync(this.viewModel.Game, file);
            }

            return;
        }