Пример #1
0
        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);
            }
        }