示例#1
0
        public List <ExpenseStatistic> GetExpensesStatistic(long userId)
        {
            var expenses          = _dbContext.GetExpenses(userId);
            var expenseStatistics = new List <ExpenseStatistic>();

            foreach (var category in expenses.Select(r => r.Category.Name).Distinct())
            {
                var categoryAmount = expenses.Where(r => r.Category.Name == category).Select(r => r.Amount).Sum();
                var percent        = Math.Round(categoryAmount * 100 / expenses.Select(r => r.Amount).Sum(), 1);
                expenseStatistics.Add(new ExpenseStatistic(category, categoryAmount, percent));
            }

            return(expenseStatistics.OrderByDescending(r => r.TotalAmount).ToList());
        }
示例#2
0
        private string GetExpensesListText(long userId, DateTime startDate, DateTime endDate)
        {
            List <Expense> expenses      = _dbContext.GetExpenses(userId, startDate, endDate).OrderByDescending(r => r.Date).ToList();
            StringBuilder  stringBuilder = new StringBuilder();
            string         period        = startDate.Year == DateTime.Now.Year ? startDate.ToString("MMMM", _culture) : startDate.ToString("MMMM yyyy", _culture);

            stringBuilder.Append($"{new Emoji(0x1F4DC)} Список витрат за <u><b>{period}</b></u>\n");
            foreach (var expense in expenses)
            {
                stringBuilder.Append(expense + "\n");
            }
            return(stringBuilder.ToString());
        }