/// <summary> /// Run /// </summary> /// <param name="parameters"></param> /// <param name="symbolList"></param> /// <returns></returns> public ResultSetListReinvestment FindBySymbol(CompounderQueryParams parameters, List <string> symbolList) { ResultSetListReinvestment resultSetList = null; QueryFactory queryFactory = new QueryFactory(DataContext.ConnectionString); var dates = FmpHelper.BuildDatesList(parameters.YearFrom, parameters.YearTo, parameters.Dates); var command = DbCommands.FindBySymbol(DataContext.Database.GetDbConnection(), Sql.FindBySymbol(symbolList, dates), symbolList, dates); var queryAsEnumerable = QueryAsEnumerable(command, ResultSetFunctions.FindBySymbol).ToList(); queryAsEnumerable = AddHistoryData(queryAsEnumerable, parameters, queryFactory.RoeHistoryQuery, a => a.RoeHistory); queryAsEnumerable = AddHistoryData(queryAsEnumerable, parameters, queryFactory.RevenueHistoryQuery, a => a.RevenueHistory); queryAsEnumerable = AddHistoryData(queryAsEnumerable, parameters, queryFactory.EpsHistoryQuery, a => a.EpsHistory); queryAsEnumerable = AdjustToGrowthKoef(queryAsEnumerable, parameters.RoeGrowthKoef, r => r.RoeHistory); queryAsEnumerable = AdjustToGrowthKoef(queryAsEnumerable, parameters.RevenueGrowthKoef, r => r.RevenueHistory); queryAsEnumerable = AdjustToGrowthKoef(queryAsEnumerable, parameters.EpsGrowthKoef, r => r.EpsHistory); List <ResultSetReinvestment> listOfResultSets = queryAsEnumerable.ToList(); resultSetList = new ResultSetListReinvestment(listOfResultSets); resultSetList.CountTotal = queryAsEnumerable.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); }
/// <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> /// FindByCompany /// </summary> /// <param name="company"></param> /// <returns></returns> public List <string> FindByCompany(string company) { var command = DbCommands.FindByCompany(DataContext.Database.GetDbConnection(), Sql.FindByCompany(company), company); var queryAsEnumerable = QueryAsEnumerable(command, ResultSetFunctions.FindByCompany).ToList(); if (!queryAsEnumerable.Any()) { return(new List <string>()); } var result = queryAsEnumerable.Select(q => q.Symbol + "\t" + q.Name).Distinct().ToList(); return(result); }
/// <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); }