public async Task <ResultCrmDb> ParseFile() { var result = new ResultCrmDb(); var dt = FileData.DocxTableToDataTableByCaptionStart("Описание"); if (dt.Rows.Count == 0 || dt.Columns.Count != 6) { dt = FileData.DocxTableToDataTableByTbNumber(2); } if (dt.Rows.Count == 0 || dt.Columns.Count != 6) { dt = FileData.DocxTableToDataTableByTbNumber(1); } if (dt.Rows.Count == 0 || dt.Columns.Count != 6) { result.AddError(Constant.ErrCodeImport, $"Файл не содержит данных."); return(result); } var fkDoc = await _dohodDbContext.fk_doc.Where(x => (x.Group ?? "") == "FKDOCX" && (x.Format ?? "") == "00") .OrderBy(x => x.Nfrm).LastOrDefaultAsync(); if (fkDoc == null) { result.AddError(Constant.ErrCodeImport, $"Требуется файл формата: {ImportParam.Format}"); return(result); } var fkCodes = await _dohodDbContext.fk_code.Where(x => x.DocId == fkDoc.Sysid).ToListAsync(); if (fkCodes == null || fkCodes.Count == 0) { result.AddError(Constant.ErrCodeImport, $"Не заполнена структура формата {ImportParam.Format} версии {fkDoc.Nfrm} в fk_doc"); return(result); } result.Result = GetDocsObject(dt, fkDoc, fkCodes); return(result); }