public void SyncBudgets(Action<Exception> callback) { try { BudgetList.Clear(); App.Instance.ServiceData.LoadCachedBudgets((cachedBudgets, error) => { var budgetList = cachedBudgets.Where(x => x.ModifiedDate > App.Instance.LastSyncDate).ToObservableCollection(); var client = new MainClient(); client.SyncBudgetsAsync(budgetList); client.SyncBudgetsCompleted += async (sender, e) => { if (e.Error == null) await SetupBudgetList(e.Result, true); callback(e.Error); }; }); } catch (Exception ex) { callback(ex); } }