Amazon.CognitoSync.SyncManager.CognitoSyncManager.OpenOrCreateDataset C# (CSharp) Method

OpenOrCreateDataset() public method

Opens or creates a dataset. If the dataset doesn't exist, an empty one with the given name will be created. Otherwise, the dataset is loaded from local storage. If a dataset is marked as deleted but hasn't been deleted on remote via the RefreshDatasetMetadata operation, it will throw System.InvalidOperationException. Dataset dataset = cognitoSyncManager.OpenOrCreateDataset("myDatasetName");
public OpenOrCreateDataset ( string datasetName ) : Dataset
datasetName string DatasetName, must be [a-zA-Z0=9_.:-]+
return Dataset
        public Dataset OpenOrCreateDataset(string datasetName)
        {
            DatasetUtils.ValidateDatasetName(datasetName);
            Local.CreateDataset(IdentityId, datasetName);
            return new Dataset(datasetName, CognitoCredentials, Local, Remote);
        }

Usage Example

Ejemplo n.º 1
0
        public void ResolveConflictTest()
        {
            using (CognitoSyncManager syncManager = new CognitoSyncManager(UnAuthCredentials))
            {
                syncManager.WipeData();
                using (Dataset d = syncManager.OpenOrCreateDataset("testDataset4"))
                {
                    d.Put("a", "1");
                    d.Put("b", "2");
                    d.Put("c", "3");
                    d.OnSyncSuccess += delegate(object sender, SyncSuccessEventArgs e)
                    {
                        d.ClearAllDelegates();
                        syncManager.WipeData();
                        using (Dataset d2 = syncManager.OpenOrCreateDataset("testDataset4"))
                        {
                            d2.Put("a", "10");
                            d2.Put("b", "20");
                            d2.Put("c", "30");

                            bool resolved = false;
                            d2.OnSyncConflict += delegate(Dataset dataset, List<SyncConflict> conflicts)
                            {
                                List<Amazon.CognitoSync.SyncManager.Record> resolvedRecords = new List<Amazon.CognitoSync.SyncManager.Record>();
                                int i = 0;
                                foreach (SyncConflict conflictRecord in conflicts)
                                {
                                    if (i == 0) resolvedRecords.Add(conflictRecord.ResolveWithLocalRecord());
                                    else if (i == 1) resolvedRecords.Add(conflictRecord.ResolveWithValue("42"));
                                    else resolvedRecords.Add(conflictRecord.ResolveWithRemoteRecord());
                                    i++;
                                }
                                dataset.Resolve(resolvedRecords);
                                resolved = true;
                                return true;
                            };
                            d2.OnSyncSuccess += delegate(object sender4, SyncSuccessEventArgs e4)
                            {
                                if (resolved)
                                {
                                    Assert.AreSame(d2.Get("a"), "10");
                                    Assert.AreSame(d2.Get("b"), "42");
                                    Assert.AreSame(d2.Get("c"), "3");
                                }
                                else
                                {
                                    Assert.Fail("Expecting SyncConflict instead of SyncSuccess");
                                }

                            };
                            d2.OnSyncFailure += delegate(object sender4, SyncFailureEventArgs e4)
                            {
                                Assert.Fail("Expecting SyncConflict instead of SyncFailure");
                            };
                            RunAsSync(async () => await d2.SynchronizeAsync());
                        }
                    };
                    RunAsSync(async () => await d.SynchronizeAsync());
                }
            }
        }
All Usage Examples Of Amazon.CognitoSync.SyncManager.CognitoSyncManager::OpenOrCreateDataset