public async Task <FindEmployerAccountLevyDeclarationTransactionsResponse> Handle(FindEmployerAccountLevyDeclarationTransactionsQuery message)
        {
            var validationResult = await _validator.ValidateAsync(message);

            if (!validationResult.IsValid())
            {
                throw new InvalidRequestException(validationResult.ValidationDictionary);
            }

            if (validationResult.IsUnauthorized)
            {
                throw new UnauthorizedAccessException();
            }

            var accountId    = _hashingService.DecodeValue(message.HashedAccountId);
            var transactions = await _dasLevyService.GetAccountLevyTransactionsByDateRange <LevyDeclarationTransactionLine>
                                   (accountId, message.FromDate, message.ToDate, message.ExternalUserId);

            //var transactionDetailSummaries = data.Select(item => new LevyDeclarationTransactionLine
            //{
            //    Amount = item.Amount,
            //    EmpRef = item.EmpRef,
            //    TopUp = item.TopUp,
            //    TransactionDate = item.TransactionDate,
            //    EnglishFraction = item.EnglishFraction,
            //    LineAmount = item.LineAmount
            //}).ToList();

            return(new FindEmployerAccountLevyDeclarationTransactionsResponse
            {
                Transactions = transactions.ToList(),
                Total = transactions.Sum(c => c.LineAmount)
            });
        }