public object BankAccounts(SearchPackage searchPackage, string currencyCode)
        {
            var brandFilterSelections = _adminQueries.GetBrandFilterSelections();

            var bankAccounts = _bankAccountQueries.GetFilteredBankAccounts(CurrentUser.Id)
                               .Where(x => brandFilterSelections.Contains(x.Bank.BrandId));

            if (!string.IsNullOrEmpty(currencyCode))
            {
                bankAccounts = bankAccounts.Where(x => x.CurrencyCode == currencyCode);
            }

            var dataBuilder = new SearchPackageDataBuilder <BankAccount>(searchPackage, bankAccounts);

            dataBuilder.SetFilterRule(x => x.Bank.Brand, value => p => p.Bank.BrandId == new Guid(value))
            .Map(obj => obj.Id, obj =>
                 new[]
            {
                obj.CurrencyCode,
                obj.AccountId,
                obj.AccountName,
                obj.AccountNumber,
                obj.AccountType.Name,
                obj.Bank.BankName,
                obj.Province,
                obj.Branch,
                obj.Status.ToString(),
                obj.CreatedBy,
                obj.Created.ToString("yyyy/MM/dd HH:mm:ss zzz"),
                obj.UpdatedBy,
                obj.Updated.HasValue ? obj.Updated.Value.ToString("yyyy/MM/dd HH:mm:ss zzz") : "",
                obj.PaymentLevels.Any().ToString()
            }
                 );

            var data = dataBuilder.GetPageData(obj => obj.AccountName);

            return(new JsonResult
            {
                Data = data,
                MaxJsonLength = int.MaxValue,
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }