public ComputerImportWindow(ComputerImportViewModel importViewModel) { InitializeComponent(); this.ViewModel = importViewModel; this.DataContext = this.ViewModel; }
internal void OpenComputerImportWindow() { if (SessionPath.IsSessionPathValid() == false) { ViewModel.UserMessage = "Cannot import: You must set your path to Session before importing maps."; return; } ComputerImportViewModel importViewModel = new ComputerImportViewModel(); ComputerImportWindow importWindow = new ComputerImportWindow(importViewModel); importWindow.ShowDialog(); ViewModel.ReloadAvailableMapsInBackground(); // reload list of available maps as it may have changed }
/// <summary> /// Logic for determining how to install downloaded asset. (maps and textures are installed differently) /// </summary> /// <param name="assetToInstall"> asset being installed </param> /// <param name="pathToDownload"> absolute path to the downloaded asset file </param> private void InstallDownloadedAsset(AssetViewModel assetToInstall, string pathToDownload) { if (assetToInstall.AssetCategory == AssetCategory.Maps.Value) { // import map ComputerImportViewModel importViewModel = new ComputerImportViewModel() { IsZipFileImport = true, PathInput = pathToDownload, AssetToImport = assetToInstall.Asset }; Task <BoolWithMessage> importTask = importViewModel.ImportMapAsync(); importTask.Wait(); if (importTask.Result.Result) { UserMessage = $"Successfully installed {assetToInstall.Name}!"; } else { UserMessage = $"Failed to install {assetToInstall.Name}: {importTask.Result.Message}"; Logger.Warn($"install failed: {importTask.Result.Message}"); } } else { // replace texture TextureReplacerViewModel replacerViewModel = new TextureReplacerViewModel() { PathToFile = pathToDownload, AssetToInstall = assetToInstall.Asset }; replacerViewModel.MessageChanged += TextureReplacerViewModel_MessageChanged; replacerViewModel.ReplaceTextures(); replacerViewModel.MessageChanged -= TextureReplacerViewModel_MessageChanged; } }