private async Task SyncGeodatabaes(SyncDirection syncDirection) { foreach (var gdbPath in BidirectionalGdbs) { Geodatabase geodatabase = null; IReadOnlyList <SyncLayerResult> results = null; try { geodatabase = await Geodatabase.OpenAsync(gdbPath); Log.Debug($"{geodatabase.Path} about to start {syncDirection} sync"); if (!geodatabase.HasLocalEdits() && syncDirection == SyncDirection.Upload) { Log.Debug("No edits skipping sync"); continue; } Log.Debug($"ServiceUrl: {geodatabase.Source}"); GeodatabaseSyncTask syncTask = await GeodatabaseSyncTask.CreateAsync(geodatabase.Source); SyncGeodatabaseParameters syncParameters = await syncTask.CreateDefaultSyncGeodatabaseParametersAsync(geodatabase); syncParameters.GeodatabaseSyncDirection = syncDirection; SyncGeodatabaseJob job = syncTask.SyncGeodatabase(syncParameters, geodatabase); results = await job.GetResultAsync(); LogResults(results); } catch (Exception e) { Log.Error(e.Message); Log.Error($"{geodatabase?.Path} did not sync"); LogResults(results); } } }