public static async Task LoadExcel(string filename) { ExcelEngine excelEngine = new ExcelEngine(); IApplication application = excelEngine.Excel; OpenFileDialog dlg = new OpenFileDialog(); IWorkbook workbook = application.Workbooks.Open(filename); //Sets workbook version. workbook.Version = ExcelVersion.Excel2016; IWorksheet worksheet = workbook.Worksheets[0]; ProgectData.CrossSystemsLimitation_data = new BindingList <CrossSystemsLimitation>(); ProgectData.UniClassGroup_data = new BindingList <UniClassGroup>(); ProgectData.GlobalGroup_data = new BindingList <GlobalGroup>(); ProgectData.Limitation_functions_data = new BindingList <Limitation_functions>(); ProgectData.GroupsSs = new BindingList <GroupsUC>(); ProgectData.GroupsPr = new BindingList <GroupsUC>(); ProgectData.OntologyGroups = new BindingList <OntologyGroups>(); for (int i = 2; i < worksheet.Rows.Count <IRange>(); i++) { if (worksheet.GetValueRowCol(i, 9) != null && worksheet.GetValueRowCol(i, 9) != "") { CrossSystemsLimitation newLimit = new CrossSystemsLimitation(); newLimit.N = i; newLimit.SsSource = worksheet.GetValueRowCol(i, 1).ToString(); newLimit.PrSource = worksheet.GetValueRowCol(i, 2).ToString(); newLimit.GroupSource = worksheet.GetValueRowCol(i, 3).ToString(); newLimit.SsTarget = worksheet.GetValueRowCol(i, 4).ToString(); newLimit.PrTarget = worksheet.GetValueRowCol(i, 5).ToString(); newLimit.GroupTarget = worksheet.GetValueRowCol(i, 6).ToString(); newLimit.Description = worksheet.GetValueRowCol(i, 7).ToString(); //string descr = ""/*Utils.CreateDescrLimitation(newLimit, ProgectData.uniClassGroups_key, ProgectData.UniSystemTable, ProgectData.UniProductTable)*/; //newLimit.Description = descr; newLimit.PointSource = worksheet.GetValueRowCol(i, 8).ToString(); newLimit.IDLimitation = worksheet.GetValueRowCol(i, 9).ToString(); newLimit.ConnectionWeight = worksheet.GetValueRowCol(i, 10).ToString(); newLimit.StrSource = worksheet.GetValueRowCol(i, 11).ToString(); newLimit.Category = worksheet.GetValueRowCol(i, 12).ToString(); ProgectData.CrossSystemsLimitation_data.Add(newLimit); //colLimitation.Add(newLimit); } else { break; } } ProgectData.UniclassGroupDescription = new Dictionary <int, string>(); worksheet = workbook.Worksheets[1]; for (int i = 2; i <= worksheet.Rows.Count <IRange>(); i++) { try { if (worksheet.GetValueRowCol(i, 1) != null && worksheet.GetValueRowCol(i, 1) != "") { int key = Convert.ToInt32(worksheet.GetValueRowCol(i, 1).ToString()); if (ProgectData.UniclassGroupDescription.ContainsKey(key) == false) { ProgectData.UniclassGroupDescription.Add(key, worksheet.GetValueRowCol(i, 8).ToString()); } if (worksheet.GetValueRowCol(i, 1) != null && worksheet.GetValueRowCol(i, 1) != "") { UniClassGroup newData = new UniClassGroup(); newData.GroupID = Convert.ToInt32(worksheet.GetValueRowCol(i, 1).ToString()); newData.Exclude = worksheet.GetValueRowCol(i, 2).ToString(); newData.SystemsID = worksheet.GetValueRowCol(i, 3).ToString(); newData.ProductID = worksheet.GetValueRowCol(i, 4).ToString(); newData.GroupDescription = Utils.CreateDescrGroups(newData.SystemsID, newData.ProductID); newData.GroupDescription_Note = worksheet.GetValueRowCol(i, 8).ToString(); newData.Function_layer = worksheet.GetValueRowCol(i, 7).ToString(); newData.AnalyticalModel = worksheet.GetValueRowCol(i, 6).ToString(); ProgectData.UniClassGroup_data.Add(newData); } } else { break; } } catch { MessageBox.Show("Ошибка при чтении UniClassGroups"); } } worksheet = workbook.Worksheets[2]; for (int i = 1; i < worksheet.Rows.Count <IRange>(); i++) { if (worksheet.GetValueRowCol(i, 1) != null && worksheet.GetValueRowCol(i, 1) != "") { Limitation_functions newLimitFunc = new Limitation_functions(); newLimitFunc.IDLimitation = worksheet.GetValueRowCol(i, 1).ToString(); newLimitFunc.IDLimitDescription = worksheet.GetValueRowCol(i, 2).ToString(); ProgectData.Limitation_functions_data.Add(newLimitFunc); } } worksheet = workbook.Worksheets[3]; for (int i = 2; i < worksheet.Rows.Count <IRange>(); i++) { var IDGlobalGroup = worksheet.GetValueRowCol(i, 1).ToString(); if (IDGlobalGroup != null && IDGlobalGroup != "") { GlobalGroup newGroup = new GlobalGroup(); newGroup.IDGlobalGroup = Convert.ToInt32(worksheet.GetValueRowCol(i, 1).ToString()); newGroup.SystemID = worksheet.GetValueRowCol(i, 2).ToString(); newGroup.ProductID = worksheet.GetValueRowCol(i, 3).ToString(); newGroup.LocGroups = worksheet.GetValueRowCol(i, 4).ToString(); newGroup.ZCoord = worksheet.GetValueRowCol(i, 5).ToString(); newGroup.GlobalGroupsDescription = worksheet.GetValueRowCol(i, 6).ToString(); ProgectData.GlobalGroup_data.Add(newGroup); } } worksheet = workbook.Worksheets[6]; for (int i = 2; i <= worksheet.Rows.Count <IRange>(); i++) { if (worksheet.GetValueRowCol(i, 1) != null && worksheet.GetValueRowCol(i, 1).ToString() != "") { var uc = new GroupsUC(); uc.Group = worksheet.GetValueRowCol(i, 1).ToString(); uc.UC_Id = worksheet.GetValueRowCol(i, 3).ToString(); uc.UC_Description = worksheet.GetValueRowCol(i, 4).ToString(); uc.GroupDescription = worksheet.GetValueRowCol(i, 2).ToString(); ProgectData.GroupsSs.Add(uc); } } worksheet = workbook.Worksheets[7]; for (int i = 2; i <= worksheet.Rows.Count <IRange>(); i++) { if (worksheet.GetValueRowCol(i, 1) != null && worksheet.GetValueRowCol(i, 1).ToString() != "") { var up = new GroupsUC(); up.Group = worksheet.GetValueRowCol(i, 1).ToString(); up.UC_Id = worksheet.GetValueRowCol(i, 3).ToString(); up.UC_Description = worksheet.GetValueRowCol(i, 4).ToString(); up.GroupDescription = worksheet.GetValueRowCol(i, 2).ToString(); ProgectData.GroupsPr.Add(up); } } OntologyGroups og = new OntologyGroups(); og.keyValuePairs = new Dictionary <string, string>(); worksheet = workbook.Worksheets[8]; for (int i = 2; i <= worksheet.Rows.Count <IRange>(); i++) { if (worksheet.GetValueRowCol(i, 1) != null && worksheet.GetValueRowCol(i, 1).ToString() != "") { string group = worksheet.GetValueRowCol(i, 2).ToString(); string ontology = worksheet.GetValueRowCol(i, 1).ToString(); og.keyValuePairs.Add(group, ontology); } } ProgectData.OntologyGroups.Add(og); }
public static void GenerateLimitationTable(List <string> meta, OntologyInputData inputData, Dictionary <string, int> csl_id, Dictionary <string, List <string> > metas, List <string> node, string[] nums) { CrossSystemsLimitation_generated = new BindingList <CrossSystemsLimitation>(); int id = 1; foreach (var key in meta) { try { foreach (var target in metas[key]) { if (inputData.relation.ContainsKey(target)) { foreach (var relation in inputData.relation[target]) { var newLimitation = new CrossSystemsLimitation(); newLimitation.IDLimitation = GetFunction(relation.relation); newLimitation.N = id; newLimitation.GroupTarget = csl_id[target].ToString(); string source = CheackIsNode(relation.source, node); newLimitation.GroupSource = csl_id[source].ToString(); newLimitation.ConnectionWeight = "2"; newLimitation.Description = target.Split(new[] { '|' })[1] + "--->" + relation.source.Split(new[] { '|' })[1]; newLimitation.Category = key.Split(new[] { '|' })[1]; newLimitation.StrSource = GetStrSource(source, metas); CrossSystemsLimitation_generated.Add(newLimitation); id++; } } } var list_A1 = new List <string>(); if (key.Contains("csl_substructure") || key.Contains("csl_structural_frame")) { list_A1.AddRange(metas[key]); foreach (var target in list_A1) { if (!target.Contains("arch")) { foreach (var source in list_A1) { if (!source.Contains("arch") && !source.Contains("csl_balks")) { var newLimitation = new CrossSystemsLimitation(); newLimitation.IDLimitation = "A1"; newLimitation.N = id; newLimitation.GroupTarget = csl_id[target].ToString(); string s = CheackIsNode(source, node); newLimitation.GroupSource = csl_id[s].ToString(); newLimitation.ConnectionWeight = "2"; newLimitation.Description = target.Split(new[] { '|' })[1] + "--->" + s.Split(new[] { '|' })[1]; newLimitation.Category = key.Split(new[] { '|' })[1]; newLimitation.StrSource = GetStrSource(source, metas); CrossSystemsLimitation_generated.Add(newLimitation); id++; } } } else if (target.Contains("arch") && !target.Contains("concrete")) { foreach (var source in list_A1) { if (source.Contains("arch") && !source.Contains("concrete") && !source.Contains("csl_balks")) { var newLimitation = new CrossSystemsLimitation(); newLimitation.IDLimitation = "A1"; newLimitation.N = id; newLimitation.GroupTarget = csl_id[target].ToString(); string s = CheackIsNode(source, node); newLimitation.GroupSource = csl_id[s].ToString(); newLimitation.ConnectionWeight = "2"; newLimitation.Description = target.Split(new[] { '|' })[1] + "--->" + s.Split(new[] { '|' })[1]; newLimitation.Category = key.Split(new[] { '|' })[1]; newLimitation.StrSource = GetStrSource(source, metas); CrossSystemsLimitation_generated.Add(newLimitation); id++; } } } } } } catch { } } GenerateMetaTable(metas, csl_id, nums); //GenerAbbreviatedTable(meta, inputData, metas, node, csl_id); }