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); } }