示例#1
0
 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());
 }