/// <summary> /// Count /// </summary> /// <param name="parameters"></param> /// <returns></returns> public int Count(CompounderQueryParams parameters) { var dates = FmpHelper.BuildDatesList(parameters.YearFrom, parameters.YearTo, parameters.Dates); var command = DbCommands.Compounder(DataContext.Database.GetDbConnection(), Sql.Compounder(parameters, dates), parameters, dates); return(QueryAsEnumerable(command, ResultSetFunctions.Compounder).Count()); }
/// <summary> /// Run /// </summary> /// <param name="parameters"></param> /// <returns></returns> public ResultSetListReinvestment Run(CompounderQueryParams parameters) { ResultSetListReinvestment resultSetList = null; QueryFactory queryFactory = new QueryFactory(DataContext.ConnectionString); var p = parameters; var dates = FmpHelper.BuildDatesList(parameters.YearFrom, parameters.YearTo, parameters.Dates); var command = DbCommands.Compounder(DataContext.Database.GetDbConnection(), Sql.Compounder(parameters, dates), parameters, dates); var queryAsEnumerable = QueryAsEnumerable(command, ResultSetFunctions.Compounder); if (queryAsEnumerable.Count() > parameters.MaxResultCount) { return(new ResultSetListReinvestment(new List <ResultSetReinvestment>()) { CountTotal = queryAsEnumerable.Count() }); } var queryAsEnumerableList = queryAsEnumerable.ToList(); queryAsEnumerableList = AddHistoryData(queryAsEnumerableList, parameters, queryFactory.RoeHistoryQuery, a => a.RoeHistory); queryAsEnumerableList = AddHistoryData(queryAsEnumerableList, parameters, queryFactory.RevenueHistoryQuery, a => a.RevenueHistory); queryAsEnumerableList = AddHistoryData(queryAsEnumerableList, parameters, queryFactory.EpsHistoryQuery, a => a.EpsHistory); queryAsEnumerableList = AdjustToGrowthKoef(queryAsEnumerableList, parameters.RoeGrowthKoef, r => r.RoeHistory); queryAsEnumerableList = AdjustToGrowthKoef(queryAsEnumerableList, parameters.RevenueGrowthKoef, r => r.RevenueHistory); queryAsEnumerableList = AdjustToGrowthKoef(queryAsEnumerableList, parameters.EpsGrowthKoef, r => r.EpsHistory); List <ResultSetReinvestment> listOfResultSets = p.PageSize == 0 ? queryAsEnumerableList.ToList() : queryAsEnumerableList.Skip(p.CurrentPage * p.PageSize).Take(p.PageSize).ToList(); resultSetList = new ResultSetListReinvestment(listOfResultSets); resultSetList.CountTotal = queryAsEnumerableList.Count(); resultSetList = AddHistoryData(resultSetList, parameters, queryFactory.ReinvestmentHistoryQuery, a => a.ReinvestmentHistory); resultSetList = AddHistoryData(resultSetList, parameters, queryFactory.IncrementalRoeQuery, a => a.IncrementalRoe); resultSetList = AddHistoryData(resultSetList, parameters, queryFactory.OperatingIncomeHistoryQuery, a => a.OperatingIncome); resultSetList = AddHistoryData(resultSetList, parameters, queryFactory.CashConversionQuery, a => a.CashConversionHistory); resultSetList = AddCompanyName(resultSetList); resultSetList = AddDebtEquityIncome(resultSetList); return(resultSetList); }