Exemplo n.º 1
0
        public IEnumerable <TransactionHistory> HistoryDeptIn(Guid userId)
        {
            var res = new List <TransactionHistory>();

            var userDetail = _UserCollection.GetById(userId);

            if (userDetail != null)
            {
                var userDepts = _DeptReminderCollection.GetMany(new DeptReminderFilter()
                {
                    RequestorAccountNumber = userDetail.AccountNumber, IsCanceled = false, IsPaid = true
                });

                if (userDepts.Any())
                {
                    foreach (var userDept in userDepts)
                    {
                        var hisTransaction = new TransactionHistory();

                        // Get chi tiết người trả nợ
                        var dest = _UserCollection.GetByAccountNumber(userDept.RecipientAccountNumber);
                        if (dest != null)
                        {
                            hisTransaction.AccountName   = dest.Name;
                            hisTransaction.AccountNumber = dest.AccountNumber;
                            hisTransaction.Description   = userDept.Description;
                            hisTransaction.Money         = userDept.Money;

                            var linkingBanks = _LinkingBankCollection.Get(new LinkingBankFilter()
                            {
                                Code = _Setting.BankCode
                            });
                            if (linkingBanks != null)
                            {
                                hisTransaction.BankName = linkingBanks.FirstOrDefault().Name;
                            }
                            else
                            {
                                continue;
                            }
                        }
                        else
                        {
                            continue;
                        }

                        res.Add(hisTransaction);
                    }
                }
            }
            return(res);
        }
Exemplo n.º 2
0
 private bool Init()
 {
     try
     {
         var info = _LinkingBankCollection.Get(new Models.Filters.LinkingBankFilter()
         {
             Code = _key
         }).FirstOrDefault();
         if (info != null)
         {
             _type           = (int)info.Type;
             _pgpKeyPassword = info.Password;
             _privateKey     = info.PrivateKey;
             _publicKey      = info.PublicKey;
             _keySize        = info.KeySize;
         }
         else
         {
             return(false);
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Exemplo n.º 3
0
        private bool Init()
        {
            try
            {
                var info = _LinkingBankCollection.Get(new Models.Filters.LinkingBankFilter()
                {
                    Code = _key
                }).FirstOrDefault();
                if (info != null)
                {
                    _type           = (int)info.Type;
                    _pgpKeyPassword = info.Password;

                    string pattern = _type == 1 ? "rsa" : "pgp";
                    var    files   = Directory.GetFiles(@"./LocalData", $"{pattern}_{_key}_*.*").ToList();
                    if (!files.Any())
                    {
                        return(false);
                    }
                    else
                    {
                        // RSA
                        if (_type == 1)
                        {
                            _privateKey = File.ReadAllText(files.First(x => x.Contains("private")));
                            _publicKey  = File.ReadAllText(files.First(x => x.Contains("public")));
                        }
                        else
                        {
                            _privateKey = files.First(x => x.Contains("private"));
                            _publicKey  = files.First(x => x.Contains("public"));
                        }
                    }
                }
                else
                {
                    return(false);
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }
 public IEnumerable <LinkingBank> GetLinkingBank()
 {
     return(_LinkingBankCollection.Get(new LinkingBankFilter()));
 }
        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);
        }