Beispiel #1
0
 public async Task SaveTaskAsync(BudgetItem item)
 {
     if (item.Id == null)
     {
         await budgetTable.InsertAsync(item);
     }
     else
     {
         await budgetTable.UpdateAsync(item);
     }
 }
Beispiel #2
0
        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);
        }