public string GETDocumentNameSheet(int sheetIndex) { string ObjectName = string.Empty; bool containsAllHeader = false; ExcelImportDocumentList DocumentList = ExcelImportDocumentList.GetExcelImportDocumentList(); var sheet = ExcelWorkbook.Worksheets[sheetIndex]; DataTable ExcelDataTable = getDataTable(sheet); foreach (var excelDoc in DocumentList) { if (excelDoc.ExcelImportDocumentHeaderList.Count == ExcelDataTable.Columns.Count) { foreach (var excelHeader in excelDoc.ExcelImportDocumentHeaderList) { if (!ExcelDataTable.Columns.Contains(excelHeader.ExcelHeader)) { break; } containsAllHeader = true; } if (!containsAllHeader) { continue; } ObjectName = excelDoc.DocumentName; break; } } return(ObjectName); }
private bool HasValidLayOut() { ExcelImportDocumentList DocumentList = ExcelImportDocumentList.GetExcelImportDocumentList(); bool ContainsAllHeader = false; foreach (var sheet in ExcelWorkbook.Worksheets) { ContainsAllHeader = false; DataTable ExcelDataTable = getDataTable(sheet); ExcelDataTableList.Add(ExcelDataTable); foreach (var excelDoc in DocumentList) { if (excelDoc.ExcelImportDocumentHeaderList.Count == ExcelDataTable.Columns.Count) { foreach (var excelHeader in excelDoc.ExcelImportDocumentHeaderList) { if (!ExcelDataTable.Columns.Contains(excelHeader.ExcelHeader)) { break; } ContainsAllHeader = true; } if (!ContainsAllHeader) { continue; } try { ExcelImportDocumentHeadersList.Add(excelDoc.ExcelImportDocumentHeaderList); CSLAObjectTypeList.Add(Type.GetType(excelDoc.CSLAObject)); } catch (TypeLoadException e) { addValidationMessage($"{e.GetType().Name}: Unable to load type {excelDoc.CSLAObject}", Csla.Rules.RuleSeverity.Error, DocumentEnums.MessageRelation.File); } break; } } if (ContainsAllHeader == false) { //Add Logic here to see if there is a way to chech closes macth foreach (var excelDoc in DocumentList) { List <string> InvalidColumnList = new List <string>(); List <string> ExpectedColumnList = new List <string>(); int headercountdiff = excelDoc.ExcelImportDocumentHeaderList.Count - ExcelDataTable.Columns.Count; if (IsBetween(headercountdiff, -2, 2)) { foreach (var excelHeader in excelDoc.ExcelImportDocumentHeaderList) { if (!ExcelDataTable.Columns.Contains(excelHeader.ExcelHeader)) { ExpectedColumnList.Add(excelHeader.ExcelHeader); } } foreach (DataColumn dc in ExcelDataTable.Columns) { if (excelDoc.ExcelImportDocumentHeaderList.FirstOrDefault(x => x.ExcelHeader.ToLower() == dc.ColumnName.ToLower()) == null) { InvalidColumnList.Add(dc.ColumnName); } } if (ExpectedColumnList.Count <= 3) { StringBuilder layoutDiff = new StringBuilder(); if (InvalidColumnList.Count > 0) { layoutDiff.Append($"Invalid Columns({ string.Join(",", InvalidColumnList)})"); } if (ExpectedColumnList.Count > 0) { layoutDiff.Append($"Expected Columns({ string.Join(",", ExpectedColumnList)})"); } addValidationMessage($"Invalid file format for {ExcelDataTable.TableName} closes supported file is {excelDoc.DocumentName}. Layout Differences : {layoutDiff.ToString()}", Csla.Rules.RuleSeverity.Error, DocumentEnums.MessageRelation.File); break; } } } break; } } return(ContainsAllHeader); }