public virtual IFilingParserResult Parse(IFilingParserParams parserParams) { ResetState(); SECParserParams secParams = parserParams as SECParserParams; SECParserResult result = new SECParserResult(); try { ValidateFile(secParams, result); if (result.Success) { var doc = OpenDocument(secParams); if (doc != null) { InitNsManager(doc); ExtractContexts(doc, result); ExtractCompanyData(doc, result); ExtractFilingData(doc, result); ExtractValues(doc, secParams, result); } } } catch (Exception ex) { result.Success = false; result.AddError(EErrorCodes.ParserError, EErrorType.Error, ex.Message); } return(result); }
protected void ValidateFile(SECParserParams secParams, SECParserResult secResult) { if (secParams.FileContent == null || !secParams.FileContent.Values.ElementAt(0).CanRead) { secResult.Success = false; secResult.AddError(EErrorCodes.FileNotFound, EErrorType.Error, "Stream is unaccessable"); } }