public void DeleteModels(List <LocalModel> models) { ModelSaberOnlineUserControl onlineUserControl = PropertyHelper.GetPropValue <ModelSaberOnlineUserControl>(MainWindow.ViewModel, $"{ModelType}OnlineUserControl"); List <OnlineModel> onlineModels = new List <OnlineModel>(); foreach (LocalModel model in models) { LocalModels.Models.Remove(model); App.ModelSaberApi.DeleteModel(model); OnlineModel onlineModel = onlineUserControl.ViewModel.OnlineModels?.Models.FirstOrDefault(x => x.Id == model.Id || x.Name == model.Name && model.Id == -1); if (onlineModel != null) { onlineModels.Add(onlineModel); } } if (onlineModels.Count == models.Count) { onlineModels.ForEach(x => x.IsDownloaded = false); } else { ModelChanged = true; } LocalModels = App.ModelSaberApi.RefreshLocalPages(LocalModels); }
public MainWindowViewModel(MainWindow mainWindow) { MainWindow = mainWindow; BeatmapLocalUserControl = new BeatmapLocalUserControl(mainWindow); BeatmapOnlineUserControl = new BeatmapOnlineUserControl(mainWindow); SettingsUserControl = new SettingsUserControl(mainWindow); BeatmapLocalDetailsUserControl = new BeatmapLocalDetailsUserControl(mainWindow); BeatmapOnlineDetailsUserControl = new BeatmapOnlineDetailsUserControl(mainWindow); SaberOnlineUserControl = new ModelSaberOnlineUserControl(mainWindow, ModelType.Saber); SaberLocalUserControl = new ModelSaberLocalUserControl(mainWindow, ModelType.Saber); AvatarOnlineUserControl = new ModelSaberOnlineUserControl(mainWindow, ModelType.Avatar); AvatarLocalUserControl = new ModelSaberLocalUserControl(mainWindow, ModelType.Avatar); PlatformOnlineUserControl = new ModelSaberOnlineUserControl(mainWindow, ModelType.Platform); PlatformLocalUserControl = new ModelSaberLocalUserControl(mainWindow, ModelType.Platform); BloqOnlineUserControl = new ModelSaberOnlineUserControl(mainWindow, ModelType.Bloq); BloqLocalUserControl = new ModelSaberLocalUserControl(mainWindow, ModelType.Bloq); ModelSaberOnlineDetailsUserControl = new ModelSaberOnlineDetailsUserControl(mainWindow); ModelSaberLocalDetailsUserControl = new ModelSaberLocalDetailsUserControl(mainWindow); NavigationBeatmapsUserControl = new NavigationBeatmapsUserControl(); NavigationSabersUserControl = new NavigationModelSaberUserControl(ModelType.Saber); NavigationAvatarsUserControl = new NavigationModelSaberUserControl(ModelType.Avatar); NavigationPlatformsUserControl = new NavigationModelSaberUserControl(ModelType.Platform); NavigationBloqsUserControl = new NavigationModelSaberUserControl(ModelType.Bloq); DownloadsUserControl = new DownloadsUserControl(); NavigationBeatmapsUserControl.ViewModel.LocalEvent += NavigationBeatmaps_LocalEvent; NavigationBeatmapsUserControl.ViewModel.OnlineEvent += NavigationBeatmaps_OnlineEvent; NavigationSabersUserControl.ViewModel.LocalEvent += NavigationSabers_LocalEvent; NavigationSabersUserControl.ViewModel.OnlineEvent += NavigationSabers_OnlineEvent; NavigationAvatarsUserControl.ViewModel.LocalEvent += NavigationAvatars_LocalEvent; NavigationAvatarsUserControl.ViewModel.OnlineEvent += NavigationAvatars_OnlineEvent; NavigationPlatformsUserControl.ViewModel.LocalEvent += NavigationPlatforms_LocalEvent; NavigationPlatformsUserControl.ViewModel.OnlineEvent += NavigationPlatforms_OnlineEvent; NavigationBloqsUserControl.ViewModel.LocalEvent += NavigationBloqs_LocalEvent; NavigationBloqsUserControl.ViewModel.OnlineEvent += NavigationBloqs_OnlineEvent; App.BeatSaverApi.DownloadStarted += BeatSaverApi_DownloadStarted; App.BeatSaverApi.DownloadFailed += BeatSaverApi_DownloadFailed; App.ModelSaberApi.DownloadStarted += ModelSaberApi_DownloadStarted; App.ModelSaberApi.DownloadFailed += ModelSaberApi_DownloadFailed; Updater = new Updater("casperb123", "BeatManager", Resources.GitHubToken); Updater.UpdateAvailable += Updater_UpdateAvailable; Updater.DownloadingStarted += Updater_DownloadingStarted; Updater.DownloadingProgressed += Updater_DownloadingProgressed; Updater.DownloadingCompleted += Updater_DownloadingCompleted; Updater.DownloadingFailed += Updater_DownloadingFailed; Updater.InstallationFailed += Updater_InstallationFailed; CheckForUpdates(); }
public ModelSaberOnlineUserControlViewModel(MainWindow mainWindow, ModelSaberOnlineUserControl userControl, ModelType modelType) { MainWindow = mainWindow; this.userControl = userControl; ModelType = modelType; SelectedModels = new List <OnlineModel>(); SortTypes = Enum.GetValues(typeof(Sort)).Cast <Sort>().ToList(); Filters = new List <Filter>(); FilterTypes = Enum.GetValues(typeof(FilterType)).Cast <FilterType>().ToList(); App.ModelSaberApi.DownloadCompleted += ModelSaberApi_DownloadCompleted; }
public void DeleteModel(LocalModel model) { ModelSaberOnlineUserControl onlineUserControl = PropertyHelper.GetPropValue <ModelSaberOnlineUserControl>(MainWindow.ViewModel, $"{ModelType}OnlineUserControl"); OnlineModel onlineModel = onlineUserControl.ViewModel.OnlineModels?.Models.FirstOrDefault(x => x.Id == model.Id || x.Name == model.Name && model.Id == -1); App.ModelSaberApi.DeleteModel(model); LocalModels.Models.Remove(model); if (onlineModel is null) { ModelChanged = true; } else { onlineModel.IsDownloaded = false; } LocalModels = App.ModelSaberApi.RefreshLocalPages(LocalModels); }
public void RefreshData() { ModelSaberOnlineUserControl onlineUserControl = PropertyHelper.GetPropValue <ModelSaberOnlineUserControl>(mainWindow.ViewModel, $"{Model.ModelType}OnlineUserControl"); onlineUserControl.ViewModel.ModelDetails(Model, false); }
public void DeleteModel() { ModelSaberOnlineUserControl onlineUserControl = PropertyHelper.GetPropValue <ModelSaberOnlineUserControl>(mainWindow.ViewModel, $"{Model.ModelType}OnlineUserControl"); onlineUserControl.ViewModel.DeleteModel(Model); }
public async Task DownloadModel() { ModelSaberOnlineUserControl onlineUserControl = PropertyHelper.GetPropValue <ModelSaberOnlineUserControl>(mainWindow.ViewModel, $"{Model.ModelType}OnlineUserControl"); await onlineUserControl.ViewModel.DownloadModel(Model); }
public void Back() { ModelSaberOnlineUserControl onlineUserControl = PropertyHelper.GetPropValue <ModelSaberOnlineUserControl>(mainWindow.ViewModel, $"{Model.ModelType}OnlineUserControl"); mainWindow.userControlMain.Content = onlineUserControl; }