本文整理汇总了C#中MobileServiceClient.GetSyncTable方法的典型用法代码示例。如果您正苦于以下问题:C# MobileServiceClient.GetSyncTable方法的具体用法?C# MobileServiceClient.GetSyncTable怎么用?C# MobileServiceClient.GetSyncTable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MobileServiceClient
的用法示例。
在下文中一共展示了MobileServiceClient.GetSyncTable方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: InsertAsync_GeneratesId_WhenNull
public async Task InsertAsync_GeneratesId_WhenNull()
{
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp);
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandler());
var item = new JObject();
JObject inserted = await service.GetSyncTable("someTable").InsertAsync(item);
Assert.IsNotNull(inserted.Value<string>("id"), "Expected id member not found.");
item = new JObject() { { "id", null } };
inserted = await service.GetSyncTable("someTable").InsertAsync(item);
Assert.IsNotNull(inserted.Value<string>("id"), "Expected id member not found.");
}
示例2: RefreshAsync_Succeeds_WhenIdIsNull
public async Task RefreshAsync_Succeeds_WhenIdIsNull()
{
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...");
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandler());
IMobileServiceSyncTable<StringIdType> table = service.GetSyncTable<StringIdType>();
var item = new StringIdType() { String = "what?" };
await table.RefreshAsync(item);
}
示例3: RefreshAsync_Succeeds_WhenIdIsNull
public async Task RefreshAsync_Succeeds_WhenIdIsNull()
{
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp);
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandler());
IMobileServiceSyncTable<StringIdType> table = service.GetSyncTable<StringIdType>();
var item = new StringIdType() { String = "what?" };
await table.RefreshAsync(item);
}
开发者ID:brettsam,项目名称:azure-mobile-apps-net-client,代码行数:10,代码来源:MobileServiceSyncTable.Generic.Test.cs
示例4: RefreshAsync_ThrowsInvalidOperationException_WhenIdItemDoesNotExist
public async Task RefreshAsync_ThrowsInvalidOperationException_WhenIdItemDoesNotExist()
{
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...");
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandler());
IMobileServiceSyncTable<StringIdType> table = service.GetSyncTable<StringIdType>();
var item = new StringIdType() { Id = "abc" };
InvalidOperationException ex = await ThrowsAsync<InvalidOperationException>(() => table.RefreshAsync(item));
Assert.AreEqual(ex.Message, "Item not found in local store.");
}
示例5: PushAsync_ExecutesThePendingOperations_InOrder
public async Task PushAsync_ExecutesThePendingOperations_InOrder()
{
var hijack = new TestHttpHandler();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
var store = new MobileServiceLocalStoreMock();
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
JObject item1 = new JObject() { { "id", "abc" } }, item2 = new JObject() { { "id", "def" } };
await table.InsertAsync(item1);
await table.InsertAsync(item2);
Assert.AreEqual(hijack.Requests.Count, 0);
// create a new service to test that operations are loaded from store
hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
hijack.AddResponseContent("{\"id\":\"def\",\"String\":\"What\"}");
service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
Assert.AreEqual(hijack.Requests.Count, 0);
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests.Count, 2);
Assert.AreEqual(hijack.RequestContents[0], item1.ToString(Formatting.None));
Assert.AreEqual(hijack.Requests[0].Headers.GetValues("X-ZUMO-FEATURES").First(), "TU,OL");
Assert.AreEqual(hijack.RequestContents[1], item2.ToString(Formatting.None));
Assert.AreEqual(hijack.Requests[1].Headers.GetValues("X-ZUMO-FEATURES").First(), "TU,OL");
// create yet another service to make sure the old items were purged from queue
hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
Assert.AreEqual(hijack.Requests.Count, 0);
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests.Count, 0);
}
示例6: RefreshAsync_UpdatesItem_WhenItExistsInStore
public async Task RefreshAsync_UpdatesItem_WhenItExistsInStore()
{
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...");
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandler());
IMobileServiceSyncTable<StringIdType> table = service.GetSyncTable<StringIdType>();
// add item to store
var item = new StringIdType() { String = "what?" };
await table.InsertAsync(item);
Assert.IsNotNull(item.Id, "Id must be generated");
// update it in store
item.String = "nothing!";
await table.UpdateAsync(item);
// read it back into new object
var refreshed = new StringIdType() { Id = item.Id };
await table.RefreshAsync(refreshed);
Assert.AreEqual(refreshed.String, "nothing!");
}
示例7: PullAsync_Cancels_WhenCancellationTokenIsCancelled
public async Task PullAsync_Cancels_WhenCancellationTokenIsCancelled()
{
var store = new MobileServiceLocalStoreMock();
var handler = new MobileServiceSyncHandlerMock();
handler.TableOperationAction = op => Task.Delay(TimeSpan.MaxValue).ContinueWith<JObject>(t => null); // long slow operation
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...");
await service.SyncContext.InitializeAsync(store, handler);
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
using (var cts = new CancellationTokenSource())
{
// now pull
Task pullTask = table.PullAsync(null, null, null, cancellationToken: cts.Token);
cts.Cancel();
var ex = await ThrowsAsync<Exception>(() => pullTask);
Assert.IsTrue((ex is OperationCanceledException || ex is TaskCanceledException));
Assert.AreEqual(pullTask.Status, TaskStatus.Canceled);
}
}
示例8: PushAsync_FeatureHeaderPresentWhenRehydrated
public async Task PushAsync_FeatureHeaderPresentWhenRehydrated()
{
var hijack = new TestHttpHandler();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
var store = new MobileServiceLocalStoreMock();
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
JObject item1 = new JObject() { { "id", "abc" } };
await table.InsertAsync(item1);
// create a new service to test that operations are loaded from store
hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests[0].Headers.GetValues("X-ZUMO-FEATURES").First(), "TU,OL");
}
示例9: PushAsync_Succeeds_WhenDeleteReturnsNotFound
public async Task PushAsync_Succeeds_WhenDeleteReturnsNotFound()
{
var hijack = new TestHttpHandler();
hijack.Responses.Add(new HttpResponseMessage(HttpStatusCode.NotFound));
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandlerMock());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
await table.DeleteAsync(new JObject() { { "id", "abc" }, { "version", "Wow" } });
await service.SyncContext.PushAsync();
}
示例10: PurgeAsync_DeletesOperations_WhenThereIsOperationInTable_AndForceIsTrue
public async Task PurgeAsync_DeletesOperations_WhenThereIsOperationInTable_AndForceIsTrue()
{
var hijack = new TestHttpHandler();
hijack.SetResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
// put a dummy delta token
string deltaKey = "deltaToken|someTable|abc";
store.TableMap[MobileServiceLocalSystemTables.Config] = new Dictionary<string, JObject>() { { deltaKey, new JObject() } };
// insert an item but don't push
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
await table.InsertAsync(new JObject() { { "id", "abc" } });
Assert.AreEqual(store.TableMap[table.TableName].Count, 1); // item is inserted
Assert.AreEqual(service.SyncContext.PendingOperations, 1L);
await table.PurgeAsync("abc", null, force: true, cancellationToken: CancellationToken.None);
Assert.AreEqual(store.TableMap[table.TableName].Count, 0); // item is deleted
Assert.AreEqual(service.SyncContext.PendingOperations, 0L); // operation is also removed
// deleted delta token
Assert.IsFalse(store.TableMap[MobileServiceLocalSystemTables.Config].ContainsKey(deltaKey));
}
示例11: PullAsync_DoesNotPurge_WhenItemIsMissing
public async Task PullAsync_DoesNotPurge_WhenItemIsMissing()
{
var hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}"); // for insert
hijack.AddResponseContent("[{\"id\":\"def\",\"String\":\"World\"}]"); // remote item
hijack.AddResponseContent("[]"); // last page
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
await table.InsertAsync(new JObject() { { "id", "abc" } }); // insert an item
await service.SyncContext.PushAsync(); // push to clear the queue
// now pull
await table.PullAsync(null, null);
Assert.AreEqual(store.TableMap[table.TableName].Count, 2); // 1 from remote and 1 from local
Assert.AreEqual(hijack.Requests.Count, 3); // one for push and 2 for pull
}
示例12: PurgeAsync_Throws_WhenQueryIdIsInvalid
public async Task PurgeAsync_Throws_WhenQueryIdIsInvalid()
{
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", new TestHttpHandler());
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
await ThrowsAsync<ArgumentException>(() => table.PurgeAsync("2as|df", table.CreateQuery(), CancellationToken.None));
}
示例13: PurgeAsync_Throws_WhenThereIsOperationInTable_AndForceIsTrue_AndQueryIsSpecified
public async Task PurgeAsync_Throws_WhenThereIsOperationInTable_AndForceIsTrue_AndQueryIsSpecified()
{
var hijack = new TestHttpHandler();
hijack.SetResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
var store = new MobileServiceLocalStoreMock();
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...", hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
// insert an item but don't push
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
await table.InsertAsync(new JObject() { { "id", "abc" } });
Assert.AreEqual(store.TableMap[table.TableName].Count, 1); // item is inserted
// this should trigger a push
var ex = await ThrowsAsync<InvalidOperationException>(() => table.PurgeAsync(null, "$filter=a eq b", true, CancellationToken.None));
Assert.AreEqual(ex.Message, "The table cannot be purged because it has pending operations.");
Assert.AreEqual(service.SyncContext.PendingOperations, 1L); // operation still in queue
}
示例14: PushAsync_ExecutesThePendingOperations_InOrder_BatchedOne
public async Task PushAsync_ExecutesThePendingOperations_InOrder_BatchedOne()
{
var hijack = new TestHttpHandler();
IMobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
var store = new MobileServiceLocalStoreMock();
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
IMobileServiceSyncTable table = service.GetSyncTable("someTable");
JObject item1 = new JObject() { { "id", "abc" } }, item2 = new JObject() { { "id", "def" } };
await table.InsertAsync(item1);
await table.InsertAsync(item2);
Assert.AreEqual(hijack.Requests.Count, 0);
// create a new service to test that operations are loaded from store
hijack = new TestHttpHandler();
var content = new MultipartContent("mixed", "6f078995-ef2a-4617-a4c9-5d8746b26d32");
var response = new HttpResponseMessage(HttpStatusCode.OK) {
Content = new StringContent("{\"id\":\"abc\",\"String\":\"Hey\"}", Encoding.UTF8, "application/json")
};
content.Add(new HttpMessageContent(response));
hijack.AddResponseContent(content);
content = new MultipartContent("mixed", "6f078995-ef2a-4617-a4c9-5d8746b26d32");
response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent("{\"id\":\"def\",\"String\":\"What\"}", Encoding.UTF8, "application/json")
};
content.Add(new HttpMessageContent(response));
hijack.AddResponseContent(content);
service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
service.SyncContext.BatchApiEndpoint = "batch";
service.SyncContext.BatchSize = 1;
Assert.AreEqual(hijack.Requests.Count, 0);
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests.Count, 2);
Assert.IsTrue(hijack.RequestContents[0].Contains(item1.ToString(Formatting.None)));
Assert.IsTrue(hijack.RequestContents[0].Contains("X-ZUMO-FEATURES: TU,OL"));
Assert.IsTrue(hijack.RequestContents[1].Contains(item2.ToString(Formatting.None)));
Assert.IsTrue(hijack.RequestContents[1].Contains("X-ZUMO-FEATURES: TU,OL"));
// create yet another service to make sure the old items were purged from queue
hijack = new TestHttpHandler();
hijack.AddResponseContent("{\"id\":\"abc\",\"String\":\"Hey\"}");
service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack);
await service.SyncContext.InitializeAsync(store, new MobileServiceSyncHandler());
Assert.AreEqual(hijack.Requests.Count, 0);
await service.SyncContext.PushAsync();
Assert.AreEqual(hijack.Requests.Count, 0);
}
示例15: PullAsync_Throws_WhenSelectClauseIsSpecified
public async Task PullAsync_Throws_WhenSelectClauseIsSpecified()
{
IMobileServiceClient service = new MobileServiceClient("http://www.test.com", "secret...");
await service.SyncContext.InitializeAsync(new MobileServiceLocalStoreMock(), new MobileServiceSyncHandler());
IMobileServiceSyncTable<ToDoWithStringId> table = service.GetSyncTable<ToDoWithStringId>();
var query = table.Select(x => x.String);
var exception = await ThrowsAsync<ArgumentException>(() => table.PullAsync(null, query, cancellationToken: CancellationToken.None));
Assert.AreEqual(exception.ParamName, "query");
Assert.StartsWith(exception.Message, "Pull query with select clause is not supported.");
}