public async Task SaveTaskAsync(BudgetItem item) { if (item.Id == null) { await budgetTable.InsertAsync(item); } else { await budgetTable.UpdateAsync(item); } }
public async Task <ObservableCollection <BudgetItem> > GetBudgetItemsAsync(bool syncItems = false, string entityType = "Budget", string category1 = "", string category2 = "") { try { #if OFFLINE_SYNC_ENABLED if (syncItems) { await this.SyncAsync(); } #endif IEnumerable <BudgetItem> items; IEnumerable <BudgetItem> actuals; List <BudgetItem> returnItems = new List <BudgetItem>(); if (entityType != "Budget") { if (category2 != "" && category2 != null && category1 != "" && category1 != null) { items = await budgetTable .Where(budgetItem => budgetItem.EntityType == entityType && budgetItem.Category1 == category1 && budgetItem.Category2 == category2) .OrderBy(bi => bi.Description) .ToEnumerableAsync(); } else { if (category1 != "" && category1 != null) { items = await budgetTable .Where(budgetItem => budgetItem.EntityType == entityType && budgetItem.Category1 == category1) .OrderBy(bi => bi.Category2) .ThenBy(bi => bi.Description) .ToEnumerableAsync(); } else { items = await budgetTable .Where(budgetItem => budgetItem.EntityType == entityType) .OrderBy(bi => bi.Category1) .ThenBy(bi => bi.Category2) .ThenBy(bi => bi.Description) .ToEnumerableAsync(); } } } else { if (category2 != "" && category2 != null && category1 != "" && category1 != null) { items = await budgetTable .Where(budgetItem => budgetItem.EntityType == "Budget" && budgetItem.Category1 == category1 && budgetItem.Category2 == category2) .ToEnumerableAsync(); actuals = await budgetTable .Where(budgetItem => budgetItem.EntityType == "Actual" && budgetItem.Category1 == category1 && budgetItem.Category2 == category2) .ToEnumerableAsync(); } else { if (category1 != "" && category1 != null) { items = await budgetTable .Where(budgetItem => budgetItem.EntityType == "Budget" && budgetItem.Category1 == category1) .ToEnumerableAsync(); actuals = await budgetTable .Where(budgetItem => budgetItem.EntityType == "Actual" && budgetItem.Category1 == category1) .ToEnumerableAsync(); } else { items = await budgetTable .Where(budgetItem => budgetItem.EntityType == "Budget") .OrderBy(BudgetItem => BudgetItem.Account) .ToEnumerableAsync(); actuals = await budgetTable .Where(budgetItem => budgetItem.EntityType == "Actual") .OrderBy(BudgetItem => BudgetItem.Account) .ToEnumerableAsync(); } } foreach (BudgetItem bi in items) { BudgetItem actual = actuals.FirstOrDefault(x => x.Account == bi.Account); if (actual != null) { bi.ActualAmount = actual.Amount; } else { bi.ActualAmount = 0; } returnItems.Add(bi); } } return(new ObservableCollection <BudgetItem>(returnItems)); } catch (MobileServiceInvalidOperationException msioe) { Debug.WriteLine(@"Invalid sync operation: {0}", msioe.Message); } catch (Exception e) { Debug.WriteLine(@"Sync error: {0}", e.Message); } return(null); }