Пример #1
0
        public void TestGetDownloadQItem()
        {
            var dal  = new SECFormsManager();
            var dtst = dal.GetFormDownloadQueue();

            Assert.IsNotNull(dtst);
        }
Пример #2
0
        private void FillFormTypesAndSavedSearches()
        {
            dropFormTypes.Items.Clear();
            DropSavedSearches.Items.Clear();
            var dal   = new SECFormsManager();
            var dal2  = new SavedSearchManager();
            var table = dal.GetFormTypes();

            dropFormTypes.Items.Add("(all)");
            foreach (var rowFt in table)
            {
                dropFormTypes.Items.Add(rowFt.formtype);
            }
            var table2 = dal2.GetSearches(SearchType);

            DropSavedSearches.DataSource     = table2;
            DropSavedSearches.DataTextField  = table2.descriptionColumn.ColumnName;
            DropSavedSearches.DataValueField = table2.descriptionColumn.ColumnName;
            DropSavedSearches.DataBind();
            var table3 = dal2.GetSearches(AutoSaveSearchType);

            foreach (var searchRow in table3)
            {
                searchRow.description = searchRow.description.ToLower();
            }
            DropSavedSearches2.DataSource     = table3;
            DropSavedSearches2.DataTextField  = table3.descriptionColumn.ColumnName;
            DropSavedSearches2.DataValueField = table3.descriptionColumn.ColumnName;
            DropSavedSearches2.DataBind();
        }
Пример #3
0
 protected void ButtonSearch_Click(object sender, EventArgs e)
 {
     if (TextSearchForms.Text.Trim() == string.Empty)
     {
         Literal1.Text = "<span class=alarm>Please enter search parameters</span>";
         return;
     }
     try
     {
         var manager = new SECFormsManager();
         if (TextFormTypes.Text.Trim() == string.Empty)
         {
             TextFormTypes.Text = "%";
         }
         var table = manager.GetFormsByFullTextSearchAndFormType(TextSearchForms.Text, TextFormTypes.Text, LinkResponseType.NotChanged, string.Empty);
         TextFormsList.Text = string.Empty;
         var vw = new DataView(table, "", "companyname asc, formdate asc", DataViewRowState.CurrentRows);
         var n  = TextBoxCompany.Text.ToLower().Trim();
         foreach (DataRowView rowV in vw)
         {
             var row = (secCrawlerData.tblSEC_FormsRow)rowV.Row;
             if (!CheckCompany.Checked || row.CompanyName.ToLower().Contains(n))
             {
                 TextFormsList.Text += row.FormID.ToString() + "\r\n";
             }
         }
     }
     catch (Exception ex)
     {
         Literal1.Text      = "<span class=alarm>" + ex.Message + "</span>";
         TextFormsList.Text = string.Empty;
     }
 }
Пример #4
0
        protected void btnProcesXLS_Click(object sender, EventArgs e)
        {
            var criteria = this.textCriteria.Text.Trim();

            if (criteria == string.Empty)
            {
                LabelStatus.Text = "Enter search criteria before searching";
                return;
            }
            if (TextFormTypes.Text.Trim() == string.Empty)
            {
                TextFormTypes.Text = "%";
            }
            var dal   = new SECFormsManager();
            var table = dal.GetFormsByFullTextSearchAndFormTypeWithSnippet(criteria, dropFormTypes.SelectedItem.Text, LinkResponseType.NotChanged, "./ViewEditForm?FormID=", TextBoxCompanyName.Text + '%');
            var dtst  = new DataSet();

            dtst.Tables.Add(table);
            table.TableName      = "Search_Results";
            Response.ContentType = "text/xml";
            Response.ClearContent();
            Response.AppendHeader("Content-disposition", "Attachment; filename=SECfilingsSearchResult.xls");
            //attachments
            var summary = new List <string>
            {
                "Searched for:" + HttpUtility.HtmlEncode(this.textCriteria.Text),
                "Documents found:" + table.Rows.Count.ToString(),
                "Search Date:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm")
            };

            COI.Util.ExcelEngine.Convert(dtst, Response.OutputStream, 2, 2, summary);
            Response.End();
        }
Пример #5
0
        public void TestFullTextSearch()
        {
            var dal   = new SECFormsManager();
            var table = dal.GetFormsByFullTextSearchAndFormType("Chris", "(all)", LinkResponseType.NotChanged, string.Empty);

            Assert.IsNotNull(table);
            Assert.Greater(table.Rows.Count, 0);
        }
Пример #6
0
        public void TestGetIngestQItem()
        {
            var dal  = new SECFormsManager();
            var dtst = dal.GetFormIngestQueue();

            Assert.IsNotNull(dtst);
            Assert.IsTrue(dtst.tblSEC_Forms.IsInitialized);
        }
Пример #7
0
        public int ProcessQueue()
        {
            var itemsProcessed = 0;

            try
            {
                var manager = new SECFormsManager();
                var dtst    = manager.GetFormDownloadQueue();
                Log("Read" + dtst.tblSEC_Forms.Rows.Count);
                var ftpClient = new FtpClient(_remotePath, _basePath);
                //to prevent concurrency errors, mark as downloaded immediately:
                foreach (var form in dtst.tblSEC_Forms)
                {
                    form.LastDownloaded = DateTime.Now;
                }
                manager.Save(dtst);
                Log("Blocked rows from parallel processes");
                foreach (var form in dtst.tblSEC_Forms)
                {
                    string error;
                    Log("form type: " + form.FormType + " company name: " + form.CompanyName);
                    ftpClient.Download(form.FormPartialURL, _useConsole, out error);
                    if (error == null)
                    {
                        error = string.Empty;
                    }
                    if (error == string.Empty)
                    {
                        form.LastDownloaded = DateTime.Now;
                        itemsProcessed++;
                    }
                    else
                    {
                        Log(error);
                    }
                }
                manager.Save(dtst);
                Log("saved rows");
                dtst.Clear();
            }
            catch (Exception ex)
            {
                Log(ex.Message);
            }
            return(itemsProcessed);
        }
Пример #8
0
        private int QuerySecDB(dtstResults dtst)
        {
            var rows    = 0;
            var manager = new SECFormsManager();
            var table   = manager.GetFormsByFullTextSearchAndFormType
                              (this.textCriteria.Text, "(all)", LinkResponseType.NotClickableWithModifiedPath, "");

            rows = table.Rows.Count;
            var i = 0;

            foreach (var row1 in table)
            {
                i--;
                dtst.Result.AddResultRow(row1.FormDate, "SEC filing", row1.FormPartialURL, row1.FormPartialURL, "--No Preview--",
                                         row1.CompanyName, string.Empty, string.Empty, i);
            }
            return(rows);
        }
Пример #9
0
        private void FillFormTypes()
        {
            var dal   = new SECFormsManager();
            var table = dal.GetFormTypes();

            dropFormTypes.Items.Add("(all)");
            var li = new ListItem("(all 10-Qs)", "10%q%");

            dropFormTypes.Items.Add(li);
            li = new ListItem("(all 10-Ks)", "10%k%");
            dropFormTypes.Items.Add(li);
            li = new ListItem("(all 8-Ks)", "8%k%");
            dropFormTypes.Items.Add(li);
            foreach (var rowFt in table)
            {
                dropFormTypes.Items.Add(rowFt.formtype);
            }
        }
Пример #10
0
        public int Snipe()
        {
            var generatedCount = 0;
            var adapter        = new SECFormsManager();
            var manager        = new SECFormsSnippetManager();
            var analyzer       = new SECFormsDocAnalyzer();
            var formsTable     = adapter.GetFormSniperQueue();
            var snippertsTable = new secCrawlerData.tblSEC_Forms_snippetDataTable();

            foreach (var form1 in formsTable)
            {
                var newSnippet = analyzer.GetFormSnippet(form1.FormID, 1);
                snippertsTable.AddtblSEC_Forms_snippetRow(
                    form1.FormID, 1, newSnippet, "default snippet"
                    );
                Log(newSnippet);
                generatedCount++;
            }
            var snippetTypes    = new[] { "former name" };//,"market information"};
            var snippetCriteria = new[] { "FORMER CONFORMED NAME", "Market Information" };
            var documentIndex   = new[] { 0, 1 };

            for (var i = 0; i < snippetTypes.Length; i++)
            {
                formsTable = adapter.GetFormSniperQueue(snippetTypes[i], snippetCriteria[i]);
                foreach (var form1 in formsTable)
                {
                    var newSnippet = analyzer.GetFormSnippet(form1.FormID, documentIndex[i], snippetCriteria[i]);
                    if (newSnippet.Length == 0)
                    {
                        continue;
                    }
                    snippertsTable.AddtblSEC_Forms_snippetRow(
                        form1.FormID, documentIndex[i], newSnippet, snippetTypes[i]);
                    Log(newSnippet);
                    generatedCount++;
                }
                manager.Save(snippertsTable);
            }
            return(generatedCount);
        }
Пример #11
0
        protected void btnProcess_Click(object sender, EventArgs e)
        {
            LabelStatus.Text = string.Empty;
            var criteria = this.textCriteria.Text.Trim();

            if (criteria == string.Empty)
            {
                LabelStatus.Text = "Enter search criteria before searching";
                return;
            }
            try
            {
                if (TextFormTypes.Text.Trim() == string.Empty)
                {
                    TextFormTypes.Text = "%";
                }
                var dal   = new SECFormsManager();
                var table = dal.GetFormsByFullTextSearchAndFormTypeWithSnippet(criteria, TextFormTypes.Text,
                                                                               LinkResponseType.ClickableWithModifiedLink, "./ViewEditForm.aspx?formId=", TextBoxCompanyName.Text + "%");
                GridView2.AutoGenerateColumns = false;
                var v = new DataView(table, "", this.DropSortBy.SelectedValue, DataViewRowState.CurrentRows);
                GridView2.DataSource = v;
                GridView2.DataBind();
                if (GridView2.Columns.Count == 9)
                {
                    GridView2.Columns.RemoveAt(8);
                    GridView2.Columns.RemoveAt(7);
                    GridView2.Columns.RemoveAt(6);
                    GridView2.Columns.RemoveAt(1);
                }
                this.LabelStatus.Text = "Records found : " + table.Rows.Count;
            }
            catch (Exception ex)
            {
                this.LabelStatus.Text = ex.Message;
            }
        }
Пример #12
0
        private DtstFilingSearchResult GetDtst()
        {
            Companies     = new List <string>();
            MinDates      = new List <DateTime>();
            MaxDates      = new List <DateTime>();
            KeywordsPerCo = new List <List <string> >();
            var manager  = new SECFormsManager();
            var analyzer = new SECFormsDocAnalyzer();
            var addPars  = int.Parse(DropProximityAdd.SelectedValue);
            var keywords = this.TextSearchPars.Text.Replace("\r", "").Split('\n');
            var dtst     = new DtstFilingSearchResult();
            var table    = dtst.MPSresults;
            var i        = 0;

            foreach (var line in this.TextFormsList.Text.Replace("\r\n", "\n").Split('\n'))
            {
                try
                {
                    if (string.IsNullOrEmpty(line))
                    {
                        continue;
                    }
                    var formID       = new Guid(line);
                    var form         = manager.GetFormsByFormID(formID)[0];
                    var companyIndex = Companies.IndexOf(form.CompanyName);
                    if (companyIndex == -1)
                    {
                        Companies.Add(form.CompanyName);
                        MinDates.Add(form.FormDate);
                        MaxDates.Add(form.FormDate);
                        KeywordsPerCo.Add(new List <string>());
                        companyIndex = Companies.IndexOf(form.CompanyName);
                    }
                    else //keep min and max date per company
                    {
                        if (form.FormDate < MinDates[companyIndex])
                        {
                            MinDates[companyIndex] = form.FormDate;
                        }
                        if (form.FormDate > MaxDates[companyIndex])
                        {
                            MaxDates[companyIndex] = form.FormDate;
                        }
                    }
                    var keywordsThisCo = KeywordsPerCo[companyIndex];
                    foreach (var keyword in keywords)
                    {
                        if (keyword.Trim() == string.Empty)
                        {
                            continue;
                        }
                        var pars = analyzer.GetFormSubDocParagraphsWithSearch(
                            formID, -1, keyword, addPars, CheckMultiple.Checked);
                        if (pars.Count == 0)
                        {
                            continue;
                        }
                        i++;
                        if (keywordsThisCo.IndexOf(keyword) == -1)
                        {
                            keywordsThisCo.Add(keyword);
                        }
                        foreach (var par in pars)
                        {
                            if (par.Trim() != string.Empty)
                            {
                                table.AddMPSresultsRow(i, form.FormDate, form.CompanyName,
                                                       form.FormType, keyword, par, form.FormPartialURL, formID);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Literal1.Text = ex.ToString();
                }
            }
            return(dtst);
        }