[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); }
//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(); }