public async Task SaveTaskAsync(BudgetCategory2 item)
 {
     if (item.Id == null)
     {
         await budgetCategoryTable.InsertAsync(item);
     }
     else
     {
         await budgetCategoryTable.UpdateAsync(item);
     }
 }
示例#2
0
        private async Task RefreshItems(bool showActivityIndicator, bool syncItems)
        {
            try
            {
                using (var scope = new ActivityIndicatorScope(syncIndicator, showActivityIndicator))
                {
                    this.Title = PageTitle;

                    IEnumerable <BudgetCategory2> budgets = await manager.GetBudgeCategorysAsync(entityType : "Budget", category1 : category1);

                    IEnumerable <BudgetCategory2> actuals = await manager.GetBudgeCategorysAsync(entityType : "Actual", category1 : category1);

                    if (budgets != null)
                    {
                        foreach (BudgetCategory2 bc in budgets)
                        {
                            bc.BudgetAmount = bc.Amount;

                            BudgetCategory2 actual = actuals.FirstOrDefault(x => x.Category1 == bc.Category1 && x.Category2 == bc.Category2);
                            if (actual != null)
                            {
                                bc.Amount = (actual.Amount / (bc.Amount)) * 100;
                                if (bc.Amount < 0)
                                {
                                    bc.Amount = bc.Amount * -1;
                                }
                            }
                            else
                            {
                                bc.Amount = 0;
                            }

                            bc.ActualAmount = actual.Amount;
                        }


                        List <PercentageBarValue> PercentageBars = new List <PercentageBarValue>();
                        foreach (BudgetCategory2 budget in budgets)
                        {
                            decimal newPercentage = Math.Round((budget.Amount / 100), 2);

                            string barText = budget.ActualAmount.ToString("C") + " of " + budget.BudgetAmount.ToString("C");

                            string barColor;
                            if (newPercentage >= (decimal)1.0)
                            {
                                barColor = "RedBar.png";
                            }
                            else if (newPercentage >= (decimal)0.85)
                            {
                                barColor = "YellowBar.png";
                            }
                            else
                            {
                                barColor = "GreenBar.png";
                            }

                            decimal barWidth = Math.Round(Convert.ToDecimal(App.ScreenWidth) * newPercentage, 0);

                            PercentageBars.Add(new PercentageBarValue
                            {
                                BarLabel   = budget.Category2,
                                Percentage = newPercentage,
                                BarColor   = barColor,
                                BarWidth   = barWidth,
                                BarText    = barText,
                            });
                        }

                        PercentageBars.OrderByDescending(pb => pb.Percentage);

                        DataTemplate dt = new DataTemplate(typeof(PercentageBar));
                        category2List.ItemsSource         = new ObservableCollection <PercentageBarValue>(PercentageBars).OrderByDescending(x => x.Percentage);
                        category2List.ItemTemplate        = dt;
                        category2List.SeparatorVisibility = SeparatorVisibility.None;
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }