public void QueryForRecords(string referenceRecordName, Action <List <CKRecord> > completionHandler) { var recordId = new CKRecordID(referenceRecordName); var parent = new CKReference(recordId, CKReferenceAction.None); var predicate = NSPredicate.FromFormat("parent == %@", parent); var query = new CKQuery(ReferenceSubItemsRecordType, predicate) { SortDescriptors = new [] { new NSSortDescriptor("creationDate", false) } }; var queryOperation = new CKQueryOperation(query) { DesiredKeys = new [] { NameField } }; var results = new List <CKRecord> (); queryOperation.RecordFetched = (record) => results.Add(record); queryOperation.Completed = (cursor, error) => { if (error != null) { Console.WriteLine("An error occured: {0}", error.Description); return; } DispatchQueue.MainQueue.DispatchAsync(() => completionHandler(results)); }; publicDatabase.AddOperation(queryOperation); }
public void Can_set_and_retrieve_reference_by_key() { var record = new CKRecord("record_type"); var reference = new CKReference(new CKRecord("record_type"), CKReferenceAction.DeleteSelf); var referenceKey = "reference_key"; record.SetReference(reference, referenceKey); Assert.AreEqual(record.ReferenceForKey(referenceKey), reference); }
public void Can_set_parent_reference_on_record() { var parent = new CKRecord("parent_record_type"); var child = new CKRecord("child_record_type"); var parentReference = new CKReference(parent, CKReferenceAction.None); child.Parent = parentReference; Assert.AreEqual(child.Parent.RecordID, parent.RecordID); }
async partial void Add (UIButton sender) { if (string.IsNullOrEmpty (nameTextField.Text)) nameTextField.ResignFirstResponder (); else { var newRecord = new CKRecord (ReferenceSubItemRecordType); var parentRecordId = new CKRecordID (ParentRecordName); newRecord ["name"] = (NSString)nameTextField.Text; newRecord ["parent"] = new CKReference (parentRecordId, CKReferenceAction.DeleteSelf); await CloudManager.SaveAsync (newRecord); records.Insert (0, newRecord); var indexPath = NSIndexPath.FromRowSection (0, 0); TableView.InsertRows (new [] { indexPath }, UITableViewRowAnimation.Automatic); nameTextField.ResignFirstResponder (); nameTextField.Text = string.Empty; } }
async partial void Add(UIButton sender) { if (string.IsNullOrEmpty(nameTextField.Text)) { nameTextField.ResignFirstResponder(); } else { var newRecord = new CKRecord(ReferenceSubItemRecordType); var parentRecordId = new CKRecordID(ParentRecordName); newRecord ["name"] = (NSString)nameTextField.Text; newRecord ["parent"] = new CKReference(parentRecordId, CKReferenceAction.DeleteSelf); await CloudManager.SaveAsync(newRecord); records.Insert(0, newRecord); var indexPath = NSIndexPath.FromRowSection(0, 0); TableView.InsertRows(new [] { indexPath }, UITableViewRowAnimation.Automatic); nameTextField.ResignFirstResponder(); nameTextField.Text = string.Empty; } }
public void QueryForRecords (string referenceRecordName, Action<List<CKRecord>> completionHandler) { var recordId = new CKRecordID (referenceRecordName); var parent = new CKReference (recordId, CKReferenceAction.None); var predicate = NSPredicate.FromFormat ("parent == %@", parent); var query = new CKQuery (ReferenceSubItemsRecordType, predicate) { SortDescriptors = new [] { new NSSortDescriptor ("creationDate", false) } }; var queryOperation = new CKQueryOperation (query) { DesiredKeys = new [] { NameField } }; var results = new List<CKRecord> (); queryOperation.RecordFetched = (record) => results.Add (record); queryOperation.Completed = (cursor, error) => { if (error != null) { Console.WriteLine ("An error occured: {0}", error.Description); return; } DispatchQueue.MainQueue.DispatchAsync (() => completionHandler (results)); }; publicDatabase.AddOperation (queryOperation); }