public async override Task <Results> Run() { string zoneName; if (!TryGetString("zoneName", out zoneName)) { throw new InvalidProgramException(); } var container = CKContainer.DefaultContainer; var privateDB = container.PrivateCloudDatabase; CKRecordZone recordZone = await privateDB.SaveRecordZoneAsync(new CKRecordZone (zoneName)); var results = new Results(); if (recordZone == null) { throw new InvalidProgramException(); } if (recordZone != null) { results.Items.Add(new CKRecordZoneWrapper(recordZone)); } return(results); }
public void Can_create_record_zone_with_zone_id() { var zoneId = new CKRecordZoneID("zoneName", "ownerName"); var zone = new CKRecordZone(zoneId); Assert.AreEqual(zoneId, zone.ZoneID); }
public void Can_create_record_zone_with_zone_name() { var zoneName = "zoneName"; var zone = new CKRecordZone(zoneName); Assert.AreEqual(zone.ZoneID.ZoneName, zoneName); }
public void Cant_create_record_with_no_zone_id() { TestDelegate sut = () => { CKRecordZoneID zoneId = null; var zone = new CKRecordZone(zoneId); }; Assert.Throws <ArgumentNullException>(sut); }
public void Can_create_record_of_a_type_in_a_zone() { var recordType = "record_type"; var zoneName = "zone_name"; var recordZone = new CKRecordZone(zoneName); var record = new CKRecord(recordType, recordZone.ZoneID); Assert.AreEqual(record.RecordID.ZoneID, recordZone.ZoneID); }
public void Can_access_zone_capabilities() { TestDelegate sut = () => { var zone = new CKRecordZone("name"); var capability = zone.Capabilities; }; Assert.DoesNotThrow(sut); }
public void Cant_create_record_zone_with_no_zone_name() { TestDelegate sut = () => { string zoneName = null; var zone = new CKRecordZone(zoneName); }; Assert.Throws <ArgumentNullException>(sut); }
public void Cant_create_record_zone_with_invalid_zone_name( [Values("", "_underscore", "2numbers")] string zoneName ) { TestDelegate sut = () => { var zone = new CKRecordZone(zoneName); }; Assert.Throws <CloudKitException>(sut); }
private void Run() { Debug.Log("Example 5 - Zones"); // Apple arcade recommends using zones for different GC users customZone = new CKRecordZone("GameCenterUser1"); database = CKContainer.DefaultContainer().PrivateCloudDatabase; database.SaveRecordZone(customZone, OnRecordZoneCreated); }
public static async Task <int> GetPastPurchasesAsync() { var container = CKContainer.DefaultContainer; var status = await container.GetAccountStatusAsync(); var hasCloud = status == CKAccountStatus.Available; if (!hasCloud) { return(0); } var db = container.PrivateCloudDatabase; var pred = NSPredicate.FromFormat("TransactionId != 'tttt'"); var query = new CKQuery("PatronSubscription", pred); var recs = await db.PerformQueryAsync(query, CKRecordZone.DefaultRecordZone().ZoneId); Console.WriteLine("NUM PATRON RECS = {0}", recs.Length); var subs = recs.Select(x => new PatronSubscription(x)).OrderBy(x => x.PurchaseDate).ToArray(); var ed = DateTime.UtcNow; if (subs.Length > 0) { ed = subs[0].PurchaseEndDate; foreach (var s in subs.Skip(1)) { if (s.PurchaseDate < ed) { ed = ed.AddMonths(s.NumMonths); } else { ed = s.PurchaseEndDate; } } } Console.WriteLine("NEW END DATE = {0}", ed); var endDate = ed; var isPatron = DateTime.UtcNow < endDate; var settings = DocumentAppDelegate.Shared.Settings; settings.IsPatron = isPatron; settings.PatronEndDate = endDate; return(subs.Length); }
private void OnRecordZoneCreated(CKRecordZone zone, NSError error) { Debug.Log(string.Format("Created record zone with name {0}", zone.ZoneID.ZoneName)); // records you want to save to a custom zone are initialized with the zoneId var save1 = new CKRecord("SaveGame", customZone.ZoneID); // or if you need a custom record name, initialize with a recordID with the zoneId var save2 = new CKRecord("SaveGame", new CKRecordID("MySave", customZone.ZoneID)); var op = new CKModifyRecordsOperation(new CKRecord[] { save1, save2 }, null); op.Configuration.QualityOfService = NSQualityOfService.UserInitiated; op.ModifyRecordsCompletionBlock = OnRecordsSaved; database.AddOperation(op); }
public IEnumerator Can_fetch_a_record_zone_by_its_id() { var database = CKContainer.DefaultContainer().PrivateCloudDatabase; var wasCalled = false; var recordZoneId = new CKRecordZoneID("zonename", "me"); CKRecordZone returnedZone = null; database.FetchRecordZoneWithID(recordZoneId, (zone, error) => { wasCalled = true; returnedZone = zone; }); yield return(WaitUntilWithTimeout(() => wasCalled, DefaultTimeout)); Assert.IsTrue(wasCalled); Assert.AreEqual(recordZoneId, returnedZone.ZoneID); }
public IEnumerator Can_save_a_record_zone() { var database = CKContainer.DefaultContainer().PrivateCloudDatabase; var wasCalled = false; var zone = new CKRecordZone(new CKRecordZoneID("zonename", "me")); CKRecordZone returnedZone = null; NSError returnedError = null; database.SaveRecordZone(zone, (z, error) => { wasCalled = true; returnedZone = z; returnedError = error; }); yield return(WaitUntilWithTimeout(() => wasCalled, DefaultTimeout)); Assert.IsTrue(wasCalled); Assert.IsNull(returnedError); Assert.AreEqual(zone, returnedZone); }
public IEnumerator Can_delete_a_record_zone_by_its_id() { var database = CKContainer.DefaultContainer().PrivateCloudDatabase; var wasCalled = false; var zone = new CKRecordZone(new CKRecordZoneID("zonename", "me")); CKRecordZoneID deletedZoneId = null; NSError returnedError = null; database.SaveRecordZone(zone, (zone2, error) => { database.DeleteRecordZoneWithID(zone2.ZoneID, (recordZoneId, error2) => { wasCalled = true; deletedZoneId = recordZoneId; }); }); yield return(WaitUntilWithTimeout(() => wasCalled, DefaultTimeout)); Assert.IsTrue(wasCalled); Assert.IsNull(returnedError); Assert.AreEqual(zone.ZoneID, deletedZoneId); }
async Task DeletePastPurchasesAsync() { try { var container = CKContainer.DefaultContainer; var db = container.PrivateCloudDatabase; var pred = NSPredicate.FromFormat("TransactionId != 'tttt'"); var query = new CKQuery("PatronSubscription", pred); var recs = await db.PerformQueryAsync(query, CKRecordZone.DefaultRecordZone().ZoneId); Console.WriteLine("NUM RECS = {0}", recs.Length); foreach (var r in recs) { await db.DeleteRecordAsync(r.Id); } } catch (NSErrorException ex) { Console.WriteLine("ERROR: {0}", ex.Error); Log.Error(ex); } catch (Exception ex) { Log.Error(ex); } }
public CKRecordZoneWrapper (CKRecordZone zone) { this.zone = zone; }
public CKRecordZoneWrapper(CKRecordZone zone) { this.zone = zone; }
public void Default_record_zone_exists() { var zone = CKRecordZone.DefaultRecordZone(); Assert.NotNull(zone); }