Example #1
0
        public static async Task <DocumentViewModel> LoadFromFileAsync(MainPageViewModel mainPageViewModel, IStorageFile file, string token)
        {
            var answer = new DocumentViewModel(mainPageViewModel);
            await answer.LoadFromFileAsync(file, token, assignPayloadWithoutLoading : true);

            return(answer);
        }
        public static async Task <MainPageViewModel> LoadAsync()
        {
            var viewModel = new MainPageViewModel();

            viewModel.HostConfigEditor = await HostConfigEditorViewModel.LoadAsync(viewModel);

            viewModel.HostConfigEditor.HostConfigChanged += viewModel.HostConfigEditor_HostConfigChanged;

            var tokens = await GetFileTokensAsync();

            ObservableCollection <DocumentViewModel> documents = new ObservableCollection <DocumentViewModel>();

            foreach (string token in tokens)
            {
                try
                {
                    IStorageFile file;
                    if (token.StartsWith("SampleFile:"))
                    {
                        string fileName = token.Substring("SampleFile:".Length);
                        file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Samples/" + fileName));
                    }
                    else
                    {
                        file = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(token);
                    }

                    if (file != null)
                    {
                        documents.Add(await DocumentViewModel.LoadFromFileAsync(viewModel, file, token));
                    }
                }
                catch { }
            }

            if (documents.Count == 0)
            {
                try
                {
                    var samplesFolder = await Package.Current.InstalledLocation.GetFolderAsync("Samples");

                    foreach (var file in await samplesFolder.GetFilesAsync())
                    {
                        if (file.FileType.ToLower().Equals(".json"))
                        {
                            documents.Add(await DocumentViewModel.LoadFromFileAsync(viewModel, file, "SampleFile:" + file.Name));
                        }
                    }
                }
                catch { }
            }

            viewModel.OpenDocuments   = documents;
            viewModel.CurrentDocument = documents.FirstOrDefault();
            return(viewModel);
        }
        public async void OpenDocument()
        {
            try
            {
                FileOpenPicker openPicker = new FileOpenPicker();
                openPicker.ViewMode = PickerViewMode.List;
                openPicker.FileTypeFilter.Add(".json");

                StorageFile file = await openPicker.PickSingleFileAsync();

                if (file != null)
                {
                    string token = StorageApplicationPermissions.FutureAccessList.Add(file);
                    OpenDocuments.Add(await DocumentViewModel.LoadFromFileAsync(this, file, token));
                    CurrentDocument = OpenDocuments.LastOrDefault();
                    SaveFileTokensAsync();
                }
                else
                {
                }
            }
            catch { }
        }