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
            };
        }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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();
			}
		}