Beispiel #1
0
        private void SetTransactionLines(TransactionViewModel viewModel, AggregationData aggregatedTransactionData)
        {
            var aggregatedLevyTransactions = aggregatedTransactionData.TransactionLines
                                             .Where(t => t.TransactionType == TransactionItemType.Declaration)
                                             .GroupBy(t => t.DateCreated.Date)
                                             .Select(grp =>
            {
                var firstLevyTransactionInDay = grp.First();
                return(new TransactionLine
                {
                    AccountId = firstLevyTransactionInDay.AccountId,
                    DateCreated = firstLevyTransactionInDay.DateCreated,
                    Amount = grp.Sum(ltl => ltl.Amount),
                    TransactionType = TransactionItemType.Declaration,
                    Description = firstLevyTransactionInDay.Description,
                    PayrollDate = firstLevyTransactionInDay.PayrollDate,
                    PayrollMonth = firstLevyTransactionInDay.PayrollMonth,
                    PayrollYear = firstLevyTransactionInDay.PayrollYear
                });
            });

            var newTransactionLines = aggregatedTransactionData.TransactionLines
                                      .Where(t => t.TransactionType != TransactionItemType.Declaration)
                                      .Union(aggregatedLevyTransactions)
                                      .ToArray();

            viewModel.Data.TransactionLines = newTransactionLines;
        }
Beispiel #2
0
        private TransactionViewModel BuildTransactionViewModel(AggregationData aggregationData, int year, int month)
        {
            var viewModel = new TransactionViewModel
            {
                Data = new AggregationData
                {
                    AccountId       = aggregationData.AccountId,
                    HashedAccountId = aggregationData.HashedAccountId,
                },
                CurrentBalance = aggregationData.Balance
            };

            SetTransactionLines(viewModel, aggregationData);
            return(viewModel);
        }