コード例 #1
0
        public void SerializeAndDeserialize_QualityControlFile()
        {
            var qcFile = TestModels.TestQualityControlFile;

            var jsonOutput = qcFile.Write();

            var reparsedQc = QualityControlFile.Read(jsonOutput);

            Assert.AreEqual(qcFile.ComponentName, reparsedQc.ComponentName);
        }
コード例 #2
0
        public static UnifiedDataStandardFile Read(ZipArchive archive)
        {
            var newUDSFile = new UnifiedDataStandardFile();

            foreach (var zippedFile in archive.Entries.Where(entry => entry.Name.EndsWith(".component")))
            {
                var contents  = new StreamReader(zippedFile.Open()).ReadToEnd();
                var component = ComponentFile.Read(contents);

                foreach (var member in component.Members)
                {
                    var matchingMaterial = component.Lumbers.Single(material => material.Guid == member.MaterialGuid);
                    member.Lumber = matchingMaterial;
                }

                foreach (var platePair in component.ConnectorPlatePairs)
                {
                    foreach (var plate in platePair.ConnectorPlates)
                    {
                        var matchingMaterial =
                            component.ConnectorPlateTypes.Single(material => material.Guid == plate.MaterialGuid);
                        plate.ConnectorPlateType = matchingMaterial;
                    }
                }

                foreach (var hanger in component.Hangers)
                {
                    var matchingMaterial =
                        component.HangerTypes.Single(material => material.Guid == hanger.MaterialGuid);
                    hanger.HangerType = matchingMaterial;
                }

                foreach (var bearing in component.Bearings)
                {
                    foreach (var guid in bearing.InstallationHardwareGuids)
                    {
                        var matchingHardware =
                            component.AllInstallationHardwares.Single(hardware => hardware.Guid == guid);
                        bearing.InstallationHardwares.Add(matchingHardware);
                    }
                }

                newUDSFile.ComponentFiles.Add(component);
            }

            foreach (var zippedFile in archive.Entries.Where(entry => entry.Name.EndsWith(".qc")))
            {
                var contents          = new StreamReader(zippedFile.Open()).ReadToEnd();
                var qcFile            = QualityControlFile.Read(contents);
                var matchingComponent = newUDSFile.ComponentFiles.Single(componentFile => componentFile.Name.Contains(qcFile.ComponentName));
                qcFile.Component = matchingComponent;

                foreach (var plateData in qcFile.PlateQualityControlDatas)
                {
                    plateData.ConnectorPlatePair = matchingComponent.ConnectorPlatePairs.Single(connectorSet => connectorSet.Guid == plateData.PlatePairGuid);
                    foreach (var contactArea in plateData.ContactAreas)
                    {
                        contactArea.Member = matchingComponent.Members.Single(member => member.Guid == contactArea.MemberGuid);
                    }
                }

                newUDSFile.QualityControlFiles.Add(qcFile);
            }

            return(newUDSFile);
        }