コード例 #1
0
        private async Task <AccountViewModel> MapToViewModelAsync(Account account)
        {
            var result = _mapper.Map <AccountViewModel>(account);

            var customer = account.Customer;

            if (customer == null && account.CustomerId.HasValue)
            {
                customer = await _customersService.GetByIdAsync(account.CustomerId.Value);
            }

            result.Customer = _mapper.Map <CustomerViewModel>(customer);

            var bills = await _billsService.GetManyAsync(account.Id);

            result.Bills = bills?.Select(_mapper.Map <BillViewModel>).ToArray();

            var cards = await _cardsService.GetManyAsync(account.Id);

            result.Cards = cards?.Select(_mapper.Map <CardViewModel>).ToArray();

            var transactions = await _transactionsService.GetManyAsync(account.Id);

            if (transactions?.Any() == true)
            {
                var resultTransactions = new List <TransactionViewModel>();
                foreach (var transaction in transactions)
                {
                    resultTransactions.Add(await MapToViewModelAsync(transaction));
                }
                result.Transactions = resultTransactions.ToArray();
            }

            return(result);
        }