Beispiel #1
0
        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();
            });
        }
Beispiel #2
0
 public override void Setup()
 {
     lock (_setupLock) {
         IsLoading = true;
         ItemsView = null;
         if (LibrarySetup != null)
         {
             LibrarySetup.Dispose();
         }
         LibrarySetup = new MissionLibrarySetup(this, Game, _missionList, _settings, _eventBus);
         SetupGroups();
         InitialSelectedItem();
         IsLoading = false;
     }
 }