private async Task SyncListItem(IOfflineSupport item, Item i) { if (i.Deleted) { try { var ret = await _client.DeleteListItemAsync(i.Id); var list = _currentLists.FirstOrDefault(d => d.Id == i.ListId); if (list.Items.Contains(i)) { list.Items.Remove(i); } SetSynced(i); } catch (Exception ex) { Console.WriteLine(ex); } } else { var ret = await _client.UpdateListItemAsync(i.ToRest()); i.Id = ret.Id; var list = _currentLists.FirstOrDefault(d => d.Id == i.ListId); if (!list.Items.Contains(i)) { list.Items.Add(i); } SetSynced(i); } }
private void AddSync(IOfflineSupport data) { data.NeedSync = true; if (!_syncItems.Contains(data)) { _syncItems.Add(data); TriggerSync(); } }
private void SetDeleted(IOfflineSupport data) { data.Deleted = true; data.NeedSync = true; if (!_syncItems.Contains(data)) { _syncItems.Add(data); } TriggerSync(); }
private void SetSynced(IOfflineSupport i) { i.LastSync = DateTime.Now; _syncItems.Remove(i); }
public void Delete(IOfflineSupport item) { SetDeleted(item); }