Ejemplo n.º 1
0
        /// <summary>
        /// Loads the document.
        /// </summary>
        /// <param name="query">Query.</param>
        private void LoadDocument(NSMetadataQuery query)
        {
            Console.WriteLine("Loading Document...");

            // Take action based on the returned record count
            switch (query.ResultCount)
            {
            case 0:
                // Create a new document
                CreateNewDocument();
                break;

            case 1:
                // Gain access to the url and create a new document from
                // that instance
                NSMetadataItem item = (NSMetadataItem)query.ResultAtIndex(0);
                var            url  = (NSUrl)item.ValueForAttribute(NSMetadataQuery.ItemURLKey);

                // Load the document
                OpenDocument(url);
                break;

            default:
                // There has been an issue
                Console.WriteLine("Issue: More than one document found...");
                break;
            }
        }
Ejemplo n.º 2
0
        private void LoadDocument(NSMetadataQuery query)
        {
            if (query.ResultCount == 1)
            {
                this.logger.Debug("Query has 1 result.");

                var item = (NSMetadataItem)query.ResultAtIndex(0);
                var url  = (NSUrl)item.ValueForAttribute(NSMetadataQuery.ItemURLKey);
                var exerciseCloudDocument = new ExerciseCloudDocument(url);

                exerciseCloudDocument.Open(
                    (success) =>
                {
                    if (!success)
                    {
                        this.logger.Error("Failed to open document.");
                        this.exerciseDocument.OnError(new InvalidOperationException("Failed to open document."));
                    }
                    else
                    {
                        this.logger.Info("Loaded document.");
                    }
                });
            }
            else
            {
                var documentsFolder       = Path.Combine(this.ubiquityContainerUrl.Path, "Documents");
                var documentPath          = Path.Combine(documentsFolder, documentFilename);
                var url                   = new NSUrl(documentPath, isDir: false);
                var exerciseCloudDocument = new ExerciseCloudDocument(url)
                {
                    Data = GetDefaultExerciseDocument()
                };

                exerciseCloudDocument.Save(
                    exerciseCloudDocument.FileUrl,
                    UIDocumentSaveOperation.ForCreating,
                    success =>
                {
                    if (success)
                    {
                        this.logger.Info("Successfully created new document.");
                        this.exerciseDocument.OnNext(exerciseCloudDocument.Data);
                    }
                    else
                    {
                        this.logger.Error("Failed to create new document.");
                        this.exerciseDocument.OnError(new InvalidOperationException("Failed to create default document."));
                    }
                });
            }

            // register for document updates
            NSNotificationCenter.DefaultCenter.AddObserver(UIDocument.StateChangedNotification, this.OnDocumentUpdated);
        }
Ejemplo n.º 3
0
 private void LoadFavoritesDocument(NSMetadataQuery query)
 {
     if (query.ResultCount == 1)
     {
         var item = (NSMetadataItem)query.ResultAtIndex(0);
         var url  = (NSUrl)item.ValueForAttribute(NSMetadataQuery.ItemURLKey);
         _document = new FavoritesDocument(url);
         _document.Open(success =>
         {
             if (success && _document.Data != null)
             {
                 var favorites = _favoritesService.LoadFavorites();
                 if (favorites.LastUpdated < _document.Data.LastUpdated)
                 {
                     _favoritesService.SaveFavorites(_document.Data);
                 }
             }
         });
     }
     else if (query.ResultCount == 0)
     {
         SaveFavoritesDocument();
     }
 }
        private void LoadDocument(NSMetadataQuery query)
        {
            if (query.ResultCount == 1)
            {
                this.logger.Debug("Query has 1 result.");

                var item = (NSMetadataItem)query.ResultAtIndex(0);
                var url = (NSUrl)item.ValueForAttribute(NSMetadataQuery.ItemURLKey);
                var exerciseCloudDocument = new ExerciseCloudDocument(url);

                exerciseCloudDocument.Open(
                    (success) =>
                    {
                        if (!success)
                        {
                            this.logger.Error("Failed to open document.");
                            this.exerciseDocument.OnError(new InvalidOperationException("Failed to open document."));
                        }
                        else
                        {
                            this.logger.Info("Loaded document.");
                        }
                    });
            }
            else
            {
                var documentsFolder = Path.Combine(this.ubiquityContainerUrl.Path, "Documents");
                var documentPath = Path.Combine(documentsFolder, documentFilename);
                var url = new NSUrl(documentPath, isDir: false);
                var exerciseCloudDocument = new ExerciseCloudDocument(url)
                {
                    Data = GetDefaultExerciseDocument()
                };

                exerciseCloudDocument.Save(
                    exerciseCloudDocument.FileUrl,
                    UIDocumentSaveOperation.ForCreating,
                    success =>
                    {
                        if (success)
                        {
                            this.logger.Info("Successfully created new document.");
                            this.exerciseDocument.OnNext(exerciseCloudDocument.Data);
                        }
                        else
                        {
                            this.logger.Error("Failed to create new document.");
                            this.exerciseDocument.OnError(new InvalidOperationException("Failed to create default document."));
                        }
                    });
            }

            // register for document updates
            NSNotificationCenter.DefaultCenter.AddObserver(UIDocument.StateChangedNotification, this.OnDocumentUpdated);
        }
Ejemplo n.º 5
0
        void LoadDocument(NSMetadataQuery query)
        {
            Console.WriteLine("LoadDocument");

            if (query.ResultCount == 1)
            {
                NSMetadataItem item = (NSMetadataItem)query.ResultAtIndex(0);
                var            url  = (NSUrl)item.ValueForAttribute(NSMetadataQuery.ItemURLKey);
                doc = new MonkeyDocument(url);

                doc.Open((success) => {
                    if (success)
                    {
                        Console.WriteLine("iCloud document opened");
                        Console.WriteLine(" -- " + doc.DocumentString);
                        viewController.DisplayDocument(doc);
                    }
                    else
                    {
                        Console.WriteLine("failed to open iCloud document");
                    }
                });
            }
            else if (query.ResultCount == 0)
            {
                // no document exists, CREATE the first one
                // for a more realistic iCloud application the user will probably
                // create documents as needed, so this bit of code wouldn't be necessary
                var docsFolder = Path.Combine(iCloudUrl.Path, "Documents");                 // NOTE: Documents folder is user-accessible in Settings
                var docPath    = Path.Combine(docsFolder, monkeyDocFilename);
                var ubiq       = new NSUrl(docPath, false);

                Console.WriteLine("ubiq:" + ubiq.AbsoluteString);

                var doc = new MonkeyDocument(ubiq);

                doc.Save(doc.FileUrl, UIDocumentSaveOperation.ForCreating
                         , (saveSuccess) => {
                    Console.WriteLine("Save completion:" + saveSuccess);
                    if (saveSuccess)
                    {
                        doc.Open((openSuccess) => {
                            Console.WriteLine("Open completion:" + openSuccess);
                            if (openSuccess)
                            {
                                Console.WriteLine("new document for iCloud");
                                Console.WriteLine(" == " + doc.DocumentString);
                                viewController.DisplayDocument(doc);
                            }
                            else
                            {
                                Console.WriteLine("couldn't open");
                            }
                        });
                    }
                    else
                    {
                        Console.WriteLine("couldn't save");
                    }
                });
            }
            else
            {
                Console.WriteLine("Who put all these other UIDocuments here?");
            }
        }
Ejemplo n.º 6
0
		/// <summary>
		/// Loads the document.
		/// </summary>
		/// <param name="query">Query.</param>
		private void LoadDocument (NSMetadataQuery query) {
			Console.WriteLine ("Loading Document...");	

			// Take action based on the returned record count
			switch (query.ResultCount) {
			case 0:
				// Create a new document
				CreateNewDocument ();
				break;
			case 1:
				// Gain access to the url and create a new document from
				// that instance
				NSMetadataItem item = (NSMetadataItem)query.ResultAtIndex (0);
				var url = (NSUrl)item.ValueForAttribute (NSMetadataQuery.ItemURLKey);

				// Load the document
				OpenDocument (url);
				break;
			default:
				// There has been an issue
				Console.WriteLine ("Issue: More than one document found...");
				break;
			}
		}
Ejemplo n.º 7
0
		void LoadDocument (NSMetadataQuery metadataQuery)
		{
			Console.WriteLine ("LoadDocument");	

			if (metadataQuery.ResultCount == 1) {
				var item = (NSMetadataItem)metadataQuery.ResultAtIndex (0);
				var url = (NSUrl)item.ValueForAttribute (NSMetadataQuery.ItemURLKey);
				doc = new MonkeyDocument (url);
				
				doc.Open (success => {
					if (success) {
						Console.WriteLine ("iCloud document opened");
						Console.WriteLine (" -- {0}", doc.DocumentString);
						viewController.DisplayDocument (doc);
					} else {
						Console.WriteLine ("failed to open iCloud document");
					}
				});

			} else if (metadataQuery.ResultCount == 0) {
				// no document exists, CREATE the first one
				// for a more realistic iCloud application the user will probably 
				// create documents as needed, so this bit of code wouldn't be necessary
				var docsFolder = Path.Combine (iCloudUrl.Path, "Documents"); // NOTE: Documents folder is user-accessible in Settings
				var docPath = Path.Combine (docsFolder, MonkeyDocFilename);
				var ubiq = new NSUrl (docPath, false);
				
				Console.WriteLine ("ubiq:" + ubiq.AbsoluteString);

				var monkeyDoc = new MonkeyDocument (ubiq);
				
				monkeyDoc.Save (monkeyDoc.FileUrl, UIDocumentSaveOperation.ForCreating, saveSuccess => {
					Console.WriteLine ("Save completion:" + saveSuccess);
					if (saveSuccess) {
						monkeyDoc.Open (openSuccess => {
							Console.WriteLine ("Open completion:" + openSuccess);
							if (openSuccess) {
								Console.WriteLine ("new document for iCloud");
								Console.WriteLine (" == " + monkeyDoc.DocumentString);
								viewController.DisplayDocument (monkeyDoc);
							} else {
								Console.WriteLine ("couldn't open");
							}
						});
					} else {
						Console.WriteLine ("couldn't save");
					}
				});
			} else {
				Console.WriteLine ("Who put all these other UIDocuments here?");
			}
		}