/// <summary> /// Sync logic for store table /// </summary> private void SyncTable_Store() { var localTable = new StoreRepository<Store>(_localSessionContext); var remoteTable = new StoreRepository<Store>(_remoteSessionContext); OnSyncStart?.Invoke(this, new SyncStartedArgs("Store")); #region SyncCode var count = 0; var total = localTable.Count(); foreach (var row in localTable.GetAll()) { // Copy object and save (this removes ID) var newObject = ObjectCopy.Copy(row); remoteTable.Save(newObject); // Save changes to remote remoteTable.Commit(); // Create a sync record this captures the remote ID value // so we can update any relationships... var record = new SyncRecord(); record.Table_Id = "store_table"; record.Local_Id = row.Id; record.Remote_Id = newObject.Id; _recordRepository.Save(record); _recordRepository.Commit(); OnUpdateStatus?.Invoke(this, new ProgressEventArgs("Synced entity " + ++count + "/" + total)); // Remove after successful remove localTable.Remove(row); localTable.Commit(); } #endregion }