Ejemplo n.º 1
0
        public async Task <List <SumByCatDTO> > GetSumOfExpensesByCategory(ExpensesByOwnerDTO data)
        {
            List <SumByCatDTO> catSums  = new List <SumByCatDTO>();
            List <Expense>     expenses = await Task.Run(() => GetExpenses(new GetExpensesDTO {
                ownerId = data.ownerId, numberOfDaysToShow = data.numberOfDaysToShow, maxNumberOfExpensesToShow = -1
            }));

            foreach (CategoryEnum e in Enum.GetValues(typeof(CategoryEnum)))
            {
                float sum = 0;
                foreach (var expense in expenses)
                {
                    if (expense.Expensecategory == (int)e && expense.Expensetime >= DateTime.Now.AddDays(-data.numberOfDaysToShow))
                    {
                        sum += expense.Moneyused;
                    }
                    else if (expense.Expensecategory == (int)e && data.numberOfDaysToShow == -1)
                    {
                        sum += expense.Moneyused;
                    }
                }
                SumByCatDTO tuple = new SumByCatDTO
                {
                    category = Enum.GetName(typeof(CategoryEnum), e),
                    sum      = sum
                };
                catSums.Add(tuple);
            }
            return(catSums);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetSumOfExpensesByOwner(string ownerId, int numberOfDaysToShow)
        {
            ExpensesByOwnerDTO data = new ExpensesByOwnerDTO {
                ownerId = ownerId, numberOfDaysToShow = numberOfDaysToShow
            };

            return(Ok(await Task.Run(() => exp.GetSumOfExpensesByOwner(data))));
        }
Ejemplo n.º 3
0
        public async Task <List <SumByOwnerDTO> > GetSumOfExpensesByOwner(ExpensesByOwnerDTO data)
        {
            GetExpensesDTO data2 = new GetExpensesDTO();

            data2.ownerId                   = data.ownerId;
            data2.numberOfDaysToShow        = data.numberOfDaysToShow;
            data2.maxNumberOfExpensesToShow = -1;

            List <Expense> listOfExpenses = await Task.Run(() => GetExpenses(data2));

            List <SumByOwnerDTO> modifiedExpenses = (await Task.WhenAll(listOfExpenses.
                                                                        GroupBy(e => e.Userid).
                                                                        Select(async ce => new SumByOwnerDTO
            {
                userName = (await Task.Run(() => usp.GetUserById(new UserIdDTO {
                    userId = ce.First().Userid
                }))).Username,
                sum = ce.Sum(e => e.Moneyused)
            }))).ToList();

            return(modifiedExpenses);
        }