partial void SaveItem(UIBarButtonItem sender) { var name = nameField.Text; if (string.IsNullOrEmpty(name)) { var alert = new UIAlertView("Error", "Name can not be empty", null, "Dismiss", null); alert.DismissWithClickedButtonIndex(0, false); alert.Show(); return; } var client = FHSyncClient.GetInstance(); if (Item == null) { client.Create(RootViewController.DatasetId, new ShoppingItem(name)); } else { Item.Name = name; client.Update(RootViewController.DatasetId, Item); } Navigate(); }
public override void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath) { if (editingStyle == UITableViewCellEditingStyle.Delete) { FHSyncClient.GetInstance().Delete <ShoppingItem>(DatasetId, _items[indexPath.Row].UID); _items.RemoveAt(indexPath.Row); tableView.ReloadData(); } }
private static void SaveItem(ShoppingItem item) { var client = FHSyncClient.GetInstance(); if (item.UID == null) { client.Create(DatasetId, item); } else { client.Update(DatasetId, item); } }
private void FireSync() { var client = FHSyncClient.GetInstance(); var config = new FHSyncConfig(); client.Initialise(config); client.SyncCompleted += (sender, args) => { RunOnUiThread(() => { _adapter.SetItems(client.List <ShoppingItem>(DatasetId)); _adapter.NotifyDataSetChanged(); }); }; client.Manage <ShoppingItem>(DatasetId, config, null); }
public override async void ViewDidLoad() { base.ViewDidLoad(); EditButtonItem.Enabled = false; await FHClient.Init(); var client = FHSyncClient.GetInstance(); var config = new FHSyncConfig(); client.Initialise(config); client.SyncCompleted += (sender, args) => { UIApplication.SharedApplication.InvokeOnMainThread(delegate { _items = client.List <ShoppingItem>(DatasetId); TableView.ReloadData(); }); }; client.Manage <ShoppingItem>(DatasetId, config, null); }
public async void TestFHSyncClient() #endif { //clear db var setupRes = await FH.Cloud(string.Format("/syncTest/{0}", DATASET_ID), "DELETE", null, null); Assert.IsTrue(HttpStatusCode.OK.Equals(setupRes.StatusCode)); var syncConfig = new FHSyncConfig(); syncConfig.SyncActive = false; syncConfig.SyncFrequency = 1; syncConfig.AutoSyncLocalUpdates = true; syncConfig.SyncCloud = FHSyncConfig.SyncCloudType.Mbbas; //make sure no existing data file exist metaDataFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".sync.json"); dataFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".data.json"); pendingFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".pendings.json"); TestUtils.DeleteFileIfExists(metaDataFilePath); TestUtils.DeleteFileIfExists(dataFilePath); TestUtils.DeleteFileIfExists(pendingFilePath); Assert.IsFalse(File.Exists(metaDataFilePath)); Assert.IsFalse(File.Exists(dataFilePath)); Assert.IsFalse(File.Exists(pendingFilePath)); syncClient = FHSyncClient.GetInstance(); syncClient.Initialise(syncConfig); syncClient.Manage <TaskModel>(DATASET_ID, syncConfig, null); var syncStarted = false; var syncCompleted = false; syncClient.SyncStarted += (object sender, FHSyncNotificationEventArgs e) => { if (e.DatasetId.Equals(DATASET_ID)) { syncStarted = true; } }; syncClient.SyncCompleted += (object sender, FHSyncNotificationEventArgs e) => { if (e.DatasetId.Equals(DATASET_ID)) { syncCompleted = true; } }; var tasks = syncClient.List <TaskModel>(DATASET_ID); Assert.AreEqual(0, tasks.Count); var newTask = new TaskModel { TaksName = "task1", Completed = false }; newTask = syncClient.Create(DATASET_ID, newTask); //syncConfig.SyncActive = true; Assert.IsNotNull(newTask.UID); syncClient.ForceSync <TaskModel>(DATASET_ID); Thread.Sleep(2000); var cloudRes = await FH.Cloud(string.Format("/syncTest/{0}", DATASET_ID), "GET", null, null); Assert.IsNull(cloudRes.Error); var dbData = cloudRes.GetResponseAsJObject(); Assert.AreEqual(1, (int)dbData["count"]); var taskNameInDb = (string)dbData["list"][0]["fields"]["taskName"]; Assert.IsTrue(taskNameInDb.Equals("task1")); Assert.IsTrue(syncStarted); Assert.IsTrue(syncCompleted); syncClient.StopAll(); }
private static void DeleteItem(ShoppingItem item) { FHSyncClient.GetInstance().Delete <ShoppingItem>(DatasetId, item.UID); }
public async void TestFHSyncClient() #endif { //clear db FHResponse setupRes = await FH.Cloud(string.Format("/syncTest/{0}", DATASET_ID), "DELETE", null, null); Assert.IsTrue(HttpStatusCode.OK.Equals(setupRes.StatusCode)); FHSyncConfig syncConfig = new FHSyncConfig(); syncConfig.SyncActive = false; syncConfig.SyncFrequency = 1; syncConfig.AutoSyncLocalUpdates = true; syncConfig.SyncCloud = FHSyncConfig.SyncCloudType.MBBAS; //make sure no existing data file exist metaDataFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".sync.json"); dataFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".data.json"); pendingFilePath = FHSyncUtils.GetDataFilePath(DATASET_ID, ".pendings.json"); TestUtils.DeleteFileIfExists(metaDataFilePath); TestUtils.DeleteFileIfExists(dataFilePath); TestUtils.DeleteFileIfExists(pendingFilePath); Assert.IsFalse(File.Exists(metaDataFilePath)); Assert.IsFalse(File.Exists(dataFilePath)); Assert.IsFalse(File.Exists(pendingFilePath)); syncClient = FHSyncClient.GetInstance(); syncClient.Initialise(syncConfig); syncClient.Manage<TaskModel>(DATASET_ID, syncConfig, null); bool syncStarted = false; bool syncCompleted = false; syncClient.SyncStarted += (object sender, FHSyncNotificationEventArgs e) => { if(e.DatasetId.Equals(DATASET_ID)){ syncStarted = true; } }; syncClient.SyncCompleted += (object sender, FHSyncNotificationEventArgs e) => { if(e.DatasetId.Equals(DATASET_ID)){ syncCompleted = true; } }; List<TaskModel> tasks = syncClient.List<TaskModel>(DATASET_ID); Assert.AreEqual(0, tasks.Count); TaskModel newTask = new TaskModel() { TaksName = "task1", Completed = false }; newTask = syncClient.Create<TaskModel>(DATASET_ID, newTask); //syncConfig.SyncActive = true; Assert.IsNotNull(newTask.UID); syncClient.ForceSync<TaskModel>(DATASET_ID); Thread.Sleep(2000); FHResponse cloudRes = await FH.Cloud(string.Format("/syncTest/{0}", DATASET_ID), "GET", null, null); Assert.IsNull(cloudRes.Error); JObject dbData = cloudRes.GetResponseAsJObject(); Assert.AreEqual(1, (int)dbData["count"]); string taskNameInDb = (string)dbData["list"][0]["fields"]["taskName"]; Assert.IsTrue(taskNameInDb.Equals("task1")); Assert.IsTrue(syncStarted); Assert.IsTrue(syncCompleted); syncClient.StopAll(); }