public SettingsViewModel() { if (DesignerProperties.IsInDesignTool) { return; } _progress = new ProgressAggregator(); _progress.PropertyChanged += OnProgressAggregatorPropertyChanged; _clearCacheWorker = new BackgroundWorker(); _clearCacheWorker.DoWork += ClearCartridgeCacheCore; _appSettings = App.Current.Model.Settings; _appSettings.PropertyChanged += OnAppSettingsPropertyChanged; Model.CartridgeStore.PropertyChanged += OnCartridgeStorePropertyChanged; ICartridgeProvider oneDrive = GetOneDriveProvider(); oneDrive.LinkAborted += OnOneDriveProviderLinkAborted; oneDrive.PropertyChanged += OnOneDriveProviderPropertyChanged; SupportedLengthUnitsItemsSource = new List <DistanceUnit>() { DistanceUnit.Meters, DistanceUnit.Feet }; }
private void RunProviderAction(ICartridgeProvider provider) { if (provider.IsLinked) { if (provider.IsSyncing) { // The provider is syncing. Show it. System.Windows.MessageBox.Show(String.Format("Your {0} account is linked, and the app is currently looking for or downloading cartridges.", provider.ServiceName), provider.ServiceName, MessageBoxButton.OK); } else { // The provider is linked but no cartridge has been downloaded yet. // Show it. if (System.Windows.MessageBox.Show(String.Format("Your {0} account is linked, but no cartridge has been downloaded yet.\nDo you want to sync again?", provider.ServiceName), provider.ServiceName, MessageBoxButton.OKCancel) == System.Windows.MessageBoxResult.OK) { provider.BeginSync(); } } } else { // The provider is not linked: try to do it. App.Current.ViewModel.NavigationManager.NavigateToProviderLinkWizard(provider); } }
private void OnProviderPropertyChanged(object sender, PropertyChangedEventArgs e) { ICartridgeProvider provider = (ICartridgeProvider)sender; if (AutoSyncProvidersOnLink && e.PropertyName == "IsLinked" && provider.IsLinked) { // The provider is now linked. Start syncing. provider.BeginSync(); } else if (e.PropertyName == "IsSyncing") { _isBusyAggregator[provider] = provider.IsSyncing; } }
private void DeleteCartridge(CartridgeTag tag) { /// Makes a confirmation message. ICartridgeProvider provider = Model.CartridgeStore.GetCartridgeTagProvider(tag); int savegameCount = tag.Savegames.Count(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.AppendFormat("Geowigo will delete {0} and all its contents", tag.Title); if (savegameCount > 0) { sb.AppendFormat(", including {0} savegames.", savegameCount); } else { sb.Append("."); } sb.AppendLine(); sb.AppendLine(); if (provider != null) { sb.AppendFormat( "Since {0} was downloaded from {1}, it may be downloaded again the next time Geowigo will sync with {1}, unless you remove it from the Geowigo folder on your {1}.", tag.Title, provider.ServiceName); sb.AppendLine(); sb.AppendLine(); } sb.AppendLine("Do you want to continue?"); /// Asks for confirmation. if (System.Windows.MessageBox.Show(sb.ToString(), "Delete " + tag.Title, MessageBoxButton.OKCancel) != System.Windows.MessageBoxResult.OK) { // Cancels. return; } /// Deletes everything. Model.DeleteCartridgeAndContent(tag); }
private void AddProvider(ICartridgeProvider provider) { // Sanity check. if (_providers.Any(p => p.ServiceName == provider.ServiceName)) { throw new InvalidOperationException("A provider with same ServiceName already exists. " + provider.ServiceName); } // Registers event handlers. provider.PropertyChanged += new PropertyChangedEventHandler(OnProviderPropertyChanged); provider.SyncCompleted += new EventHandler <CartridgeProviderSyncEventArgs>(OnProviderSyncCompleted); provider.SyncProgress += new EventHandler <CartridgeProviderSyncEventArgs>(OnProviderSyncProgress); provider.SyncAborted += new EventHandler <CartridgeProviderFailEventArgs>(OnProviderSyncAborted); // Sets the provider up. provider.IsoStoreCartridgesPath = String.Format("{0}/From {1}", IsoStoreCartridgesPath, provider.ServiceName); provider.IsoStoreCartridgeContentPath = CartridgeTag.GlobalSavegamePath; // Adds the provider to the list. _providers.Add(provider); // Notifies the list has changed. OnPropertyChanged(new PropertyChangedEventArgs("Providers")); }
private void RunProviderAction(ICartridgeProvider provider) { if (provider.IsLinked) { if (provider.IsSyncing) { // The provider is syncing. Show it. System.Windows.MessageBox.Show(String.Format("Your {0} account is linked, and the app is currently looking for or downloading cartridges.", provider.ServiceName), provider.ServiceName, MessageBoxButton.OK); } else { // The provider is linked but no cartridge has been downloaded yet. // Show it. if (System.Windows.MessageBox.Show(String.Format("Your {0} account is linked, but no cartridge has been downloaded yet.\nDo you want to sync again?", provider.ServiceName), provider.ServiceName, MessageBoxButton.OKCancel) == System.Windows.MessageBoxResult.OK) { provider.BeginSync(); } } } else { // The provider is not linked: try to do it. provider.BeginLink(); } }