/// <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; } }
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); }
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(); } }
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?"); } }
/// <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; } }
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?"); } }