public Task <string> ShowFileSelectorAsync(object context, string title, string message, FileSelectorDialogSettings settings) { return(ShowDialogAsync(context, new FileSelectorViewModel(title, message, settings), new FileSelectorView())); }
private async Task ChangeBuildsSavePath() { var dialogSettings = new FileSelectorDialogSettings { DefaultPath = Options.BuildsSavePath, IsFolderPicker = true, ValidationSubPath = SerializationConstants.EncodedDefaultBuildName }; var path = await _dialogCoordinator.ShowFileSelectorAsync(this, L10n.Message("Select build directory"), L10n.Message("Select the directory where builds will be stored.\n" + "It will be created if it does not yet exist."), dialogSettings); if (path == null) return; var message = L10n.Message("There are unsaved builds. Do you want to save them before changing build directory?\n\n" + "If you cancel, the build directory will not be changed."); if (!await _buildsControlViewModel.HandleUnsavedBuilds(message, true)) return; _persistentData.SaveFolders(); Options.BuildsSavePath = path; await _persistentData.ReloadBuildsAsync(); }
public async Task InitializeAsync(IDialogCoordinator dialogCoordinator) { DialogCoordinator = dialogCoordinator; if (PersistentData.Options.BuildsSavePath == null) { if (AppData.IsPortable) { PersistentData.Options.BuildsSavePath = AppData.GetFolder("Builds"); } else { // Ask user for path. Default: AppData.GetFolder("Builds") var dialogSettings = new FileSelectorDialogSettings { DefaultPath = AppData.GetFolder("Builds"), IsFolderPicker = true, ValidationSubPath = GetLongestRequiredSubpath(), IsCancelable = false }; if (!DeserializesBuildsSavePath) { dialogSettings.AdditionalValidationFunc = path => Directory.Exists(path) && Directory.EnumerateFileSystemEntries(path).Any() ? L10n.Message("Directory must be empty.") : null; } PersistentData.Options.BuildsSavePath = await dialogCoordinator.ShowFileSelectorAsync(PersistentData, L10n.Message("Select build directory"), L10n.Message("Select the directory where builds will be stored.\n" + "It will be created if it does not yet exist. You can change it in the settings later."), dialogSettings); } } Directory.CreateDirectory(PersistentData.Options.BuildsSavePath); await DeserializeAdditionalFilesAsync(); PersistentData.EquipmentData = await DeserializeEquipmentData(); PersistentData.StashItems.AddRange(await DeserializeStashItemsAsync()); }