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);
        }
예제 #2
0
        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;
        }