private static void WriteFile(IEnumerable <CommonStock> commonStocks, string fileName) { IStockProfileQuery stockProfileQuery = new StockProfileQuery(); using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileName)) { foreach (var stock in commonStocks) { try { Console.WriteLine("StockId:" + stock.Id); Task.Delay(1000).Wait(); var criteria = new SearchStockProfileCriteria() { StockId = stock.Id, Symbol = stock.Symbol }; var info = stockProfileQuery.SearchStockProfile(criteria); string index = $"{{ \"index\": {{ \"_index\": \"set_commonstockinfo\", \"_type\": \"commonstockinfo\", \"_id\": \"{info.Id}\"}} }}"; file.WriteLine(index); //string result = JsonConvert.SerializeObject(info); string indexData = $"{{ \"id\":{info.Id}, \"stockId\":{info.StockId},\"symbol\":\"{info.Symbol}\",\"address\":\"{info.Address}\",\"telephone\":\"{info.Telephone}\",\"fax\":\"{info.Fax}\",\"webSite\":\"{info.WebSite}\",\"market\":\"{info.Market}\",\"securityName\":\"{info.SecurityName}\",\"industry\":\"{info.Industry}\",\"sector\":\"{info.Sector}\",\"firstTradeDate\":\"{info.FirstTradeDate}\",\"parValue\":{info.ParValue},\"authorizedCapital\":{info.AuthorizedCapital},\"paidUpCapital\":{info.PaidUpCapital},\"listedShare\":{info.ListedShare},\"paidUpStock\":{info.PaidUpStock} }}"; file.WriteLine(indexData); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
public void SearchStockProfileTest() { IStockProfileQuery query = new StockProfileQuery(); var criteria = new SearchStockProfileCriteria(); criteria.Symbol = "A"; criteria.StockId = 1; var stockInfo = query.SearchStockProfile(criteria); string result = JsonConvert.SerializeObject(stockInfo); }
public CommonStockInfo SearchStockProfile(SearchStockProfileCriteria criteria) { CommonStockInfo info = new CommonStockInfo() { Id = criteria.StockId, Symbol = criteria.Symbol }; var html = string.Format(htmlTarget, criteria.Symbol); HtmlWeb web = new HtmlWeb(); var htmlDoc = web.Load(html); var rootDoc = GetRootNode(htmlDoc); if (rootDoc != null) { info.SecurityName = SelectNode(rootDoc, xPathStrong, "Company Name"); info.Address = SelectNode(rootDoc, xPathStrong, "Address"); info.Telephone = SelectNode(rootDoc, xPathStrong, "Telephone"); info.Fax = SelectNode(rootDoc, xPathStrong, "Fax"); info.WebSite = SelectNode(rootDoc, xPathStrongA, "Website"); info.Market = SelectNode(rootDoc, xPathStrong, "Market"); info.Industry = SelectNode(rootDoc, xPathStrong, "Industry"); info.Sector = SelectNode(rootDoc, xPathStrong, "Sector"); info.FirstTradeDate = ConvertToDateTime(SelectNode(rootDoc, xPathStrong, "First Trade Date"), "dd MMM yyyy"); info.ParValue = ConvertToDecimal(SelectNode(rootDoc, xPathStrong, "Par Value")); info.AuthorizedCapital = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Authorized Capital")); info.PaidUpCapital = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Paid-up Capital")); info.ListedShare = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Listed Share")); info.PaidUpStock = ConvertToDecimal(SelectNode(rootDoc, xPathDiv, "Paid-up Stock")); } return(info); }