public void CalculateForMonth() { DateTime currentDate = BdTime.GetCurrentDate(); DateTime oneMonthBefore = currentDate.AddMonths(-1); MonthCheckManager monthCheckManager = new MonthCheckManager(); OrderManager orderManager = new OrderManager(); ExpenseManager expenseManager = new ExpenseManager(); if (monthCheckManager.GetMonthCheckByMonthYear(oneMonthBefore.Month, oneMonthBefore.Year) == null) { TransactionManager transactionManager = new TransactionManager(); User currentUser = SetSession.GetCurrentUser(); List <Order> totalMealOfOrderList = orderManager.TotalMealForMonthByUserList(oneMonthBefore.Month, oneMonthBefore.Year); List <Transaction> listOfTransaction = transactionManager.MakeTransactionListByTotalMealOrderAndMonth (totalMealOfOrderList, currentUser.Id, oneMonthBefore.Month, oneMonthBefore.Year); transactionManager.MakeTransactionFromTransactionListForTotalCalculation(listOfTransaction); double averageMealPriceOfMonth = expenseManager.GetAverageMealPriceOfMonth(oneMonthBefore.Month, oneMonthBefore.Year); orderManager.AddMealPriceForAllOrderByMonth(oneMonthBefore.Month, oneMonthBefore.Year, averageMealPriceOfMonth); monthCheckManager.AddCheckForMonthYear(oneMonthBefore.Month, oneMonthBefore.Year); } }