public void SerializeAndDeserializeComponentFile() { var component = TestModels.TestComponent; var jsonOutput = component.Write(); var reparsedComponent = ComponentFile.Read(jsonOutput); Assert.AreEqual(component.Name, reparsedComponent.Name); Assert.AreEqual(component.NumberOfPlies, reparsedComponent.NumberOfPlies); Assert.AreEqual(component.DistanceUnit, reparsedComponent.DistanceUnit); Assert.AreEqual(component.AngleUnit, reparsedComponent.AngleUnit); Assert.AreEqual(component.ComponentUsage, reparsedComponent.ComponentUsage); var firstMember = component.Members.First(); Assert.AreEqual("B1", firstMember.Name); Assert.AreEqual(MemberType.BottomChord, firstMember.MemberType); Assert.AreEqual("#2 SYP 2x4", firstMember.MaterialDescription); Assert.AreEqual(MemberMaterialType.Lumber, firstMember.MaterialType); Assert.AreEqual(120, firstMember.StockLength); }
public void Deserialize_QualityControlFile() { var qc = ComponentFile.Read(Resources.GetResourceAsString("Test.qc")); Assert.IsTrue(qc != null); }
public void Deserialize_ComponentFile() { var component = ComponentFile.Read(Resources.GetResourceAsString("Test.component")); Assert.IsTrue(component != null); }
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); }