コード例 #1
0
ファイル: FileUtils.cs プロジェクト: lAvarisel/CSLeditor
        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);
        }
コード例 #2
0
        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);
        }