public IncomeStatementCollection GetIncomeStatements(string tickerSymbol, int fromYear, int toYear) { IncomeStatementCollection incs = null; IncomeStatement inc = null; MySqlParameter[] parms = new MySqlParameter[] { new MySqlParameter("@SYMBOL", MySqlDbType.VarChar), new MySqlParameter("@FROMYEAR", MySqlDbType.Int16), new MySqlParameter("@TOYEAR", MySqlDbType.Int16) }; parms[0].Value = tickerSymbol; parms[1].Value = fromYear; parms[2].Value = toYear; using (MySqlDataReader rdr = MySqlHelper.ExecuteReader(MySqlHelper.SV_CONN_STRING, SQL_SELECT_INCS, parms)) { if (rdr.Read()) { //If there is one result incs = new IncomeStatementCollection(); //Scroll through the results do { inc = ConvertReaderToIncomeStatementObject(rdr); if (inc.Revenue != 0) { incs.Add(inc); } }while (rdr.Read()); } } return(incs); }
public IncomeStatementCollection ProjectIncomeStatementsAvgRevenueGrowth(string symbol, int fromYear, int yrsToProject) { IncomeStatementCollection incProjections = IncomeStatementBL.Instance.GetIncomeStatements(symbol, fromYear - 2, fromYear); CheckEnoughIncomeStatements(incProjections); decimal avgGrowthRate = GetRevenueAverageGrowthRate(incProjections); for (int i = fromYear + 1; i < fromYear + yrsToProject + 1; i++) { IncomeStatement lastYrInc = incProjections.Find(i - 1); if (lastYrInc != null) { incProjections.Add(new IncomeStatement( incProjections[0].Symbol, i, lastYrInc.Revenue * (1 + avgGrowthRate), lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("Cogs", incProjections), lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("OperatingExpenses", incProjections), lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("Depreciation", incProjections), lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("NetIncome", incProjections), lastYrInc.Revenue * (1 + avgGrowthRate) * GetAvgPercentOfSales("CapitalExpenditures", incProjections) )); } } return(incProjections); }
public IncomeStatementCollection ProjectIncomeStatementsDecayRevenueGrowth(string symbol, int fromYear, int yrsToProject, decimal endGrowth) { IncomeStatementCollection incProjections = IncomeStatementBL.Instance.GetIncomeStatements(symbol, fromYear - 2, fromYear); CheckEnoughIncomeStatements(incProjections); decimal[] yoyGrowth = GetDecayGrowthRates(yrsToProject, endGrowth, incProjections); int j = 0; for (int i = fromYear + 1; i < fromYear + yrsToProject + 1; i++) { IncomeStatement lastYrInc = incProjections.Find(i - 1); if (lastYrInc != null) { incProjections.Add(new IncomeStatement( incProjections[0].Symbol, i, lastYrInc.Revenue * (1 + yoyGrowth[j]), lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("Cogs", incProjections), lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("OperatingExpenses", incProjections), lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("Depreciation", incProjections), lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("NetIncome", incProjections), lastYrInc.Revenue * (1 + yoyGrowth[j]) * GetAvgPercentOfSales("CapitalExpenditures", incProjections) )); } j++; } return(incProjections); }
public IncomeStatementCollection GetIncomeStatements(string tickerSymbol, int fromYear, int toYear) { IncomeStatementCollection incs = null; IncomeStatement inc = null; MySqlParameter[] parms = new MySqlParameter[] { new MySqlParameter("@SYMBOL", MySqlDbType.VarChar), new MySqlParameter("@FROMYEAR", MySqlDbType.Int16), new MySqlParameter("@TOYEAR", MySqlDbType.Int16) }; parms[0].Value = tickerSymbol; parms[1].Value = fromYear; parms[2].Value = toYear; using (MySqlDataReader rdr = MySqlHelper.ExecuteReader(MySqlHelper.SV_CONN_STRING, SQL_SELECT_INCS, parms)) { if (rdr.Read()) { //If there is one result incs = new IncomeStatementCollection(); //Scroll through the results do { inc = ConvertReaderToIncomeStatementObject(rdr); if (inc.Revenue != 0) { incs.Add(inc); } } while (rdr.Read()); } } return incs; }
public IncomeStatementCollection GetIncomeStatementData(string symbol, int year, int yearsToLoad) { string url = "http://finance.yahoo.com/q/is?s=" + symbol + "+Income+Statement&annual"; HtmlDocument doc = new HtmlWeb().Load(url); Dictionary<int, Dictionary<string, decimal>> values = new Dictionary<int, Dictionary<string, decimal>>(); Dictionary<string, decimal> inc2012 = new Dictionary<string, decimal>(); Dictionary<string, decimal> inc2011 = new Dictionary<string,decimal>(); Dictionary<string, decimal> inc2010 = new Dictionary<string,decimal>(); foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@colspan='2']")) { if (div.InnerHtml.Contains("Total Revenue")) { inc2012.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2011.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2010.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); } else if (div.InnerHtml.Contains("Cost of Revenue")) { inc2012.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.InnerHtml.Contains("Net Income") && !div.InnerHtml.Contains("Ops") && !div.InnerHtml.Contains("To")) { inc2012.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2011.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2010.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); } } foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@width ='30' and @class='yfnc_tabledata1']")) { if (div.NextSibling.NextSibling.InnerHtml.Contains("Research Development")) { inc2012.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.NextSibling.NextSibling.InnerHtml.Contains("Selling General and Administrative")) { inc2012.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.NextSibling.NextSibling.InnerHtml.Contains("Non Recurring")) { inc2012.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.NextSibling.NextSibling.InnerHtml.Contains("Others")) { inc2012.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Total Other Income/Expenses Net")) //{ // inc2012.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Earnings Before Interest And Taxes")) //{ // inc2012.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Interest Expense")) //{ // inc2012.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Income Tax Expense")) //{ // inc2012.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Minority Interest")) //{ // inc2012.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Discontinued Operations")) //{ // inc2012.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Extraordinary Items")) //{ // inc2012.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Effect Of Accounting Changes")) //{ // inc2012.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Other Items")) //{ // inc2012.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} } values.Add(2010, inc2010); values.Add(2011, inc2011); values.Add(2012, inc2012); IncomeStatementCollection incs = new IncomeStatementCollection(); for (int y = year; y > year - yearsToLoad; y--) { if (values.ContainsKey(y)) { incs.Add(new IncomeStatement(symbol, y, values[y]["Total Revenue"], values[y]["Cost of Revenue"], values[y]["Research Development"] + values[y]["Selling General and Administrative"] + values[y]["Non Recurring"] + values[y]["Others"], 0, values[y]["Net Income"], 0) ); } } return incs; }
public IncomeStatementCollection GetIncomeStatementData(string symbol, int year, int yearsToLoad) { string url = "http://finance.yahoo.com/q/is?s=" + symbol + "+Income+Statement&annual"; HtmlDocument doc = new HtmlWeb().Load(url); Dictionary <int, Dictionary <string, decimal> > values = new Dictionary <int, Dictionary <string, decimal> >(); Dictionary <string, decimal> inc2012 = new Dictionary <string, decimal>(); Dictionary <string, decimal> inc2011 = new Dictionary <string, decimal>(); Dictionary <string, decimal> inc2010 = new Dictionary <string, decimal>(); foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@colspan='2']")) { if (div.InnerHtml.Contains("Total Revenue")) { inc2012.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2011.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2010.Add("Total Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); } else if (div.InnerHtml.Contains("Cost of Revenue")) { inc2012.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Cost of Revenue", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.InnerHtml.Contains("Net Income") && !div.InnerHtml.Contains("Ops") && !div.InnerHtml.Contains("To")) { inc2012.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2011.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); inc2010.Add("Net Income", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes["strong"].ChildNodes[0].InnerHtml)); } } foreach (HtmlNode div in doc.DocumentNode.SelectNodes("//td[@width ='30' and @class='yfnc_tabledata1']")) { if (div.NextSibling.NextSibling.InnerHtml.Contains("Research Development")) { inc2012.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Research Development", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.NextSibling.NextSibling.InnerHtml.Contains("Selling General and Administrative")) { inc2012.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Selling General and Administrative", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.NextSibling.NextSibling.InnerHtml.Contains("Non Recurring")) { inc2012.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Non Recurring", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } else if (div.NextSibling.NextSibling.InnerHtml.Contains("Others")) { inc2012.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2011.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); inc2010.Add("Others", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); } //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Total Other Income/Expenses Net")) //{ // inc2012.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Total Other Income/Expenses Net", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Earnings Before Interest And Taxes")) //{ // inc2012.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Earnings Before Interest And Taxes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Interest Expense")) //{ // inc2012.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Interest Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Income Tax Expense")) //{ // inc2012.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Income Tax Expense", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Minority Interest")) //{ // inc2012.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Minority Interest", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Discontinued Operations")) //{ // inc2012.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Discontinued Operations", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Extraordinary Items")) //{ // inc2012.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Extraordinary Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Effect Of Accounting Changes")) //{ // inc2012.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Effect Of Accounting Changes", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} //else if (div.NextSibling.NextSibling.InnerHtml.Contains("Other Items")) //{ // inc2012.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2011.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); // inc2010.Add("Other Items", GetValueFromInnerHtml(div.NextSibling.NextSibling.NextSibling.NextSibling.NextSibling.ChildNodes[0].InnerHtml)); //} } values.Add(2010, inc2010); values.Add(2011, inc2011); values.Add(2012, inc2012); IncomeStatementCollection incs = new IncomeStatementCollection(); for (int y = year; y > year - yearsToLoad; y--) { if (values.ContainsKey(y)) { incs.Add(new IncomeStatement(symbol, y, values[y]["Total Revenue"], values[y]["Cost of Revenue"], values[y]["Research Development"] + values[y]["Selling General and Administrative"] + values[y]["Non Recurring"] + values[y]["Others"], 0, values[y]["Net Income"], 0) ); } } return(incs); }