示例#1
0
        [Test] public void TestSystemChangeParser1()
        {
            const string l      = "http://otcbb.com/asp/dailylist_search.asp?DirectSymbol=LATI&OTCBB=OTCBB";
            var          parser = new Source80SystemChangesParser(l, 99);
            var          log    = parser.SaveNameSymbolChanges();

            Console.WriteLine(log);
        }
示例#2
0
        //http://otcbb.com/asp/dailylist_search.asp?SearchSymbolForm=TRUE&OTCBB=OTCBB&searchby=name&image1.x=33&image1.y=7&searchwith=Contains&searchfor={0}
        [Test] public void TestSystemChangeParser2()
        {
            const string l      = "http://otcbb.com/asp/dailylist_search.asp?SearchSymbolForm=TRUE&OTCBB=OTCBB&searchby=name&image1.x=33&image1.y=7&searchwith=Contains&searchfor=MW+medical";
            var          parser = new Source80SystemChangesParser(l, 99);
            var          log    = parser.SaveNameSymbolChanges();

            Console.WriteLine(log);
        }
        private void DoNAmeChangesFromSEC()
        {
            const string    s0      = "FORMER CONFORMED NAME:";
            const string    s1      = "DATE OF NAME CHANGE:";
            IFormatProvider culture = new CultureInfo("en-US", true);

            var dal      = new DocumentManager();
            var dalC     = new CompanyManager();
            var dalL     = new LinkManager();
            var snippets = dal.GetSECSnippetsByType("former name");
            var aux      = new Batch2WebAux(Response, BatchManager.BatchNamesEnum.NameChangesFromSECCrawler);

            aux.AddHead();
            var c = 0D;

            foreach (var snippet in snippets)
            {
                try{
                    aux.WriteLine(string.Format("processing snippet for company {0} date of filing {1:yyyy-MM-dd}", snippet.CompanyName, snippet.FormDate));
                    var s = snippet.snippet.Replace("\t", " ").Replace("\r\n", " ").Replace("    ", " ").Replace("   ", " ").Replace("  ", " ");
                    if (s.Contains(s0) && s.Contains(s1))
                    {
                        var      index0       = s.IndexOf(s0) + s0.Length;
                        var      index1       = s.IndexOf(s1, index0);
                        var      previousName = s.Substring(index0, index1 - index0);
                        var      previousDate = s.Substring(index1 + s1.Length, 10).Trim();
                        DateTime d;
                        try { d = DateTime.ParseExact(previousDate, "yyyyMMdd", culture); }
                        catch { try { d = DateTime.ParseExact(previousDate, "yyyy-MM-dd", culture); }
                                catch { try { d = DateTime.Parse(previousDate); } catch { d = DateTime.MinValue; } } }
                        if (d == DateTime.MinValue)
                        {
                            aux.WriteLine("Unable to parse date " + previousDate); continue;
                        }
                        aux.WriteLine(string.Format("Found previous name {0} and date of name change {1:yyyy-MM-dd}", previousName, d));
                        previousName        = DAL.Util.Dbo.FilterName(previousName);
                        snippet.CompanyName = DAL.Util.Dbo.FilterName(snippet.CompanyName);
                        var parser = new Source80SystemChangesParser("ftp://ftp.sec.gov/" + snippet.FormPartialURL, 99);
                        var dbDoc  = parser.GetOrCreateDbDoc();
                        aux.WriteLine(parser.CreateDbRecordsForNameChange(dalC, dalL, previousName, snippet.CompanyName, d, dbDoc));
                    }
                    else
                    {
                        aux.WriteLine("snippet is not usable: " + s);
                    }
                    c++;
                    aux.SetProgress(c / (double)snippets.Rows.Count);
                }catch (Exception ex1)
                { aux.WriteLine(string.Format("<hr /><b>exception</b><br />{0} <hr>", ex1.ToString())); }
            }
            aux.AddFoot();
            aux.Save();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            var outp = new Batch2WebAux(Response, OTCBB1);

            outp.AddHead();
            const string l         = "http://otcbb.com/asp/dailylist_search.asp?SearchSymbolForm=TRUE&OTCBB=OTCBB&searchby=name&image1.x=33&image1.y=7&searchwith=Contains&searchfor=";
            var          companies = new CompanyManager().GetCompanies();
            var          countCo   = 0D;

            foreach (var company in companies)
            {
                countCo++;
                var url    = l + HttpUtility.UrlEncode(company.company_name);
                var parser = new Source80SystemChangesParser(url, 99);
                var log1   = parser.SaveNameSymbolChanges();
                outp.WriteLine(log1);
                outp.SetProgress(countCo / (double)companies.Rows.Count);
            }
            outp.AddFoot();
            outp.Save();
        }