private void Downloaded(ListItem item, byte[] bytes) { if (Aborted) return; Report(new SyncCompleteInfo { Database = bytes, Path = _info.Path, Modified = item.Timestamp, Result = SyncResults.Downloaded, }); }
private void ConflictUploaded( ListItem item, string path) { if (Aborted) return; Report(new SyncCompleteInfo { Path = path, Modified = item.Timestamp, Result = SyncResults.Conflict, }); }
private void Listed(ListItem item) { if (Aborted) return; if (item.Timestamp == null) { // File deleted from server, upload local file to server. Try(x => x.Upload(item, Uploaded)); return; } if (item.Timestamp == _info.Modified) { if (!_info.HasLocalChanges) { // Already up-to-date Report(new SyncCompleteInfo { Path = _info.Path, Result = SyncResults.NoChange, }); return; } // Has local change, upload to server Try(x => x.Upload(item, Uploaded)); return; } if (!_info.HasLocalChanges) { // Has changes from server Try(x => x.Download(item, Downloaded)); return; } // Conflict Try(x => x.Conflict(item, ConflictUploaded)); }
private void Uploaded(ListItem item) { if (Aborted) return; Report(new SyncCompleteInfo { Path = _info.Path, Modified = item.Timestamp, Result = SyncResults.Uploaded, }); }
public abstract void Upload(ListItem item, Action<ListItem> uploaded);
public abstract void Download(ListItem item, Action<ListItem, byte[]> downloaded);
public abstract void Conflict(ListItem item, Action<ListItem, string> uploaded);