public ActionResult ApproveList(SearchPackage searchPackage)
        {
            var data = SearchOfflineDeposits(
                searchPackage,
                new[] { OfflineDepositStatus.Verified },
                obj =>
                new[]
            {
                obj.Player.Username,
                obj.TransactionNumber,
                LabelHelper.LabelPaymentMethod(obj.PaymentMethod),
                obj.CurrencyCode,
                obj.Amount.ToString(CultureInfo.InvariantCulture),
                obj.Status.ToString(),
                obj.Brand.Name,
                obj.Created.ToString("yyyy/MM/dd HH:mm:ss zzz"),
                obj.VerifiedBy,
                obj.DepositType.ToString(),
                obj.BankAccount.AccountId,
                obj.BankAccount.Bank.BankName,
                obj.BankAccount.Province,
                obj.BankAccount.Branch,
                obj.BankAccount.AccountNumber,
                obj.BankAccount.AccountName
            },
                _paymentQueries.GetOfflineDeposits());

            return(new JsonResult {
                Data = data, MaxJsonLength = int.MaxValue, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
 public OfflineDepositViewModel(OfflineDepositDto offlineDeposit)
 {
     Identifier          = offlineDeposit.BankAccount.Id;
     Licensee            = offlineDeposit.Brand.LicenseeName;
     Brand               = offlineDeposit.Brand.Name;
     PlayerId            = offlineDeposit.PlayerId;
     Username            = offlineDeposit.Player.Username;
     FirstName           = offlineDeposit.Player.FirstName;
     LastName            = offlineDeposit.Player.LastName;
     PlayerName          = offlineDeposit.Player.FullName;
     TransactionNumber   = offlineDeposit.TransactionNumber;
     Status              = offlineDeposit.Status.ToString();
     PlayerAccountName   = offlineDeposit.PlayerAccountName;
     PlayerAccountNumber = offlineDeposit.PlayerAccountNumber;
     ReferenceNumber     = offlineDeposit.BankReferenceNumber;
     Amount              = offlineDeposit.Amount;
     CurrencyCode        = offlineDeposit.CurrencyCode;
     BankName            = offlineDeposit.BankAccount.Bank.BankName;
     BankAccountId       = offlineDeposit.BankAccount.AccountId;
     BankAccountName     = offlineDeposit.BankAccount.AccountName;
     BankAccountNumber   = offlineDeposit.BankAccount.AccountNumber;
     BankProvince        = offlineDeposit.BankAccount.Province;
     BankBranch          = offlineDeposit.BankAccount.Branch;
     TransferType        = offlineDeposit.TransferType.ToString("F");
     DepositType         = offlineDeposit.DepositType.ToString("F");
     OfflineDepositType  = LabelHelper.LabelOfflineDepositType(offlineDeposit.DepositMethod);
     PaymentMethod       = LabelHelper.LabelPaymentMethod(offlineDeposit.PaymentMethod);
     Remark              = offlineDeposit.Remark;
     PlayerRemark        = offlineDeposit.PlayerRemark;
     Created             = offlineDeposit.Created.ToString("yyyy/MM/dd HH:mm:ss zzz");
     CreatedBy           = offlineDeposit.CreatedBy;
     Verified            = offlineDeposit.Verified?.ToString("yyyy/MM/dd HH:mm:ss zzz") ?? "";
     VerifiedBy          = offlineDeposit.VerifiedBy;
     IdFrontImage        = offlineDeposit.IdFrontImage;
     IdBackImage         = offlineDeposit.IdBackImage;
     ReceiptImage        = offlineDeposit.ReceiptImage;
     UnverifyReason      = offlineDeposit.UnverifyReason.HasValue
         ? GetUnverifyReasons().Single(o => o.Key == offlineDeposit.UnverifyReason.ToString()).Value
         : string.Empty;
     UnverifyReasons = GetUnverifyReasons().Select(o => new
     {
         Code    = o.Key,
         Message = o.Value
     });
 }