public async Task SaveTaskAsync(BudgetCategory2 item) { if (item.Id == null) { await budgetCategoryTable.InsertAsync(item); } else { await budgetCategoryTable.UpdateAsync(item); } }
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; } }