public IEnumerable <TransactionHistory> HistoryIn(Guid userId) { var res = new List <TransactionHistory>(); var userDetail = _UserCollection.GetById(userId); if (userDetail != null) { var userTransfers = _TransferCollection.GetMany(new TransferFilter() { DestinationAccountNumber = userDetail.AccountNumber, IsConfirmed = true }); userTransfers = userTransfers.Where(x => x.DestinationLinkingBankId == Guid.Empty); if (userTransfers.Any()) { var bank = _LinkingBankCollection.Get(new LinkingBankFilter() { Code = _Setting.BankCode }).FirstOrDefault(); foreach (var transfer in userTransfers) { var hisTransaction = new TransactionHistory(); // Nội bộ if (transfer.SourceLinkingBankId == Guid.Empty) { // Get chi tiết người gửi var source = _UserCollection.GetByAccountNumber(transfer.SourceAccountNumber); if (source != null) { hisTransaction.AccountName = source.Name; hisTransaction.AccountNumber = source.AccountNumber; hisTransaction.Description = transfer.Description; hisTransaction.IsPayIn = transfer.IsPayIn; if (transfer.IsSenderPay) { hisTransaction.Money = transfer.Money; } else { hisTransaction.Money = transfer.Money - transfer.Fee; } if (transfer.SourceLinkingBankId == bank.Id || (hisTransaction.IsPayIn.HasValue && hisTransaction.IsPayIn.Value == true)) { // noi bo hisTransaction.BankName = bank.Name; } else { var linkingBank = _LinkingBankCollection.GetById(transfer.SourceLinkingBankId); if (linkingBank != null) { hisTransaction.BankName = linkingBank.Name; } else { continue; } } } else { continue; } } // Linking bank else { // TODO // Khuê IExternalBanking externalBanking = null; if (transfer.DestinationLinkingBankId == Guid.Parse("8df09f0a-fd6d-42b9-804c-575183dadaf3")) { externalBanking = new ExternalBanking_BKTBank(_Encrypt, _Setting); externalBanking.SetPartnerCode(); } var source = externalBanking.GetInfoUser(transfer.DestinationAccountNumber); if (source != null) { hisTransaction.AccountName = source.full_name; hisTransaction.AccountNumber = source.account_number; hisTransaction.Description = transfer.Description; if (transfer.IsSenderPay) { hisTransaction.Money = transfer.Money; } else { hisTransaction.Money = transfer.Money - transfer.Fee; } var linkingBank = _LinkingBankCollection.GetById(transfer.SourceLinkingBankId); if (linkingBank != null) { hisTransaction.BankName = linkingBank.Name; } else { continue; } } else { continue; } } res.Add(hisTransaction); } } } return(res); }
public IEnumerable <CrossChecking> CrossCheckingIn(DateTime?from, DateTime?to, Guid?bankId) { var res = new List <CrossChecking>(); var transfers = _TransferCollection.GetMany(new TransferFilter() { IsConfirmed = true }); transfers = transfers.Where(x => x.DestinationLinkingBankId == Guid.Empty); if (bankId.HasValue) { transfers = transfers.Where(x => x.SourceLinkingBankId == bankId.Value); } foreach (var transfer in transfers) { var bank = _LinkingBankCollection.Get(new LinkingBankFilter() { Code = _Setting.BankCode }).FirstOrDefault(); // Get ngân hàng liên kết var linkBank = _LinkingBankCollection.GetById(transfer.SourceLinkingBankId); if (linkBank != null) { // Get thông tin giao dịch var transactions = _TransactionCollection.GetMany(new TransactionFilter() { ReferenceId = transfer.Id, Type = 0 }); if (from.HasValue) { transactions = transactions.Where(x => x.ConfirmTime.Value.Date >= from.Value.Date); } if (to.HasValue) { transactions = transactions.Where(x => x.ConfirmTime.Value.Date <= to.Value.Date); } if (transactions.Any()) { var transaction = transactions.FirstOrDefault(); // Get thông tin tài khoản nguồn // TODO var sourceAccount = new ExternalAccount(); IExternalBanking externalBanking = null; if (transfer.SourceLinkingBankId == Guid.Parse("8df09f0a-fd6d-42b9-804c-575183dadaf3")) { externalBanking = new ExternalBanking_BKTBank(_Encrypt, _Setting); externalBanking.SetPartnerCode(); } var source = externalBanking.GetInfoUser(transfer.SourceAccountNumber); if (source != null) { sourceAccount.Name = source.full_name; sourceAccount.AccountNumber = source.account_number; } else { sourceAccount = null; } if (sourceAccount != null) { // Get thông tin tài khoản đích var destAccount = _UserCollection.GetByAccountNumber(transfer.DestinationAccountNumber); if (destAccount != null) { var history = new CrossChecking(); history.SourceAccountName = sourceAccount.Name; history.SourceAccountNumber = sourceAccount.AccountNumber; history.SourceBankName = linkBank.Name; history.DestinationAccountName = destAccount.Name; history.DestinationAccountNumber = destAccount.AccountNumber; history.DestinationBankName = bank.Name; history.Description = transfer.Description; history.Money = transfer.Money; if (!transfer.IsSenderPay) { history.Money -= transfer.Fee; } history.ConfirmTime = transaction.ConfirmTime.Value; res.Add(history); } } } } } return(res); }