async Task AddLocalFolder() { var path = await _dialogManager.BrowseForFolder(); if (string.IsNullOrWhiteSpace(path)) { return; } await Task.Run(async() => { bool hasAny; lock (LibrarySetup.LocalGroup.Children) hasAny = LibrarySetup.GetLocalMissions() .Any(x => Tools.FileUtil.ComparePathsOsCaseSensitive(x.Model.Path, path)); if (hasAny) { await _dialogManager.MessageBox(new MessageBoxDialogParams("You've already added this folder")).ConfigureAwait(false); return; } if (!GetMissionSubfolders(path).Any(Directory.Exists)) { await _dialogManager.MessageBox( new MessageBoxDialogParams( "Please select a folder that contains a Missions and/or MPMissions subfolder", "Invalid folder, aborting")).ConfigureAwait(false); return; } var item = LibrarySetup.CreateLocalItem(Path.GetFileName(path), false, path); _missionList.LocalMissionsContainers.AddLocked(item.Model); DomainEvilGlobal.Settings.RaiseChanged(); }); }
public async Task <string> Handle(BrowseFolder request) { // open dialog, ask for folder var folder = await _dialogManager.BrowseForFolder(request.Options.DefaultPath, "Select folder for setting") .ConfigureAwait(false); if (folder == null) { throw new OperationCanceledException("The user cancelled the operation"); } return(folder); }
public async Task <string> Handle(PrepareFolder request) { // open dialog, ask for folder var folder = await _dialogManager.BrowseForFolder(title : "Select folder to upload to the withSIX network") .ConfigureAwait(false); if (folder == null) { throw new OperationCanceledException("The user cancelled the operation"); } // TODO: Restructure suggestions etc? _folderHandler.WhiteListFolder(folder.ToAbsoluteDirectoryPath()); return(folder); }