Пример #1
0
        private void Downloaded(ListItem item, byte[] bytes)
        {
            if (Aborted)
                return;

            Report(new SyncCompleteInfo
            {
                Database = bytes,
                Path = _info.Path,
                Modified = item.Timestamp,
                Result = SyncResults.Downloaded,
            });
        }
Пример #2
0
        private void ConflictUploaded(
            ListItem item, string path)
        {
            if (Aborted)
                return;

            Report(new SyncCompleteInfo
            {
                Path = path,
                Modified = item.Timestamp,
                Result = SyncResults.Conflict,
            });
        }
Пример #3
0
        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));
        }
Пример #4
0
        private void Uploaded(ListItem item)
        {
            if (Aborted)
                return;

            Report(new SyncCompleteInfo
            {
                Path = _info.Path,
                Modified = item.Timestamp,
                Result = SyncResults.Uploaded,
            });
        }
Пример #5
0
 public abstract void Upload(ListItem item,
     Action<ListItem> uploaded);
Пример #6
0
 public abstract void Download(ListItem item,
     Action<ListItem, byte[]> downloaded);
Пример #7
0
 public abstract void Conflict(ListItem item,
     Action<ListItem, string> uploaded);