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 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); }