예제 #1
0
        //public void ReportThread(string result, string strRptFolder)
        public void BankRateThread(object QueryCode)
        {
            List <BANK_RULES> lbr = new List <BANK_RULES>();
            BankRuleService   brs = new BankRuleService();

            lbr = brs.findAll();
            foreach (BANK_RULES BR in lbr)
            {
                try
                {
                    string      result = "";
                    BankService bs     = new BankService();
                    BANK        b      = new BANK();
                    b = bs.find(BR.BankCode);
                    if (b != null)
                    {
                        string             groupCode   = Guid.NewGuid().ToString();
                        RATE_HISTORY       rateHistory = new RATE_HISTORY();
                        RateHistoryService rhs         = new RateHistoryService();
                        if (b.BankCode == "OCB")
                        {
                            Thread.Sleep(180000);
                            if (BankRateService.LastOCBRun.AddMinutes(5) < DateTime.Now)
                            {
                                BankRateService.LastOCBRun = DateTime.Now;
                                string bankData = DataExtractorFactory.getDataExtractor(b).extractData(b);

                                result = RuleProcessor.process(bankData, BR.BankRule, b.BankCode);
                            }
                        }
                        else
                        {
                            string bankData = DataExtractorFactory.getDataExtractor(b).extractData(b);

                            result = RuleProcessor.process(bankData, BR.BankRule, b.BankCode);
                        }

                        if (result != "")
                        {
                            rateHistory = rhs.get(b.BankCode, BR.TenorCode);
                            float finalResult;
                            if (rateHistory != null)
                            {
                                if (float.TryParse(result, out finalResult))
                                {
                                    rateHistory.InsRate   = result;
                                    rateHistory.GroupCode = groupCode;
                                    rateHistory.Timestamp = DateTime.Now;
                                    rhs.editRateHistory(rateHistory);
                                }
                            }
                            else
                            {
                                if (float.TryParse(result, out finalResult))
                                {
                                    rateHistory           = new RATE_HISTORY();
                                    rateHistory.BankCode  = b.BankCode;
                                    rateHistory.TenorCode = BR.TenorCode;

                                    rateHistory.InsRate   = result;
                                    rateHistory.GroupCode = groupCode;
                                    rateHistory.Timestamp = DateTime.Now;
                                    rhs.addRateHistory(rateHistory);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    log.Info("Error: ", ex);
                }
            }
        }