public override Document Parse(string file, Document document) { var match = regex.Match(file); document.ProviderDocumentId = match.Groups["pd"].Value; document.DocumentDate = DateTime.Today; document.SetInvoice().BuyerName = match.Groups["bn"].Value; document.SetInvoice().BuyerAddress = match.Groups["ba"].Value; SetIndexes(); using (var reader = new StreamReader(file, Encoding.GetEncoding(866))) { using (var parser = new HeaderBodyParser(reader, CommentMark)) { foreach (var body in parser.Lines()) { ReadBody(document, body); } } } return(document); }
public static bool CheckFileFormat(string file) { bool isHeader = false; bool isBody = false; int counter = 0; using (var parser = new HeaderBodyParser(file, null)) { var content = parser.Lines(); foreach (var line in content) { if (line.ToLower() == "[заголовок]") { isHeader = true; continue; } if (line.ToLower() == "[таблица]") { isBody = true; continue; } var parts = line.Split(';'); if (parts.Length < 2) { return(false); } if (parts[0].ToLower().Contains("продавец") || parts[0].ToLower().Contains("номер накладной") || parts[0].ToLower().Contains("дата накладной") || parts[0].ToLower().Contains("номер с/ф") || parts[0].ToLower().Contains("дата с/ф")) { counter++; } } } return(isHeader & isBody & (counter == 5)); }