Example #1
0
        private async Task DeltasSyncAsync()
        {
            Log.Debug("Starting download sync");
            Log.Debug("Start delta download");

            await DownloadDeltasAsync();

            Log.Debug("Delta download complete");
            Log.Debug("Start merge deltas");

            foreach (var fileName in Directory.EnumerateFiles(TempFolder()))
            {
                var gdbpath = GetGeodatabasePath(fileName);
                if (gdbpath == null)
                {
                    continue;
                }

                Log.Debug($"Start delta sync {gdbpath} with {fileName}");

                IReadOnlyList <SyncLayerResult> syncLayerResults = null;
                try
                {
                    syncLayerResults = await GeodatabaseSyncTask.ImportGeodatabaseDeltaAsync(gdbpath, fileName);
                }
                catch (Exception e)
                {
                    Log.Error(e.Message, e);
                }

                Log.Debug($"Complete delta sync {gdbpath} with {fileName}");

                LogResults(syncLayerResults);

                try
                {
                    File.Delete(fileName);
                }
                catch (Exception e)
                {
                    Log.Error(e.Message, e);
                }
            }

            Log.Debug("End merge deltas");
            Log.Debug("Completed download sync");
        }