Example #1
0
        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);
        }
Example #2
0
    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);
    }
Example #3
0
    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;
			}
		}
Example #5
0
        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);
		}