示例#1
0
文件: CETI.cs 项目: gzt200361/offwind
 public CETI(string name, VCaseItem caseItem, VProjectItem projectItem, Guid id, Guid parentId, string image)
 {
     Image       = image;
     Id          = id;
     ParentId    = parentId;
     Name        = name;
     CaseItem    = caseItem;
     ProjectItem = projectItem;
 }
示例#2
0
        public static VCase ReadFrom(string filePath, IProjectConfiguration config)
        {
            var vCase = new VCase();

            using (var stream = new StreamReader(filePath, Encoding.UTF8))
                using (var xml = new XmlTextReader(stream))
                {
                    xml.ReadToFollowing("Case");

                    if (xml.ReadToFollowing("Name"))
                    {
                        vCase.Name = xml.ReadElementContentAsString();
                    }

                    if (xml.ReadToFollowing("CaseItems"))
                    {
                        while (xml.ReadToFollowing("CaseItem"))
                        {
                            VCaseItem item = null;
                            xml.ReadToFollowing("Id");
                            var id = xml.ReadElementContentAsString();

                            xml.ReadToFollowing("DisplayName");
                            var displayName = xml.ReadElementContentAsString();

                            xml.ReadToFollowing("RelativePath");
                            var relativePath = xml.ReadElementContentAsString();

                            xml.ReadToFollowing("Type");
                            var type = xml.ReadElementContentAsString();
                            if (type == ProjectItem)
                            {
                                item = ProjectHandler.ReadFrom(xml, config);
                            }

                            Debug.Assert(item != null);
                            item.Id           = new Guid(id);
                            item.DisplayName  = displayName;
                            item.RelativePath = relativePath;
                            vCase.Items.Add(item);
                        }
                    }
                }
            return(vCase);
        }
示例#3
0
        public void AddCaseItem(VCaseItem caseItem)
        {
            var vProject = caseItem as VProject;

            if (vProject == null)
            {
                return;
            }

            var projectNode = new CETI(caseItem.DisplayName, caseItem, null, Guid.NewGuid(), Guid.Empty, null);

            _items.Add(projectNode);

            if (vProject.ProjectDescriptor.ProductType != ProductType.CFD)
            {
                foreach (var item in vProject.Items)
                {
                    var d = item.Descriptor;
                    _items.Add(new CETI(d.NodeName, caseItem, item, Guid.NewGuid(), projectNode.Id, null));
                }
            }
            else
            {
                //var parentNodesMap = new Dictionary<CaseItemType, CETI>();
                //parentNodesMap[CaseItemType.Project] = projectNode;
                //if (vProject.Items.Any(i => i.Descriptor.CaseItemType == CaseItemType.Preprocessor))
                //{
                //    parentNodesMap[CaseItemType.Preprocessor] = new CETI("preprocessing", caseItem, null, Guid.NewGuid(),
                //                                                         projectNode.Id, null);
                //    _items.Add(parentNodesMap[CaseItemType.Preprocessor]);
                //}
                //if (vProject.Items.Any(i => i.Descriptor.CaseItemType == CaseItemType.SolverTimeZero))
                //{
                //    parentNodesMap[CaseItemType.SolverTimeZero] = new CETI("0.original", caseItem, null, Guid.NewGuid(),
                //                                                           projectNode.Id, null);
                //    _items.Add(parentNodesMap[CaseItemType.SolverTimeZero]);
                //}
                //if (vProject.Items.Any(i => i.Descriptor.CaseItemType == CaseItemType.SolverConstant))
                //{
                //    parentNodesMap[CaseItemType.SolverConstant] = new CETI("constant", caseItem, null, Guid.NewGuid(),
                //                                                           projectNode.Id, null);
                //    _items.Add(parentNodesMap[CaseItemType.SolverConstant]);
                //}
                //if (vProject.Items.Any(i => i.Descriptor.CaseItemType == CaseItemType.SolverSystem))
                //{
                //    parentNodesMap[CaseItemType.SolverSystem] = new CETI("system", caseItem, null, Guid.NewGuid(),
                //                                                         projectNode.Id, null);
                //    _items.Add(parentNodesMap[CaseItemType.SolverSystem]);
                //}

                foreach (var item in vProject.Items)
                {
                    var d = item.Descriptor;
                    if (d.NodeInvisible)
                    {
                        continue;
                    }
                    //if (!parentNodesMap.ContainsKey(d.CaseItemType))
                    //{
                    //    Debug.Fail("Unexpected value: " + d.CaseItemType);
                    //    continue;
                    //}
                    //var targetNode = parentNodesMap[d.CaseItemType];
                    _items.Add(new CETI(d.NodeName, caseItem, item, Guid.NewGuid(), projectNode.Id, null));
                }
            }
        }