public void DoFitCalculation(string stockName, string fitMethod)
        {
            CurveEntity curveInfo = this._iCurveDao.GetCurveByName(stockName);

            if (curveInfo == null)
            {
                LogHelper.Warn(typeof(ValueComplementBusinessImpl), "Cannot find certain stock information");
                return;
            }
            List <CurveDataEntity> curveDataList = this._iCurveDataDao.GetCurveDataByCurveId(curveInfo.CurveId);

            if (ListHelper.IsNullOrEmpty(curveDataList))
            {
                LogHelper.Warn(typeof(ValueComplementBusinessImpl), "Stock " + curveInfo.CurveName + " doesnot have any data");
                return;
            }
            int             missIdx = FindMissingValueIdx(curveDataList);
            CurveDataEntity missingCurveDataEntity = curveDataList[missIdx];
            List <PointDto> modelPoints            = ConvertValueItemsToPoints(curveDataList);

            if (missIdx != -1 && !ListHelper.IsNullOrEmpty(modelPoints))
            {
                IFitStrategy fitStrategy    = StrategyFactory.GetStrategyByName(fitMethod);
                PointDto     fitResultPoint = fitStrategy.FitCalculation(modelPoints, missIdx);
                missingCurveDataEntity.Value = System.Convert.ToDecimal(fitResultPoint.Y);
                //更新至db
                this._iCurveDataDao.Update(missingCurveDataEntity);
            }
        }