public void Start() { while (true) { foreach (var cik in _ciks) { try { var uri = string.Format(_edgarUri, cik); var doc = _httpDataAgent.DownloadXml(uri); var json = _util.ToJson( _util.GetSpecialXmlElements("root", new[] { "company-info", "entry" }, doc)); var root = JsonConvert.DeserializeObject <RootObject>(json); foreach (var entry in root.root.entry) { var posIdxPage = entry.content.accession_nunber + "-index.htm"; var link = entry.link.href.Replace(posIdxPage, _posPage); var jPos = DownloadLatestPosition(link); var holding = JsonConvert.DeserializeObject <HoldingRoot>(jPos); var holding13 = new Portfolio() { infoTable = holding.holding.infoTable, Cik = cik, ReportedDate = entry.updated, Holder = root.root.company_info.conformed_name, _id = entry.content.accession_nunber }; if (!ReportExists(holding13)) { _dbOperation.SaveItems(new[] { holding13 }, "Portfolio"); } } } catch (Exception e) { Console.WriteLine(e); throw; } } Thread.Sleep(60 * 60 * 1000); } }