public void SourceAAPL_Extract_Success() { FileDictionary fileDict = new FileDictionary(); ISource secSource = new SECSource(); ISourceInitParams initParams = secSource.CreateInitParams(); initParams.Dictionary = fileDict; secSource.Init(initParams); ISourceExtractParams extractParams = secSource.CreateExtractParams(); extractParams.CompanyCode = ConfigurationManager.AppSettings["SEC_AAPL_CODE"]; extractParams.RegulatorCode = ConfigurationManager.AppSettings["SECCode"]; ISourceItemInfo itemInfo = secSource.CreateSourceItemInfo(); itemInfo.Name = ConfigurationManager.AppSettings["SEC_CIK_AAPL_SUBMISSION_FOLDER"]; extractParams.Items.Add(itemInfo); ISourceExtractResult result = secSource.ExtractReports(extractParams); Assert.AreNotEqual(result.Items, null, "List of file items in filing is NULL"); Assert.AreNotEqual(result.Items.Count, 0, "List of file items in filing is empty"); Assert.AreEqual(result.Items.Count, 75, string.Format("Incorrect number of file extracted - {0}", result.Items.Count)); }
public ISourceExtractResult ExtractReports(ISourceExtractParams extractParams) { SECSourceExtractResult result = new SECSourceExtractResult(); SECSourceExtractParams extractSECParams = extractParams as SECSourceExtractParams; if (extractSECParams != null) { string cik = _dictionary.LookupRegulatorCompanyCode(extractSECParams.RegulatorCode, extractSECParams.CompanyCode); // TODO: lookup in dictionary if (!string.IsNullOrEmpty(cik)) { foreach (var filing in extractSECParams.Items) { // getting list of files for each filing Submission submission = _secApi.ArchivesEdgarDataCIKSubmission(cik, filing.Name); if (submission != null) { foreach (var fileInfo in submission.Files) { // to speed up we need to extract only xml files and index headers file if (Path.GetExtension(fileInfo.Name) == ".xml" || fileInfo.Name.Contains(".txt")) { SubmissionFile file = _secApi.ArchivesEdgarDataCIKSubmissionFile(cik, filing.Name, fileInfo.Name); if (file != null) { SECSourceItem sourceItem = new SECSourceItem(); sourceItem.Name = fileInfo.Name; sourceItem.FilingName = filing.Name; sourceItem.CompanyCode = extractSECParams.CompanyCode; sourceItem.RegulatorCode = extractSECParams.RegulatorCode; sourceItem.Content = file.Content; result.Items.Add(sourceItem); } } } // saving all uploaded items to storage PutToStorage(result.Items); } else { result.AddError(EErrorCodes.ImporterError, EErrorType.Warning, string.Format("Failed to import filing {0}", filing.Name)); } } result.Success = true; } else { result.Success = false; result.AddError(EErrorCodes.InvalidParserParams, EErrorType.Error, string.Format("Cannot find the SEC CIK for company with code {0}", extractSECParams.CompanyCode)); } } else { result.Success = false; result.AddError(EErrorCodes.InvalidParserParams, EErrorType.Error, "Parameters of invalid type were provided"); } return(result); }