From 494c4f94bcab362858ef28b61c7645e482139a39 Mon Sep 17 00:00:00 2001 From: Kurpanik <71767601+Kurpanik@users.noreply.github.com> Date: Wed, 1 Dec 2021 10:45:11 +0100 Subject: [PATCH] Update to gldf 0.9-beta.7 --- .../DomainTests/EmitterReferencesTest.cs | 43 --- .../DomainTests/EmitterTests.cs | 34 ++ src/Gldf.Net.Tests/Gldf.Net.Tests.csproj | 2 + src/Gldf.Net.Tests/ModelSerializationTests.cs | 6 + .../TestData/Container/GldfWithFiles.gldf | Bin 1676 -> 1675 bytes .../Container/GldfWithHeaderMandatory.gldf | Bin 683 -> 700 bytes .../Container/GldfWithInvalidRoot.gldf | Bin 686 -> 702 bytes .../Container/GldfWithLargeFiles.gldf | Bin 53470 -> 53487 bytes .../Container/GldfWithMissingFiles.gldf | Bin 862 -> 881 bytes .../TestData/Container/GldfWithNoFiles.gldf | Bin 683 -> 700 bytes .../Container/GldfWithOrphanedFiles.gldf | Bin 4238 -> 4255 bytes .../TestData/Container/GldfWithSignature.gldf | Bin 822 -> 839 bytes .../ControlGears/ControlGearCompleteModel.cs | 25 +- .../ControlGears/ControlGearCompleteXml.xml | 11 +- .../ControlGears/ControlGearMandatoryModel.cs | 21 +- .../ControlGears/ControlGearMandatoryXml.xml | 11 +- .../Descriptive/DescriptiveAttributesModel.cs | 63 ++-- .../Descriptive/DescriptiveAttributesXml.xml | 35 +- .../TestData/EmbeddedXmlTestData.cs | 13 +- .../TestData/Emitters/EmitterCompleteModel.cs | 196 ++++++++++ .../TestData/Emitters/EmitterCompleteXml.xml | 79 ++++ .../Emitters/EmitterMandatoryModel.cs | 99 +++++ .../TestData/Emitters/EmitterMandatoryXml.xml | 43 +++ .../Equipments/EquipmentCompleteModel.cs | 21 +- .../Equipments/EquipmentCompleteXml.xml | 11 +- .../Equipments/EquipmentMandatoryModel.cs | 21 +- .../Equipments/EquipmentMandatoryXml.xml | 11 +- .../TestData/Files/FilesCompleteModel.cs | 21 +- .../TestData/Files/FilesCompleteXml.xml | 11 +- .../TestData/Files/FilesMandatoryModel.cs | 21 +- .../TestData/Files/FilesMandatoryXml.xml | 11 +- .../Geometries/GeometryCompleteModel.cs | 21 +- .../Geometries/GeometryCompleteXml.xml | 11 +- .../Geometries/GeometryMandatoryModel.cs | 21 +- .../Geometries/GeometryMandatoryXml.xml | 11 +- .../TestData/Head/HeaderCompleteModel.cs | 21 +- .../TestData/Head/HeaderCompleteXml.xml | 11 +- .../TestData/Head/HeaderMandatoryModel.cs | 21 +- .../TestData/Head/HeaderMandatoryXml.xml | 11 +- .../LightSources/LightSourceCompleteModel.cs | 21 +- .../LightSources/LightSourceCompleteXml.xml | 11 +- .../LightSources/LightSourceMandatoryModel.cs | 21 +- .../LightSources/LightSourceMandatoryXml.xml | 11 +- .../MetaData/ProductMetaDataCompleteModel.cs | 21 +- .../MetaData/ProductMetaDataCompleteXml.xml | 11 +- .../MetaData/ProductMetaDataMandatoryModel.cs | 21 +- .../MetaData/ProductMetaDataMandatoryXml.xml | 11 +- .../Photometries/PhotometryCompleteModel.cs | 21 +- .../Photometries/PhotometryCompleteXml.xml | 11 +- .../Photometries/PhotometryMandatoryModel.cs | 21 +- .../Photometries/PhotometryMandatoryXml.xml | 11 +- .../TestData/Sensors/SensorsCompleteModel.cs | 21 +- .../TestData/Sensors/SensorsCompleteXml.xml | 11 +- .../TestData/Sensors/SensorsMandatoryModel.cs | 21 +- .../TestData/Sensors/SensorsMandatoryXml.xml | 11 +- .../Simple/RootWithHeaderUnintendedXml.xml | 2 +- .../TestData/Simple/RootWithHeaderXml.xml | 2 +- .../Spectrums/SpectrumCompleteModel.cs | 21 +- .../Spectrums/SpectrumCompleteXml.xml | 11 +- .../Spectrums/SpectrumMandatoryModel.cs | 21 +- .../Spectrums/SpectrumMandatoryXml.xml | 11 +- .../TestData/Variants/VariantCompleteModel.cs | 218 ++++++----- .../TestData/Variants/VariantCompleteXml.xml | 96 ++--- .../Variants/VariantMandatoryModel.cs | 21 +- .../TestData/Variants/VariantMandatoryXml.xml | 11 +- src/Gldf.Net/Domain/Definition/Emitter.cs | 22 ++ .../Domain/Definition/GeneralDefinitions.cs | 3 + .../Domain/Definition/Types/EmitterBase.cs | 6 + .../Domain/Product/Types/EmitterReference.cs | 10 + ...ctReference.cs => EmitterReferenceBase.cs} | 2 +- .../Domain/Product/Types/EmitterReferences.cs | 18 - .../Types/GeometryEmissionObjectReference.cs | 15 - ...ference.cs => GeometryEmitterReference.cs} | 5 +- .../Domain/Product/Types/GeometryReference.cs | 6 +- ...ghtEmitterReference.cs => LightEmitter.cs} | 5 +- .../Mounting/{Ceilling.cs => Ceiling.cs} | 2 +- .../Product/Types/Mounting/Mountings.cs | 2 +- .../{SensorReference.cs => SensorEmitter.cs} | 9 +- src/Gldf.Net/Domain/Product/Variant.cs | 5 +- src/Gldf.Net/Domain/Root.cs | 2 +- src/Gldf.Net/Xsd/V09.xsd | 356 ++++++++++-------- 81 files changed, 1416 insertions(+), 659 deletions(-) delete mode 100644 src/Gldf.Net.Tests/DomainTests/EmitterReferencesTest.cs create mode 100644 src/Gldf.Net.Tests/DomainTests/EmitterTests.cs create mode 100644 src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteModel.cs create mode 100644 src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteXml.xml create mode 100644 src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryModel.cs create mode 100644 src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryXml.xml create mode 100644 src/Gldf.Net/Domain/Definition/Emitter.cs create mode 100644 src/Gldf.Net/Domain/Definition/Types/EmitterBase.cs create mode 100644 src/Gldf.Net/Domain/Product/Types/EmitterReference.cs rename src/Gldf.Net/Domain/Product/Types/{EmissionObjectReference.cs => EmitterReferenceBase.cs} (53%) delete mode 100644 src/Gldf.Net/Domain/Product/Types/EmitterReferences.cs delete mode 100644 src/Gldf.Net/Domain/Product/Types/GeometryEmissionObjectReference.cs rename src/Gldf.Net/Domain/Product/Types/{ExternalEmitterReference.cs => GeometryEmitterReference.cs} (78%) rename src/Gldf.Net/Domain/Product/Types/{LightEmitterReference.cs => LightEmitter.cs} (87%) rename src/Gldf.Net/Domain/Product/Types/Mounting/{Ceilling.cs => Ceiling.cs} (89%) rename src/Gldf.Net/Domain/Product/Types/{SensorReference.cs => SensorEmitter.cs} (68%) diff --git a/src/Gldf.Net.Tests/DomainTests/EmitterReferencesTest.cs b/src/Gldf.Net.Tests/DomainTests/EmitterReferencesTest.cs deleted file mode 100644 index 773e2c4..0000000 --- a/src/Gldf.Net.Tests/DomainTests/EmitterReferencesTest.cs +++ /dev/null @@ -1,43 +0,0 @@ -using FluentAssertions; -using Gldf.Net.Domain.Product.Types; -using NUnit.Framework; - -namespace Gldf.Net.Tests.DomainTests -{ - [TestFixture] - public class EmitterReferencesTest - { - [Test] - public void GetAsSensorReference_Should_Return_Expected() - { - var expectedReference = new SensorReference(); - var equipment = new EmitterReferences {Reference = expectedReference}; - - var reference = equipment.GetAsSensorReference(); - - reference.Should().Be(expectedReference); - } - - [Test] - public void GetAsLightEmitterReference_Should_Return_Expected() - { - var expectedReference = new LightEmitterReference(); - var equipment = new EmitterReferences {Reference = expectedReference}; - - var reference = equipment.GetAsLightEmitterReference(); - - reference.Should().Be(expectedReference); - } - - [Test] - public void GetAsGeometryReference_Should_Return_Expected() - { - var expectedReference = new GeometryReference(); - var equipment = new EmitterReferences {Reference = expectedReference}; - - var reference = equipment.GetAsGeometryReference(); - - reference.Should().Be(expectedReference); - } - } -} \ No newline at end of file diff --git a/src/Gldf.Net.Tests/DomainTests/EmitterTests.cs b/src/Gldf.Net.Tests/DomainTests/EmitterTests.cs new file mode 100644 index 0000000..c21b443 --- /dev/null +++ b/src/Gldf.Net.Tests/DomainTests/EmitterTests.cs @@ -0,0 +1,34 @@ +using FluentAssertions; +using Gldf.Net.Domain.Definition; +using Gldf.Net.Domain.Definition.Types; +using Gldf.Net.Domain.Product.Types; +using NUnit.Framework; + +namespace Gldf.Net.Tests.DomainTests +{ + [TestFixture] + public class EmitterTests + { + [Test] + public void GetLightEmitters_Should_Return_Expected() + { + var possibleFittings = new EmitterBase[] { new LightEmitter(), new LightEmitter() }; + var emitter = new Emitter { PossibleFittings = possibleFittings }; + + var lightEmitters = emitter.GetLightEmitters(); + + lightEmitters.Should().BeEquivalentTo(possibleFittings); + } + + [Test] + public void GetSensorEmitters_Should_Return_Expected() + { + var possibleFittings = new EmitterBase[] { new SensorEmitter(), new SensorEmitter() }; + var emitter = new Emitter { PossibleFittings = possibleFittings }; + + var sensorEmitters = emitter.GetSensorEmitters(); + + sensorEmitters.Should().BeEquivalentTo(possibleFittings); + } + } +} \ No newline at end of file diff --git a/src/Gldf.Net.Tests/Gldf.Net.Tests.csproj b/src/Gldf.Net.Tests/Gldf.Net.Tests.csproj index b08dfdf..f5b2451 100644 --- a/src/Gldf.Net.Tests/Gldf.Net.Tests.csproj +++ b/src/Gldf.Net.Tests/Gldf.Net.Tests.csproj @@ -24,6 +24,8 @@ + + diff --git a/src/Gldf.Net.Tests/ModelSerializationTests.cs b/src/Gldf.Net.Tests/ModelSerializationTests.cs index 85316a1..af690da 100644 --- a/src/Gldf.Net.Tests/ModelSerializationTests.cs +++ b/src/Gldf.Net.Tests/ModelSerializationTests.cs @@ -77,6 +77,12 @@ public void SerializeAndDeserialize_Model_Should_BeSameAs_Origin(Root model, str new TestCaseData(EmbeddedXmlTestData.GetEquipmentCompleteModel(), EmbeddedXmlTestData.GetEquipmentCompleteXml()) {TestName = "Equipment complete property set"}, + new TestCaseData(EmbeddedXmlTestData.GetEmitterMandatoryModel(), + EmbeddedXmlTestData.GetEmitterMandatoryXml()) + {TestName = "Emitter mandatory property set"}, + new TestCaseData(EmbeddedXmlTestData.GetEmitterCompleteModel(), + EmbeddedXmlTestData.GetEmitterCompleteXml()) + {TestName = "Emitter complete property set"}, new TestCaseData(EmbeddedXmlTestData.GetGeometryMandatoryModel(), EmbeddedXmlTestData.GetGeometryMandatoryXml()) {TestName = "Geometry mandatory property set"}, diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithFiles.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithFiles.gldf index 92a05b58d8ee53eaceb96c41080322c3f73e904d..9287b45105c975323fbddb3576201817ae51c93b 100644 GIT binary patch delta 101 zcmeC-?dIJun~`^CU0txutef tivD_fow4g*lGLxKlUK8vFrJzGfYpwXVX{1%6QjlCBsLYc9A*X}002(jB542s delta 102 zcmeC??cv=pn~^slzbbf}=fN|=j0_ChC$C^sVicHsn(;sLz8_4R&oE7ALQ_z{s>8SP u)OG)(kFGO1K3pGs^wH#1tR{?SC*NnaV`Q8x$L7RnIXRI{g)Ntv0SEx*+9c-y diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithHeaderMandatory.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithHeaderMandatory.gldf index c3af5e7ef4b92ef2a8ca5e2b99e198be5c733960..bc2be98c0820d57e968bfbc4d898598e4d542145 100644 GIT binary patch delta 649 zcmV;40(SkY1-u1+P)h>@6aWAK2ms=Kep80?${HX7005c=000XB003}uZ)A02bS`*p zY>iagj+-zLeXrDiKz;{9QmNg@VO8z+5-C|#+h|+$%?ksu1U53mCi`uD=qL3TYB1oC zq^o`NoH?91;~De!_aAnBC=2fibS;!zk|+p?2QpEqkol5-G?@7x$aVbo4ZBwgJ;Rmt z;!ukv*&$X7O85JHu%8D?=X4f^5&gMYe@}K$a$m?AxlDj~hQE;Nj+anZJOP_utAwMe zX_aatl^1Ci2t^Nd+MQ__T=|cHJa}(&CP9o9&tqSKr=YvDi8fp|8Beg$20IQIb&;dr zXy__$MF}^5Dus9!<gY`?ITU^lmW^7h(8|(No&wb4Y&(+#|N>` zN|ziT?DfZ{VMZsAZI>SP%f5gF&5K*egcPk-J&K6}Y%qqNNS6efqA633#7mS!khp!W zU`dKJp)Q3T*64!7!$9D`%c_8OxFazrQe?E1?hDy}VD#{9r%;uETJ+cyeeMiZV`%4j z#%d++Ap;F&fxOH_t4SZ!NmKXL=;(q8_Nf$zpoiEY_KNIzVrMP#9S$UCc{OQZ>ZNCo zMvjWM;llXy28Yd%tPjy$*WO#OPr4 zRBO5~ZZG?#S-JhO+i;>|5f=~JaB=F4wm;hVA5cpH0zUv0000080OEdrQ-<@(8Xy7y j0Gg9g0xS*^C(l9p<<|kG!Rkl)<&%p78U{%M000001JEvd delta 632 zcmV-;0*C#)1*-*rP)h>@6aWAK2mpLiagZk#X>eXrDiKz;|qZdElaFHx2B5-A&1=_;-I=D@&O0vnkjyZN?0^ppAvH5l;1 zZmPU_&K#dP;~Dt-`wzQ3l!f;Mx)w^VNfd;{1DU8)$b3zI8qE9;=3IJrThIp*e?U6bGit_i2mH%eouB#a$m?AxlDj~hQE^Pj+anZJOP`(RS8E^ z(<;?QDlgJ35Q-k^v^&!LN$K z($H1jiW07WR0{DTTtt4j^cNS~=-p}=uEOvaqjTEiI;1}Y?mkvkA#5A*dDzOF;)B>{ zrAv+v_W5JeFryR5wo8xtWnVyo=EXH+LW)+a9>qifHW))sq-z3A(Ud7i;w4HVNZdYG zuqH*CP?y3EYji>4VIXkeWmP~s+>sa*DKgqh_l0bKFnaj5Q>aQnEqZKO0HXlUl4h0Z=&TT-jENpOz4%*O2BHAmjVE^*hCkNrsc zM7z=E#S1R;hUZ}XN)q>MPj+-hE$PVrMDCrXj^X70?{(0NCPoLV=e5|UQXqmJH=>>u68R429M3J;&2;7Hq~wd*&W=S~ zJS^4Ou$0000bBq`qj diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithInvalidRoot.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithInvalidRoot.gldf index 64cd459ed09a371bf5142ccc54c49e8aa29e9d76..b2f56b7ba8917de108d3de052d4ef0e18d13f307 100644 GIT binary patch delta 674 zcmZ3-x{tL!z?+#xgn@y9gW*?QU9d-(&21$n28OAu3=G^r(SoA?*E^odHtym-#T7*I;q;(G@(L4cq-RSeb4&lng9Fl99tj1(S7L!6-XO0%HKiD``iUm}*@o!NG<_dm~x=Iv(bLPsJ#+I*9&;M!$9JL7Qb+0ee8VA^tUv!puF3_B1 z^weXIiziFx?de?8Tu#{PyLj2WIpij;BA3SK9v8-1QY>r7-z6fM8~VFm%1q*P{Y}jf z)dgaX zUb=1Fo^CJI{#3&6-~BlDy%|X*8>-fs-WA_I{qLnUcmCbTwYa>oqq{wKhgGTD?fRTQ z>;c}4O!f@85|j!sNr8X@m;@!S$=OVzd{?go#{PPGol)VpPU5epllz#Y*t~&>kbwaJ DVDTyX delta 635 zcmV->0)+j(1+E2uP)h>@6aWAK2mm{9dQ$*=dp{Ba003A8000XB003}uZ)A02bS`*p zY>iY)Zrd;r-52N`2<|OPPEj-lt)NKy2@nTGYNSPXj5Lx7NTfiGZ0BrU^hmuzDNzzF z+bOc+ym@@{hBMON-+%bkzAVTVOf9uq(kKWi0hQ=fs(eX*8_Z@O=vDmo4S&!YiRG$# zv9INlZV;;lW4qlh*j)tL>5&OBi`<`r|6f>!66eW6AT`_9X?JE}a5;Md6v2C!vk7Xg5W>HLNWpYx8?A(DGLc|oEOr=h<|9wP zHqcdG%Mz}Cbqeu3oJX_pVm7~ANADIF;UWxwadu3bT!-|B#LdU5Dx_;8J`X#YQ+yEn ztW7EK(LH}`8|G{Rxpvt>zx)d*Frv7DOe)!G)uWg!zy)JSWV)o#6it~5q$JS_LE-wj zf+dw|D+-xXf?e2{g2uxvU@yw5fNrkC^`J=`}V^j3G^HPnW z8|4YBm3)8<4A|WvnT>8IEif<5{H@W^k%<;M`(SNNqthnAW87y}cK2=siXQff`=)&A z$I&O+ZMLsn2$eS?2Wwc-xMvg9(K&OZ1OF4blPc{8^ZFW={6YmU<+0Q5_@gjVC>$Qa zBi-Csw(dNO#<6*Zm;b-lK`)vZ9ju<$;-5;12xeS~`lyi1H+ak;e#>sBJ4e{0=8NLq zk3)PsY}MKA;jH~l#{U3NO928u02BZK00;m(aC%b!e0x6<0ssJ5lVk!c4*10y$i?E< V0l-jj%EjW7o&p*MI|2Xz002O$Aw2*9 diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithLargeFiles.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithLargeFiles.gldf index c582f316ecfa4335ca05df12a74e8d9e43bc836f..7905d4d8dd8a5448b7e64e4e2c22b327def7a91b 100644 GIT binary patch delta 623 zcmV-#0+9XQp#$%s1F$U3e+hqnQ~o@0oDl*50Eh(u01E&B0B~||WOZY7E_iKhjZ|Ha zn=lZ3uhjp5{0@esQhSlZsk-Y&q~ugxqifYSA1uTY*vKrG+`q5EfCEXZd-Kc=v$J@C z-JZ(AdjVYwCD$YhLgIl;R4Qb?CJko(CvqFVf5#q`LeFSry*kxme@zaE)r!*N@faMJ zfzml$gkeN~@3uda1C-nsvPLcwAfC~$q+L|d46UFn`ci<`L?rhMG%O>LqHrjCKfKi8>{7ysHc`r)1Qz^uYa1r_8 z(qG){qYtZPxC+BRe~iv$lgAnG(}UU9Q}xRiINBs_pcSKNs%UWC=w4luF(aF z2QmtZ6d7%udS461mOl;(RSBp?&rR9au75Q`dwmzG*76ZDf6!p|#mfxZ%wkh#PTg~3 zrYkYnmr@{t9yuIcwU&t9R9ou2tG3IOknuXV(6n zBkyTfcxcM!zF%KxKO}R}1($ilb160ssJrlZ4PL4yykOZTjWc0qj)~ar)(xzR(&5 JT+aXi001y|EyMr- delta 606 zcmV-k0-^oyp#$Eb1F$U3e=l%)Q=1X4=l}u$080e`01E&B0B~||WOZY7E_iKhjZ|H4 zn=ll8pS1sA`8^ntX<8$PYHIgUsi~$e>ZZN9a3Pk!M&{C_|9%Do4kVrS=6mkpoOA7) z@atn)kQXqu)M`VcAfyCTqEo5z4Q()6e4^L!`*-|NYb2Jd>h-afe;c|-tk#Sj4u{~d z3be`DG7Ka3dwc&g*+VH7Qq?F_0+d+(TImN-LS2ajT>oAt0}~w8`g?{*t)=Tvdg1W5kzXCv%PuVqdi>1wOg!kL|#mO&~We zJDHb%0|iDDw~$FCTdjH&lLfe9EQw4v6q=$bQ-O04r@$7 z;{l97ia#v zG1DwY3thaX*45~=NpOz)&em?+tw7PkzVXnM&;29xjdq9a9T!67jmW`9Ry6L}M0Iq| z9O)$gMDEO`{h9o~hb6z^;H5lvJ{^A&Mhb<)C3vKJxtH$TzQEA;3@`uhtb<-O2|7f* zti`{S5)sU}BNX+_NalN-bBN!wyXn>uHt~E@+~;wKuZOL=xILV;e~$5Avs}+C0Szy3 sdQ+PbuIK;)002vqmC!5>*Y1tE#p2fiV-pL##p09C&>99y&j0`b0J`EOyZ`_I diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithMissingFiles.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithMissingFiles.gldf index 5a800bdfa02285e3d8c3d50c1c3ad534d3718a5d..a3e1fb2c65d5705a89c6e3ecbe12c42ea82f174e 100644 GIT binary patch delta 662 zcmV;H0%`r;2Jr?LP)h>@6aWAK2ml;^ep7tLfF;!e004-Q7b5|nkvk{_&FJH!W|3$q z0j-geCx7dgQr%JkWkD0L`D>L>gL_(1iKr}R>69z7E7^WcqUqV>5e%KawK+_LXe9{Z z&p;XI{TibiDyx(xrqZY#2QhJxE5FdN-}#;kxKIq%^JqSsM2pG%?0)uUxrmlg^dlzy zvd-hczHzg8UlcjF$5;=`7IUgMu#ZX$Y98$CUw`9)W73iAammqn<4+(#)BF-rE_ux= zTNuy525lH{whE!jE5WD;7@gLSvUb&9KL&J4Q3)c~49 zIY33#2gI}wh(k8OvRy*}99cdMBT@GuF_YZ^B7f?fk85`0 zp4l$#W1q#N$_XZXOiYh38$!QxjsB9>DYF6Hp&m4^Rh4vrHfVoqzigCI0*vMdt*buU z$!A!b)tpMxyb7o68}?+^lUds` zSK<8n9XGsL$8KY|&+1N%o6f`NT)8Q-GtuK%#l_7`4E8=I_20_%Ul~wK0Rle&6aWAK w2ml;^ep7tLfF;!e004-S1OqG%gS>!)`sLRFC?2AR`sI^80~!YY0ssI20EOK+Y5)KL delta 643 zcmV-}0(|}P2Hpl2P)h>@6aWAK2mohrdQ-AJ4^_ef002di7b5`_kvk{_z0o&Aagk^# z0j`mfCx7#oQr%JkWkD0L{pTwZ8#kNxMUiv6jrFi>F{gS1`>3>_=E1)HHGgh6CLPIcmmKXk{sa;<%`YM4lGm)V zh4CD0(1rnLs}QQZ5{#NKNR%`n&HZx$t1xE?ah9wMh)?;R%2&z6H+M_@*2o!#x@BsB7Q2T+}11wnD12UCV z0wyDZmXC_|DD`KN^{8CX3<&BzB--PR%3&nx-Y(@hvV0mwqV7YYlimR$e`?RiHM{Yi z*)Hv4pT(of2^u~o+9S+{&_B6Gf637)vjN?q9yD*OD(L`i(Eiqb*(jp~7|jn_SADjV z-G=twI?1Y$caVYxyeNaZ?p5danm9CZPqiKOny970+o7(h6{`}{*PU~N7wsiA^dLLq zwi1tryXRokS2w=eoXV`ie{U5wEW`C7JCOVInAoJF{yVsnD)pQH_ZpZyQo*5|cDlRx zfoe{rXjD4(0063TF)9E6 diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithNoFiles.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithNoFiles.gldf index f3e5f7d5acd8e06008af00f4ab67e6bcd6a96857..7581f45ef84ad2bc0d3960d5c878af838a90893b 100644 GIT binary patch delta 649 zcmV;40(SkY1-u1+P)h>@6aWAK2mmX8ep80?${HX7005c=000XB003}uZ)A02bS`*p zY>iagj+-zLeXrDiKz;{9QmNg@VO8z+5-C|#+h|+$%?ksu1U53mCi`uD=qL3TYB1oC zq^o`NoH?91;~De!_aAnBC=2fibS;!zk|+p?2QpEqkol5-G?@7x$aVbo4ZBwgJ;Rmt z;!ukv*&$X7O85JHu%8D?=X4f^5&gMYe@}K$a$m?AxlDj~hQE;Nj+anZJOP_utAwMe zX_aatl^1Ci2t^Nd+MQ__T=|cHJa}(&CP9o9&tqSKr=YvDi8fp|8Beg$20IQIb&;dr zXy__$MF}^5Dus9!<gY`?ITU^lmW^7h(8|(No&wb4Y&(+#|N>` zN|ziT?DfZ{VMZsAZI>SP%f5gF&5K*egcPk-J&K6}Y%qqNNS6efqA633#7mS!khp!W zU`dKJp)Q3T*64!7!$9D`%c_8OxFazrQe?E1?hDy}VD#{9r%;uETJ+cyeeMiZV`%4j z#%d++Ap;F&fxOH_t4SZ!NmKXL=;(q8_Nf$zpoiEY_KNIzVrMP#9S$UCc{OQZ>ZNCo zMvjWM;llXy28Yd%tPjy$*WO#OPr4 zRBO5~ZZG?#S-JhO+i;>|5f=~JaB=F4wm;hVA5cpH0zUv00000804slfQ-<@(8Xy7y j0Gg9g0xS*=^DmS7<<|ipxrvtg<&%p78U{%M00000BK9oj delta 632 zcmV-;0*C#)1*-*rP)h>@6aWAK2mp6*dQ&y@Ttg26003PD000XB003}uZ)A02bS`*p zY>iY)Zrd;r-52N`2<|OPc2P72t)NKy2@nTGYNSPXj5Lx7NTfiGV&`mK^hmuzDNzzF z+bOc+ym@@{hBMON-+%b!zAVTSm|AMJqEQf10xHp|RQZa3Hki#m(98Jk8-A}f63bQf za$n08-6B>?#&)}1uv-M$>5&OBm{hn;06f>!66eW6AT`_9X?JE}a4~xX6v2C!vk7Xg5W>HLNWpYx8?A+EGLc|oEOr=h<|9wP zGSF4t$P%u9bPDl2oJX^8F`Hj(qIb(hxD3NzoE_69*CG8Oar?2V3hCO2&%;jU6d%Ms zYf}n*aL*sxhB=!+u3dJ}FaH7xj3}-llS;N)^(ZC_aKRW7nXV`_MN_5%DM_?KP`G)n zU`2~GVLpW&)|i6E!$4p!%Bp~NxFazrQsk_a?hCnpVD#{9t5KJLM)uegeeMiZW9a62 z!fGY&Ap-+;fkJj2WX-|L_kO^gm!&uj5dr9=cXu0(xQNakBS<`BPSH`ARXY*O<@aqq_= zJ|4E}?DlZh{ww2uP)h*u$0002~8yyJ% diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithOrphanedFiles.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithOrphanedFiles.gldf index 88523fedc5bbad5cad2617420aaa96ca7b014c7f..382246a5c00d56d0f4d52b716397c3820a699a8c 100644 GIT binary patch delta 804 zcmV+<1Ka$LA)g_z$pQ^Ge|}R!Cv$+w0ssJilhy(w14-K=ll%f2e;{B@>#O*lJAQtg zyWqqZdr<_>pewHACS1&;FaVh<#$~<8%vN=~| zU$MiQMDvfcCopvWf8ORW5u%kKh`#}4pbu+|ZmFy@nwnapb{fRQMXvl(!(rzKF5prz zNS4uZF^g8S<;RD`yY(tsN73(?49j|t1N+I%_ET9F+#Vwtmo4U8Z((1Q7Suf2uRp;9 z$D}9O9EF~^w ztcG1Fng^S1g-M31dBF_2!qo_xLp4H0)d$414~RoH!n6q=7Sog1V#Nl`927y-2gLLw zP>ceFA1FLPJqpx*p!NVumJNVRrM19_V9H0u^d$99nGdL3&>RTrJ|w26jmmK(>Ry*} z8d*J$BT@Gue=$9c1lb>TD=AHykAnU8PpEm^jr=+LHDhmJZ-(F!Qlo1@nw*bo_S2r( zJ{w|R#FHurCVWgxPcU1;uyd{cn${_^1>K__HLq2b_JB6%-nHMi$|wOw^P|>RU+iRe zp}n`xsv6`yWS{{r%Anczy7#^&4o%!soud&G@n^w}e*xXbPO(>kUH9zV@O*39B4_!! zcYwZ^V|8cbWYZ=by`q|fYsKo+40V^e#oPXh8hVsn;;t4?hy9%Ere_coROU7QwDD*% zOpeuoJe0@87M&RH;m&qx+W+r+VDZEb4&}7-)5VWeb1F^yB{=2Ks%N{NExKm83WxW5 zZF!5HAko(9kky|THEiNJBk~gfXgYg1v(1ihKn-J=v7L1xOe@K-yAkF=A37fEBDRGvu z8lFngJlLF8m}Iz`7tCN+xEeuos79!$`haNrfH-6$Ol$bCXis8`6&o;fPy|&U5ba5z z7zGMHP`Z+Eqt;iS?PPbM zy|+%X8sr^hpaCz+ps9P+`@JR(P25vmM}sCBY4mnze`;#Q>eLK%=iJ~$dr1vF%Fej0 z#pChrIU3E?jjy(#GOzJlg$>IvIc5j)kRB78^rHVB?xafd=KsG2CQnpwD5st7E`Fez zQ)$|l;FQC;J=yha(H)!1aCm>OEpO3lv~6{q6@L-j7|`8FRD(i1-M002UhQ4K5(BxGS3#^Toj z;i7&U#^RHU4Kx9ulfVsF0mYLU4qyWE1(SOYUjZMJ+YVX*Mw2!VVgYrNnGaY2nv?Pm RU;)RIQxHZ5^acO`001A1c4Pnm diff --git a/src/Gldf.Net.Tests/TestData/Container/GldfWithSignature.gldf b/src/Gldf.Net.Tests/TestData/Container/GldfWithSignature.gldf index c4d8b0873c7d81eb65488ec025f2435f0a006e28..ea19e59fb3fc358a14c76f8eb0d7c7578a083777 100644 GIT binary patch delta 648 zcmV;30(bqk2FC_}P)h>@6aWAK2mnTZep80?${HX7005c=000XB003}uZ)A02bS`*p zY>iagj+-zLeXrDiKz;{9QmNg@VO8z+5-C|#+h|+$%?ksu1U53mCi`uD=qL3TYB1oC zq^o`NoH?91;~De!_aAnBC=2fibS;!zk|+p?2QpEqkol5-G?@7x$aVbo4ZBwgJ;Rmt z;!ukv*&$X7O85JHu%8D?=X4f^5&gMYe@}K$a$m?AxlDj~hQE;Nj+anZJOP_utAwMe zX_aatl^1Ci2t^Nd+MQ__T=|cHJa}(&CP9o9&tqSKr=YvDi8fp|8Beg$20IQIb&;dr zXy__$MF}^5Dus9!<gY`?ITU^lmW^7h(8|(No&wb4Y&(+#|N>` zN|ziT?DfZ{VMZsAZI>SP%f5gF&5K*egcPk-J&K6}Y%qqNNS6efqA633#7mS!khp!W zU`dKJp)Q3T*64!7!$9D`%c_8OxFazrQe?E1?hDy}VD#{9r%;uETJ+cyeeMiZV`%4j z#%d++Ap;F&fxOH_t4SZ!NmKXL=;(q8_Nf$zpoiEY_KNIzVrMP#9S$UCc{OQZ>ZNCo zMvjWM;llXy28Yd%tPjy$*WO#OPr4 zRBO5~ZZG?#S-JhO+i;>|5f=~JaB=F4wm;hVACou&JPk&Fep80?${HX7005ekfdVWJ i8Uqor`sLRFA84?%`sI_m0yF_hlkfsS26+Mi0002w;x7RJ delta 631 zcmV--0*L*`2DS!&P)h>@6aWAK2mp?7dQ&y@Ttg26003PD000XB003}uZ)A02bS`*p zY>iY)Zrd;r-52N`2<|OPc2P72t)NKy2@nTGYNSPXj5Lx7NTfiGV&`mK^hmuzDNzzF z+bOc+ym@@{hBMON-+%b!zAVTSm|AMJqEQf10xHp|RQZa3Hki#m(98Jk8-A}f63bQf za$n08-6B>?#&)}1uv-M$>5&OBm{hn;06f>!66eW6AT`_9X?JE}a4~xX6v2C!vk7Xg5W>HLNWpYx8?A+EGLc|oEOr=h<|9wP zGSF4t$P%u9bPDl2oJX^8F`Hj(qIb(hxD3NzoE_69*CG8Oar?2V3hCO2&%;jU6d%Ms zYf}n*aL*sxhB=!+u3dJ}FaH7xj3}-llS;N)^(ZC_aKRW7nXV`_MN_5%DM_?KP`G)n zU`2~GVLpW&)|i6E!$4p!%Bp~NxFazrQsk_a?hCnpVD#{9t5KJLM)uegeeMiZW9a62 z!fGY&Ap-+;fkJj2WX-|L_kO^gm!&uj5dr9=cXu0(xQNakBS<`BPSH`ARXY*O<@aqq_= zJ|4E}?DlZh{ww2ulSu+R4UTYnQ#JHlLk|J~09})k0xS-=t + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -62,6 +62,11 @@ + + + + + @@ -77,9 +82,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryModel.cs index b254b0e..e02206f 100644 --- a/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryModel.cs @@ -56,6 +56,20 @@ public class ControlGearMandatoryModel } } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -88,12 +102,9 @@ public class ControlGearMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryXml.xml index 78e7f46..1f6f69c 100644 --- a/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/ControlGears/ControlGearMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -23,6 +23,11 @@ + + + + + @@ -38,9 +43,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesModel.cs b/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesModel.cs index 5f8e354..7f0e7e8 100644 --- a/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesModel.cs +++ b/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesModel.cs @@ -44,6 +44,20 @@ public class DescriptiveAttributesModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -76,12 +90,9 @@ public class DescriptiveAttributesModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, VariantDescriptiveAttributes = new DescriptiveAttributes { @@ -190,12 +201,9 @@ public class DescriptiveAttributesModel { new Locale { Language = "en", Text = "Variant 2" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, VariantDescriptiveAttributes = new DescriptiveAttributes { @@ -381,12 +389,9 @@ public class DescriptiveAttributesModel { new Locale { Language = "en", Text = "Variant 3" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, VariantDescriptiveAttributes = new DescriptiveAttributes { @@ -409,12 +414,9 @@ public class DescriptiveAttributesModel { new Locale { Language = "en", Text = "Variant 4" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, VariantDescriptiveAttributes = new DescriptiveAttributes { @@ -437,12 +439,9 @@ public class DescriptiveAttributesModel { new Locale { Language = "en", Text = "Variant 5" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, VariantDescriptiveAttributes = new DescriptiveAttributes { @@ -465,12 +464,9 @@ public class DescriptiveAttributesModel { new Locale { Language = "en", Text = "Variant 6" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, VariantDescriptiveAttributes = new DescriptiveAttributes { @@ -492,12 +488,9 @@ public class DescriptiveAttributesModel { new Locale { Language = "en", Text = "Variant 7" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, VariantDescriptiveAttributes = new DescriptiveAttributes { diff --git a/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesXml.xml b/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesXml.xml index c162b5f..c02a24f 100644 --- a/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesXml.xml +++ b/src/Gldf.Net.Tests/TestData/Descriptive/DescriptiveAttributesXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
Manufacturer 2021-03-29T14:30:00Z @@ -16,6 +16,11 @@ + + + + + @@ -31,9 +36,7 @@ Variant 1 - - - + 0 @@ -133,9 +136,7 @@ Variant 2 - - - + I @@ -293,9 +294,7 @@ Variant 3 - - - + II @@ -311,9 +310,7 @@ Variant 4 - - - + III @@ -329,9 +326,7 @@ Variant 5 - - - + 0I @@ -347,9 +342,7 @@ Variant 6 - - - + IP69 @@ -364,9 +357,7 @@ Variant 7 - - - + IP69K diff --git a/src/Gldf.Net.Tests/TestData/EmbeddedXmlTestData.cs b/src/Gldf.Net.Tests/TestData/EmbeddedXmlTestData.cs index 2587a2d..9898d51 100644 --- a/src/Gldf.Net.Tests/TestData/EmbeddedXmlTestData.cs +++ b/src/Gldf.Net.Tests/TestData/EmbeddedXmlTestData.cs @@ -1,6 +1,7 @@ using Gldf.Net.Domain; using Gldf.Net.Tests.TestData.ControlGears; using Gldf.Net.Tests.TestData.Descriptive; +using Gldf.Net.Tests.TestData.Emitters; using Gldf.Net.Tests.TestData.Equipments; using Gldf.Net.Tests.TestData.Files; using Gldf.Net.Tests.TestData.Geometries; @@ -36,6 +37,8 @@ public static class EmbeddedXmlTestData private const string ControlGearCompleteXml = "TestData.ControlGears.ControlGearCompleteXml.xml"; private const string EquipmentMandatoryXml = "TestData.Equipments.EquipmentMandatoryXml.xml"; private const string EquipmentCompleteXml = "TestData.Equipments.EquipmentCompleteXml.xml"; + private const string EmitterMandatoryXml = "TestData.Emitters.EmitterMandatoryXml.xml"; + private const string EmitterCompleteXml = "TestData.Emitters.EmitterCompleteXml.xml"; private const string GeometryMandatoryXml = "TestData.Geometries.GeometryMandatoryXml.xml"; private const string GeometryCompleteXml = "TestData.Geometries.GeometryCompleteXml.xml"; private const string MetaDataMandatoryXml = "TestData.MetaData.ProductMetaDataMandatoryXml.xml"; @@ -64,6 +67,8 @@ public static class EmbeddedXmlTestData new TestCaseData(GetControlGearCompleteXml()).SetName("ControlGear Complete"), new TestCaseData(GetEquipmentMandatoryXml()).SetName("Equipment Mandatory"), new TestCaseData(GetEquipmentCompleteXml()).SetName("Equipment Complete"), + new TestCaseData(GetEmitterMandatoryXml()).SetName("Emitter Mandatory"), + new TestCaseData(GetEmitterCompleteXml()).SetName("Emitter Complete"), new TestCaseData(GetGeometryMandatoryXml()).SetName("Geometry Mandatory"), new TestCaseData(GetGeometryCompleteXml()).SetName("Geometry Complete"), new TestCaseData(GetMetaDataMandatoryXml()).SetName("MetaData Mandatory"), @@ -126,6 +131,12 @@ public static class EmbeddedXmlTestData public static Root GetEquipmentMandatoryModel() => EquipmentMandatoryModel.Root; public static Root GetEquipmentCompleteModel() => EquipmentCompleteModel.Root; + // GeneralDefinitions => Emitters + public static string GetEmitterMandatoryXml() => ResourceLoader.LoadEmbeddedXml(EmitterMandatoryXml); + public static string GetEmitterCompleteXml() => ResourceLoader.LoadEmbeddedXml(EmitterCompleteXml); + public static Root GetEmitterMandatoryModel() => EmitterMandatoryModel.Root; + public static Root GetEmitterCompleteModel() => EmitterCompleteModel.Root; + // GeneralDefinitions => Geometries public static string GetGeometryMandatoryXml() => ResourceLoader.LoadEmbeddedXml(GeometryMandatoryXml); public static string GetGeometryCompleteXml() => ResourceLoader.LoadEmbeddedXml(GeometryCompleteXml); @@ -138,7 +149,7 @@ public static class EmbeddedXmlTestData public static Root GetMetaDataMandatoryModel() => ProductMetaDataMandatoryModel.Root; public static Root GetMetaDataCompleteModel() => ProductMetaDataCompleteModel.Root; - // GeneralDefinitions => Variants + // GeneralDefinitions => Emitters public static string GetVariantMandatoryXml() => ResourceLoader.LoadEmbeddedXml(VariantMandatoryXml); public static string GetVariantCompleteXml() => ResourceLoader.LoadEmbeddedXml(VariantCompleteXml); public static Root GetVariantMandatoryModel() => VariantMandatoryModel.Root; diff --git a/src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteModel.cs new file mode 100644 index 0000000..46be6f3 --- /dev/null +++ b/src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteModel.cs @@ -0,0 +1,196 @@ +using Gldf.Net.Domain; +using Gldf.Net.Domain.Definition; +using Gldf.Net.Domain.Definition.Types; +using Gldf.Net.Domain.Global; +using Gldf.Net.Domain.Head; +using Gldf.Net.Domain.Product; +using Gldf.Net.Domain.Product.Types; +using System; + +namespace Gldf.Net.Tests.TestData.Emitters +{ + public class EmitterCompleteModel + { + public static Root Root => new() + { + Header = new Header + { + Manufacturer = "DIAL", + CreationTimeCode = new DateTime(2021, 3, 29, 14, 30, 0, DateTimeKind.Utc), + CreatedWithApplication = "Visual Studio Code" + }, + GeneralDefinitions = new GeneralDefinitions + { + Files = new[] + { + new GldfFile + { + Id = "eulumdat", + ContentType = FileContentType.LdcEulumdat, + Type = FileType.Url, + File = "https://example.org/eulumdat.ldt" + }, + new GldfFile + { + Id = "sensorFile", + ContentType = FileContentType.SensorSensXml, + Type = FileType.Url, + File = "https://example.org/sensor.xml" + } + }, + Sensors = new [] + { + new Sensor + { + Id = "sensor", + SensorFileReference = new SensorFileReference + { + FileId = "sensorFile" + } + } + }, + Photometries = new[] + { + new Photometry + { + Id = "photometry", + Content = new PhotometryFileReference + { + FileId = "eulumdat" + } + } + }, + LightSources = new [] + { + new LightSource + { + Id = "lightSource", + LightSourceType = new FixedLightSource() + } + }, + Equipments = new [] + { + new Equipment + { + Id = "equipment", + LightSourceReference = new LightSourceReference + { + LightSourceId = "lightSource" + }, + RatedInputPower = 10, + RatedLuminousFlux = 50 + } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter-1", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry", + DisplayName = new [] + { + new Locale + { + Language = "en", + Text = "Display name" + },new Locale + { + Language = "de", + Text = "Anzeigename" + } + } + }, + new LightEmitter + { + PhotometryId = "photometry", + EquipmentId = "equipment" + }, + new LightEmitter + { + PhotometryId = "photometry", + EmergencyBehaviour = EmergencyBehaviour.None + }, + new LightEmitter + { + PhotometryId = "photometry", + EmergencyBehaviour = EmergencyBehaviour.Combined + }, + new LightEmitter + { + PhotometryId = "photometry", + EmergencyBehaviour = EmergencyBehaviour.EmergencyOnly + } + } + }, new Emitter + { + Id = "emitter-2", + PossibleFittings = new EmitterBase[] + { + new SensorEmitter + { + SensorId = "sensor", + DisplayName = new [] + { + new Locale + { + Language = "en", + Text = "Display name" + },new Locale + { + Language = "de", + Text = "Anzeigename" + } + } + }, + new SensorEmitter + { + SensorId = "sensor" + } + } + } + } + }, + ProductDefinitions = new ProductDefinitions + { + ProductMetaData = new ProductMetaData + { + ProductNumber = new[] + { + new Locale + { + Language = "en", + Text = "Product number" + } + }, + ProductName = new[] + { + new Locale + { + Language = "en", + Text = "Product name" + } + } + }, + Variants = new[] + { + new Variant + { + Id = "variant-1", + VariantName = new[] + { + new Locale { Language = "en", Text = "Variant 1" } + }, + Reference = new EmitterReference + { + EmitterId = "emitter-1" + } + } + } + } + }; + } +} \ No newline at end of file diff --git a/src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteXml.xml new file mode 100644 index 0000000..2a7e3b3 --- /dev/null +++ b/src/Gldf.Net.Tests/TestData/Emitters/EmitterCompleteXml.xml @@ -0,0 +1,79 @@ + + +
+ DIAL + 2021-03-29T14:30:00Z + Visual Studio Code + 0.9 +
+ + + https://example.org/eulumdat.ldt + https://example.org/sensor.xml + + + + + + + + + + + + + + + + + + + + 10 + 50 + + + + + + + Display name + Anzeigename + + + + + + + + + + + Display name + Anzeigename + + + + + + + + + + Product number + + + Product name + + + + + + Variant 1 + + + + + +
\ No newline at end of file diff --git a/src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryModel.cs new file mode 100644 index 0000000..01a1205 --- /dev/null +++ b/src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryModel.cs @@ -0,0 +1,99 @@ +using Gldf.Net.Domain; +using Gldf.Net.Domain.Definition; +using Gldf.Net.Domain.Definition.Types; +using Gldf.Net.Domain.Global; +using Gldf.Net.Domain.Head; +using Gldf.Net.Domain.Product; +using Gldf.Net.Domain.Product.Types; +using System; + +namespace Gldf.Net.Tests.TestData.Emitters +{ + public class EmitterMandatoryModel + { + public static Root Root => new() + { + Header = new Header + { + Manufacturer = "DIAL", + CreationTimeCode = new DateTime(2021, 3, 29, 14, 30, 0, DateTimeKind.Utc), + CreatedWithApplication = "Visual Studio Code" + }, + GeneralDefinitions = new GeneralDefinitions + { + Files = new[] + { + new GldfFile + { + Id = "eulumdat", + ContentType = FileContentType.LdcEulumdat, + Type = FileType.Url, + File = "https://example.org/eulumdat.ldt" + } + }, + Photometries = new[] + { + new Photometry + { + Id = "photometry", + Content = new PhotometryFileReference + { + FileId = "eulumdat" + } + } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } + } + }, + ProductDefinitions = new ProductDefinitions + { + ProductMetaData = new ProductMetaData + { + ProductNumber = new[] + { + new Locale + { + Language = "en", + Text = "Product number" + } + }, + ProductName = new[] + { + new Locale + { + Language = "en", + Text = "Product name" + } + } + }, + Variants = new[] + { + new Variant + { + Id = "variant-1", + VariantName = new[] + { + new Locale { Language = "en", Text = "Variant 1" } + }, + Reference = new EmitterReference + { + EmitterId = "emitter" + } + } + } + } + }; + } +} \ No newline at end of file diff --git a/src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryXml.xml new file mode 100644 index 0000000..b7d0944 --- /dev/null +++ b/src/Gldf.Net.Tests/TestData/Emitters/EmitterMandatoryXml.xml @@ -0,0 +1,43 @@ + + +
+ DIAL + 2021-03-29T14:30:00Z + Visual Studio Code + 0.9 +
+ + + https://example.org/eulumdat.ldt + + + + + + + + + + + + + + + + Product number + + + Product name + + + + + + Variant 1 + + + + + +
\ No newline at end of file diff --git a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteModel.cs index a689d5a..b21413f 100644 --- a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteModel.cs @@ -92,6 +92,20 @@ public class EquipmentCompleteModel RatedLuminousFlux = 1, EmergencyModeOutput = new EmergencyRatedLuminousFlux {Flux = 2} } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -124,12 +138,9 @@ public class EquipmentCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteXml.xml index f2cbda1..5da6a3c 100644 --- a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -44,6 +44,11 @@ 2 + + + + + @@ -59,9 +64,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryModel.cs index 8e830f3..0c566fe 100644 --- a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryModel.cs @@ -59,6 +59,20 @@ public class EquipmentMandatoryModel RatedInputPower = 0.1, RatedLuminousFlux = 1 } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -91,12 +105,9 @@ public class EquipmentMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryXml.xml index 4b3eab3..dd8378f 100644 --- a/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Equipments/EquipmentMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -28,6 +28,11 @@ 1 + + + + + @@ -43,9 +48,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Files/FilesCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Files/FilesCompleteModel.cs index 806d57e..377afdd 100644 --- a/src/Gldf.Net.Tests/TestData/Files/FilesCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Files/FilesCompleteModel.cs @@ -164,6 +164,20 @@ public class FilesCompleteModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -196,12 +210,9 @@ public class FilesCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Files/FilesCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Files/FilesCompleteXml.xml index 0e8e0f6..2892bb5 100644 --- a/src/Gldf.Net.Tests/TestData/Files/FilesCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Files/FilesCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
Manufacturer 2021-03-29T14:30:00Z @@ -31,6 +31,11 @@ + + + + + @@ -46,9 +51,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryModel.cs index 418d5f5..8e8e8e6 100644 --- a/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryModel.cs @@ -41,6 +41,20 @@ public class FilesMandatoryModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -73,12 +87,9 @@ public class FilesMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryXml.xml index 6706d38..879fbda 100644 --- a/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Files/FilesMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
Manufacturer 2021-03-29T14:30:00Z @@ -16,6 +16,11 @@ + + + + + @@ -31,9 +36,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteModel.cs index 3f9f87e..695f637 100644 --- a/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteModel.cs @@ -49,6 +49,20 @@ public class GeometryCompleteModel } } }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } + }, Geometries = new[] { new Geometry @@ -104,12 +118,9 @@ public class GeometryCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteXml.xml index 11ad611..abcbaf2 100644 --- a/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Geometries/GeometryCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -17,6 +17,11 @@ + + + + + @@ -39,9 +44,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryModel.cs index a618213..9c544bc 100644 --- a/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryModel.cs @@ -49,6 +49,20 @@ public class GeometryMandatoryModel } } }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } + }, Geometries = new[] { new Geometry @@ -94,12 +108,9 @@ public class GeometryMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryXml.xml index cdbce96..adb7522 100644 --- a/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Geometries/GeometryMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -17,6 +17,11 @@ + + + + + @@ -37,9 +42,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteModel.cs index 411f5b4..4849389 100644 --- a/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteModel.cs @@ -116,6 +116,20 @@ public class HeaderCompleteModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -148,12 +162,9 @@ public class HeaderCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteXml.xml index 2bd703a..c5f7f9c 100644 --- a/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Head/HeaderCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd" checksum="Checksum">
Author Manufacturer @@ -51,6 +51,11 @@ + + + + + @@ -66,9 +71,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryModel.cs index 32d47ff..f233ec4 100644 --- a/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryModel.cs @@ -41,6 +41,20 @@ public class HeaderMandatoryModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -73,12 +87,9 @@ public class HeaderMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryXml.xml index 64b3980..09461ca 100644 --- a/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Head/HeaderMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
Manufacturer 2021-03-29T14:30:00Z @@ -16,6 +16,11 @@ + + + + + @@ -31,9 +36,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteModel.cs b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteModel.cs index 0ad58ed..4e6eb73 100644 --- a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteModel.cs @@ -396,6 +396,20 @@ public class LightSourceCompleteModel } } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -428,12 +442,9 @@ public class LightSourceCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteXml.xml b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteXml.xml index 13a0868..4ed83d9 100644 --- a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -213,6 +213,11 @@ + + + + + @@ -228,9 +233,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryModel.cs index ef0c572..ad30f5d 100644 --- a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryModel.cs @@ -49,6 +49,20 @@ public class LightSourceMandatoryModel Id = "lightSource", LightSourceType = new FixedLightSource() } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -81,12 +95,9 @@ public class LightSourceMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryXml.xml index c954935..e6c72c7 100644 --- a/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/LightSources/LightSourceMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -21,6 +21,11 @@ + + + + + @@ -36,9 +41,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteModel.cs b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteModel.cs index b11651d..381f067 100644 --- a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteModel.cs @@ -51,6 +51,20 @@ public class ProductMetaDataCompleteModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -577,12 +591,9 @@ public class ProductMetaDataCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteXml.xml b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteXml.xml index acf30f2..6dda1bd 100644 --- a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -17,6 +17,11 @@ + + + + + @@ -270,9 +275,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryModel.cs index 25e0ab3..be3ecfd 100644 --- a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryModel.cs @@ -41,6 +41,20 @@ public class ProductMetaDataMandatoryModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -83,12 +97,9 @@ public class ProductMetaDataMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryXml.xml index d9cc40b..a665d79 100644 --- a/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/MetaData/ProductMetaDataMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -16,6 +16,11 @@ + + + + + @@ -33,9 +38,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteModel.cs index 14f11f7..4d992b1 100644 --- a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteModel.cs @@ -60,6 +60,20 @@ public class PhotometryCompleteModel LightDistributionBugRating = "LightDistributionBUG-Rating" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -92,12 +106,9 @@ public class PhotometryCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteXml.xml index 4f4abce..0513556 100644 --- a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -36,6 +36,11 @@ + + + + + @@ -51,9 +56,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryModel.cs index 86c800d..a40fe38 100644 --- a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryModel.cs @@ -41,6 +41,20 @@ public class PhotometryMandatoryModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -73,12 +87,9 @@ public class PhotometryMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryXml.xml index 2ba70ea..bbf1a0f 100644 --- a/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Photometries/PhotometryMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -16,6 +16,11 @@ + + + + + @@ -31,9 +36,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteModel.cs index acd1d13..449159c 100644 --- a/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteModel.cs @@ -65,6 +65,20 @@ public class SensorsCompleteModel DetectorType.Other } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new SensorEmitter + { + SensorId = "sensor" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -97,12 +111,9 @@ public class SensorsCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new SensorReference - { - SensorId = "sensor" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteXml.xml index c7faa29..f4feaf2 100644 --- a/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Sensors/SensorsCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -35,6 +35,11 @@ + + + + + @@ -50,9 +55,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryModel.cs index 13da52c..44fc121 100644 --- a/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryModel.cs @@ -43,6 +43,20 @@ public class SensorsMandatoryModel FileId = "sensorFile" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new SensorEmitter + { + SensorId = "sensor" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -75,12 +89,9 @@ public class SensorsMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new SensorReference - { - SensorId = "sensor" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryXml.xml index 9f3ca80..0b08457 100644 --- a/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Sensors/SensorsMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -16,6 +16,11 @@ + + + + + @@ -31,9 +36,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderUnintendedXml.xml b/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderUnintendedXml.xml index 2b1b6f6..8ebf622 100644 --- a/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderUnintendedXml.xml +++ b/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderUnintendedXml.xml @@ -1 +1 @@ -
Manufacturer2021-03-29T14:30:00ZVisual Studio Code0.9
\ No newline at end of file +
Manufacturer2021-03-29T14:30:00ZVisual Studio Code0.9
\ No newline at end of file diff --git a/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderXml.xml b/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderXml.xml index 3b24c19..428222d 100644 --- a/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderXml.xml +++ b/src/Gldf.Net.Tests/TestData/Simple/RootWithHeaderXml.xml @@ -1,5 +1,5 @@  - +
Manufacturer 2021-03-29T14:30:00Z diff --git a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteModel.cs index 75b8154..af6ef0a 100644 --- a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteModel.cs @@ -81,6 +81,20 @@ public class SpectrumCompleteModel } } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -113,12 +127,9 @@ public class SpectrumCompleteModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteXml.xml index e18a495..b0f853c 100644 --- a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -27,6 +27,11 @@ 0.3 + + + + + @@ -42,9 +47,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryModel.cs index 510e876..c7af6c2 100644 --- a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryModel.cs @@ -59,6 +59,20 @@ public class SpectrumMandatoryModel FileId = "spectrumFile" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -91,12 +105,9 @@ public class SpectrumMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryXml.xml index 1b3e531..9f8c0e4 100644 --- a/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Spectrums/SpectrumMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -22,6 +22,11 @@ + + + + + @@ -37,9 +42,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteModel.cs b/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteModel.cs index 9f6bbf3..8f49045 100644 --- a/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteModel.cs +++ b/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteModel.cs @@ -99,6 +99,86 @@ public class VariantCompleteModel RatedLuminousFlux = 2 } }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + }, + new Emitter + { + Id = "leoEmitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry", + EquipmentId = "equipment", + DisplayName = new[] + { + new Locale + { + Language = "en", + Text = "Display name" + }, + new Locale + { + Language = "de", + Text = "Anzeigename" + } + } + }, + new LightEmitter + { + PhotometryId = "photometry", + EmergencyBehaviour = EmergencyBehaviour.None + }, + new LightEmitter + { + PhotometryId = "photometry", + EquipmentId = "equipment", + EmergencyBehaviour = EmergencyBehaviour.EmergencyOnly + }, + new LightEmitter + { + PhotometryId = "photometry", + EquipmentId = "equipment", + EmergencyBehaviour = EmergencyBehaviour.Combined + } + } + }, + new Emitter + { + Id = "sensorEmitter", + PossibleFittings = new EmitterBase[] + { + new SensorEmitter + { + SensorId = "sensor", + DisplayName = new[] + { + new Locale + { + Language = "en", + Text = "Display name" + }, + new Locale + { + Language = "de", + Text = "Anzeigename" + } + } + } + } + } + }, Geometries = new[] { new Geometry @@ -183,7 +263,7 @@ public class VariantCompleteModel ProductNumber = "ProductNumber", Mountings = new Mountings { - Ceilling = new Ceilling + Ceiling = new Ceiling { Recessed = new Recessed { @@ -242,12 +322,9 @@ public class VariantCompleteModel } } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" }, Pictures = new[] { @@ -286,7 +363,7 @@ public class VariantCompleteModel }, Mountings = new Mountings { - Ceilling = new Ceilling + Ceiling = new Ceiling { Recessed = new Recessed { @@ -326,12 +403,9 @@ public class VariantCompleteModel } } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new SensorReference - { - SensorId = "sensor" - } + EmitterId = "emitter" } }, new Variant @@ -342,61 +416,15 @@ public class VariantCompleteModel { new Locale { Language = "en", Text = "Variant 3" } }, - EmitterReferences = new EmitterReferences + Reference = new GeometryReference { - Reference = new GeometryReference + GeometryId = "geometry", + EmitterReferences = new[] { - GeometryId = "geometry", - EmissionObjectReference = new[] + new GeometryEmitterReference { - new GeometryEmissionObjectReference - { - EmitterReference = new EmissionObjectReference[] - { - new LightEmitterReference - { - PhotometryId = "photometry", - EquipmentId = "equipment", - DisplayName = new[] - { - new Locale - { - Language = "en", - Text = "Display name" - }, - new Locale - { - Language = "de", - Text = "Anzeigename" - } - } - }, - new LightEmitterReference - { - PhotometryId = "photometry", - EmergencyBehaviour = EmergencyBehaviour.None - }, - new LightEmitterReference - { - PhotometryId = "photometry", - EquipmentId = "equipment", - EmergencyBehaviour = EmergencyBehaviour.EmergencyOnly - }, - new LightEmitterReference - { - PhotometryId = "photometry", - EquipmentId = "equipment", - EmergencyBehaviour = EmergencyBehaviour.Combined - } - }, - ExternalEmitterReferences = new[] - { - new ExternalEmitterReference - { - EmitterObjectExternalName = "leo1" - } - } - } + EmitterId = "leoEmitter", + EmitterObjectExternalName = "leo1" } } } @@ -409,44 +437,28 @@ public class VariantCompleteModel { new Locale { Language = "en", Text = "Variant 4" } }, - EmitterReferences = new EmitterReferences + Reference = new GeometryReference { - Reference = new GeometryReference + GeometryId = "geometry", + EmitterReferences = new[] { - GeometryId = "geometry", - EmissionObjectReference = new[] + new GeometryEmitterReference { - new GeometryEmissionObjectReference - { - EmitterReference = new EmissionObjectReference[] - { - new SensorReference - { - SensorId = "sensor", - DisplayName = new[] - { - new Locale - { - Language = "en", - Text = "Display name" - }, - new Locale - { - Language = "de", - Text = "Anzeigename" - } - } - } - }, - ExternalEmitterReferences = new[] - { - new ExternalEmitterReference - { - TargetModelType = TargetModelType.L3d, - EmitterObjectExternalName = "leo2" - } - } - } + EmitterId = "sensorEmitter", + EmitterObjectExternalName = "sensor1", + TargetModelType = TargetModelType.L3d + }, + new GeometryEmitterReference + { + EmitterId = "sensorEmitter", + EmitterObjectExternalName = "sensor1", + TargetModelType = TargetModelType.M3d + }, + new GeometryEmitterReference + { + EmitterId = "sensorEmitter", + EmitterObjectExternalName = "sensor1", + TargetModelType = TargetModelType.R3d } } }, @@ -480,7 +492,7 @@ public class VariantCompleteModel Text = "Variantenbeschreibung" } }, - Pictures = new [] + Pictures = new[] { new Image { @@ -503,7 +515,7 @@ public class VariantCompleteModel ImageType = ImageType.Other } }, - Hyperlinks = new [] + Hyperlinks = new[] { new Hyperlink { @@ -515,7 +527,7 @@ public class VariantCompleteModel Href = "href2", Region = "region", Language = "en", - CountryCode= "de", + CountryCode = "de", PlainText = "Hyperlink 2" } } @@ -534,7 +546,7 @@ public class VariantCompleteModel Language = "de", Text = "Variantenname 2" } - }, + } } }, VariantDescriptiveAttributes = new DescriptiveAttributes diff --git a/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteXml.xml b/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteXml.xml index e4f9e08..de10326 100644 --- a/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteXml.xml +++ b/src/Gldf.Net.Tests/TestData/Variants/VariantCompleteXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -36,6 +36,31 @@ 2 + + + + + + + + Display name + Anzeigename + + + + + + + + + + Display name + Anzeigename + + + + + @@ -68,7 +93,7 @@ 12345678 ProductNumber - + 0.2 @@ -77,7 +102,7 @@ - + @@ -104,9 +129,7 @@ - - - + @@ -120,7 +143,7 @@ Variant 2 - + 0.17 @@ -128,7 +151,7 @@ 0.19 - + @@ -147,56 +170,33 @@ - - - + Variant 3 - - - - - - Display name - Anzeigename - - - - - - - - leo1 - - - - - + + + leo1 + + Variant 4 - - - - - - Display name - Anzeigename - - - - - leo2 - - - - - + + + sensor1 + + + sensor1 + + + sensor1 + + diff --git a/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryModel.cs b/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryModel.cs index e5b6ad1..c6c47ca 100644 --- a/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryModel.cs +++ b/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryModel.cs @@ -41,6 +41,20 @@ public class VariantMandatoryModel FileId = "eulumdat" } } + }, + Emitters = new[] + { + new Emitter + { + Id = "emitter", + PossibleFittings = new EmitterBase[] + { + new LightEmitter + { + PhotometryId = "photometry" + } + } + } } }, ProductDefinitions = new ProductDefinitions @@ -73,12 +87,9 @@ public class VariantMandatoryModel { new Locale { Language = "en", Text = "Variant 1" } }, - EmitterReferences = new EmitterReferences + Reference = new EmitterReference { - Reference = new LightEmitterReference - { - PhotometryId = "photometry" - } + EmitterId = "emitter" } } } diff --git a/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryXml.xml b/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryXml.xml index 2ba70ea..b7d0944 100644 --- a/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryXml.xml +++ b/src/Gldf.Net.Tests/TestData/Variants/VariantMandatoryXml.xml @@ -1,6 +1,6 @@  + xsi:noNamespaceSchemaLocation="https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd">
DIAL 2021-03-29T14:30:00Z @@ -16,6 +16,11 @@ + + + + + @@ -31,9 +36,7 @@ Variant 1 - - - + diff --git a/src/Gldf.Net/Domain/Definition/Emitter.cs b/src/Gldf.Net/Domain/Definition/Emitter.cs new file mode 100644 index 0000000..fa0677c --- /dev/null +++ b/src/Gldf.Net/Domain/Definition/Emitter.cs @@ -0,0 +1,22 @@ +using Gldf.Net.Domain.Definition.Types; +using Gldf.Net.Domain.Product.Types; +using System.Collections.Generic; +using System.Linq; +using System.Xml.Serialization; + +namespace Gldf.Net.Domain.Definition +{ + public class Emitter + { + [XmlAttribute(DataType = "ID", AttributeName = "id")] + public string Id { get; set; } + + [XmlElement("LightEmitter", typeof(LightEmitter))] + [XmlElement("Sensor", typeof(SensorEmitter))] + public EmitterBase[] PossibleFittings { get; set; } + + public IEnumerable GetLightEmitters() => PossibleFittings?.OfType(); + + public IEnumerable GetSensorEmitters() => PossibleFittings?.OfType(); + } +} \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Definition/GeneralDefinitions.cs b/src/Gldf.Net/Domain/Definition/GeneralDefinitions.cs index 87b41e3..dbcd21b 100644 --- a/src/Gldf.Net/Domain/Definition/GeneralDefinitions.cs +++ b/src/Gldf.Net/Domain/Definition/GeneralDefinitions.cs @@ -25,6 +25,9 @@ public class GeneralDefinitions [XmlArrayItem("Equipment")] public Equipment[] Equipments { get; set; } + [XmlArrayItem("Emitter")] + public Emitter[] Emitters { get; set; } + [XmlArrayItem("Geometry")] public Geometry[] Geometries { get; set; } } diff --git a/src/Gldf.Net/Domain/Definition/Types/EmitterBase.cs b/src/Gldf.Net/Domain/Definition/Types/EmitterBase.cs new file mode 100644 index 0000000..68dd0b3 --- /dev/null +++ b/src/Gldf.Net/Domain/Definition/Types/EmitterBase.cs @@ -0,0 +1,6 @@ +namespace Gldf.Net.Domain.Definition.Types +{ + public abstract class EmitterBase + { + } +} \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Product/Types/EmitterReference.cs b/src/Gldf.Net/Domain/Product/Types/EmitterReference.cs new file mode 100644 index 0000000..204869a --- /dev/null +++ b/src/Gldf.Net/Domain/Product/Types/EmitterReference.cs @@ -0,0 +1,10 @@ +using System.Xml.Serialization; + +namespace Gldf.Net.Domain.Product.Types +{ + public class EmitterReference : EmitterReferenceBase + { + [XmlAttribute(DataType = "ID", AttributeName = "emitterId")] + public string EmitterId { get; set; } + } +} \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Product/Types/EmissionObjectReference.cs b/src/Gldf.Net/Domain/Product/Types/EmitterReferenceBase.cs similarity index 53% rename from src/Gldf.Net/Domain/Product/Types/EmissionObjectReference.cs rename to src/Gldf.Net/Domain/Product/Types/EmitterReferenceBase.cs index 91064f9..86211a7 100644 --- a/src/Gldf.Net/Domain/Product/Types/EmissionObjectReference.cs +++ b/src/Gldf.Net/Domain/Product/Types/EmitterReferenceBase.cs @@ -1,6 +1,6 @@ namespace Gldf.Net.Domain.Product.Types { - public abstract class EmissionObjectReference + public abstract class EmitterReferenceBase { } } \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Product/Types/EmitterReferences.cs b/src/Gldf.Net/Domain/Product/Types/EmitterReferences.cs deleted file mode 100644 index 7da0d6e..0000000 --- a/src/Gldf.Net/Domain/Product/Types/EmitterReferences.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Xml.Serialization; - -namespace Gldf.Net.Domain.Product.Types -{ - public class EmitterReferences - { - [XmlElement("GeometryReference", typeof(GeometryReference))] - [XmlElement("LightEmitterReference", typeof(LightEmitterReference))] - [XmlElement("SensorReference", typeof(SensorReference))] - public EmissionObjectReference Reference { get; set; } - - public GeometryReference GetAsGeometryReference() => Reference as GeometryReference; - - public LightEmitterReference GetAsLightEmitterReference() => Reference as LightEmitterReference; - - public SensorReference GetAsSensorReference() => Reference as SensorReference; - } -} \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Product/Types/GeometryEmissionObjectReference.cs b/src/Gldf.Net/Domain/Product/Types/GeometryEmissionObjectReference.cs deleted file mode 100644 index 7b124f0..0000000 --- a/src/Gldf.Net/Domain/Product/Types/GeometryEmissionObjectReference.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Xml.Serialization; - -namespace Gldf.Net.Domain.Product.Types -{ - public class GeometryEmissionObjectReference - { - [XmlElement("LightEmitterReference", typeof(LightEmitterReference))] - [XmlElement("SensorReference", typeof(SensorReference))] - public EmissionObjectReference[] EmitterReference { get; set; } - - [XmlArray("ExternalEmitterReferences"), XmlArrayItem("ExternalEmitterReference")] - public ExternalEmitterReference[] ExternalEmitterReferences { get; set; } - } - -} \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Product/Types/ExternalEmitterReference.cs b/src/Gldf.Net/Domain/Product/Types/GeometryEmitterReference.cs similarity index 78% rename from src/Gldf.Net/Domain/Product/Types/ExternalEmitterReference.cs rename to src/Gldf.Net/Domain/Product/Types/GeometryEmitterReference.cs index 6040041..48d98da 100644 --- a/src/Gldf.Net/Domain/Product/Types/ExternalEmitterReference.cs +++ b/src/Gldf.Net/Domain/Product/Types/GeometryEmitterReference.cs @@ -2,8 +2,11 @@ namespace Gldf.Net.Domain.Product.Types { - public class ExternalEmitterReference + public class GeometryEmitterReference { + [XmlAttribute(DataType = "ID", AttributeName = "emitterId")] + public string EmitterId { get; set; } + private TargetModelType _targetModelType; [XmlAttribute("targetModelType")] diff --git a/src/Gldf.Net/Domain/Product/Types/GeometryReference.cs b/src/Gldf.Net/Domain/Product/Types/GeometryReference.cs index f5918ef..d3d613c 100644 --- a/src/Gldf.Net/Domain/Product/Types/GeometryReference.cs +++ b/src/Gldf.Net/Domain/Product/Types/GeometryReference.cs @@ -2,12 +2,12 @@ namespace Gldf.Net.Domain.Product.Types { - public class GeometryReference : EmissionObjectReference + public class GeometryReference : EmitterReferenceBase { [XmlAttribute(DataType = "NCName", AttributeName = "geometryId")] public string GeometryId { get; set; } - [XmlElement("EmissionObjectReference")] - public GeometryEmissionObjectReference[] EmissionObjectReference { get; set; } + [XmlElement("EmitterReference")] + public GeometryEmitterReference[] EmitterReferences { get; set; } } } \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Product/Types/LightEmitterReference.cs b/src/Gldf.Net/Domain/Product/Types/LightEmitter.cs similarity index 87% rename from src/Gldf.Net/Domain/Product/Types/LightEmitterReference.cs rename to src/Gldf.Net/Domain/Product/Types/LightEmitter.cs index 5a35a86..cf222da 100644 --- a/src/Gldf.Net/Domain/Product/Types/LightEmitterReference.cs +++ b/src/Gldf.Net/Domain/Product/Types/LightEmitter.cs @@ -1,9 +1,10 @@ -using Gldf.Net.Domain.Global; +using Gldf.Net.Domain.Definition.Types; +using Gldf.Net.Domain.Global; using System.Xml.Serialization; namespace Gldf.Net.Domain.Product.Types { - public class LightEmitterReference : EmissionObjectReference + public class LightEmitter : EmitterBase { [XmlAttribute(DataType = "NCName", AttributeName = "photometryId")] public string PhotometryId { get; set; } diff --git a/src/Gldf.Net/Domain/Product/Types/Mounting/Ceilling.cs b/src/Gldf.Net/Domain/Product/Types/Mounting/Ceiling.cs similarity index 89% rename from src/Gldf.Net/Domain/Product/Types/Mounting/Ceilling.cs rename to src/Gldf.Net/Domain/Product/Types/Mounting/Ceiling.cs index 87cd9cd..e04325b 100644 --- a/src/Gldf.Net/Domain/Product/Types/Mounting/Ceilling.cs +++ b/src/Gldf.Net/Domain/Product/Types/Mounting/Ceiling.cs @@ -1,6 +1,6 @@ namespace Gldf.Net.Domain.Product.Types.Mounting { - public class Ceilling + public class Ceiling { public Recessed Recessed { get; set; } diff --git a/src/Gldf.Net/Domain/Product/Types/Mounting/Mountings.cs b/src/Gldf.Net/Domain/Product/Types/Mounting/Mountings.cs index a9a6086..91e0b55 100644 --- a/src/Gldf.Net/Domain/Product/Types/Mounting/Mountings.cs +++ b/src/Gldf.Net/Domain/Product/Types/Mounting/Mountings.cs @@ -2,7 +2,7 @@ { public class Mountings { - public Ceilling Ceilling { get; set; } + public Ceiling Ceiling { get; set; } public Wall Wall { get; set; } diff --git a/src/Gldf.Net/Domain/Product/Types/SensorReference.cs b/src/Gldf.Net/Domain/Product/Types/SensorEmitter.cs similarity index 68% rename from src/Gldf.Net/Domain/Product/Types/SensorReference.cs rename to src/Gldf.Net/Domain/Product/Types/SensorEmitter.cs index af3e6ea..ff23a1b 100644 --- a/src/Gldf.Net/Domain/Product/Types/SensorReference.cs +++ b/src/Gldf.Net/Domain/Product/Types/SensorEmitter.cs @@ -1,13 +1,14 @@ -using Gldf.Net.Domain.Global; +using Gldf.Net.Domain.Definition.Types; +using Gldf.Net.Domain.Global; using System.Xml.Serialization; namespace Gldf.Net.Domain.Product.Types { - public class SensorReference : EmissionObjectReference + public class SensorEmitter : EmitterBase { - public Locale[] DisplayName { get; set; } - [XmlAttribute(DataType = "NCName", AttributeName = "sensorId")] public string SensorId { get; set; } + + public Locale[] DisplayName { get; set; } } } \ No newline at end of file diff --git a/src/Gldf.Net/Domain/Product/Variant.cs b/src/Gldf.Net/Domain/Product/Variant.cs index 92ef6e1..ad33406 100644 --- a/src/Gldf.Net/Domain/Product/Variant.cs +++ b/src/Gldf.Net/Domain/Product/Variant.cs @@ -41,7 +41,10 @@ public int SortOrder public Mountings Mountings { get; set; } - public EmitterReferences EmitterReferences { get; set; } + + [XmlElement("EmitterReference", typeof(EmitterReference))] + [XmlElement("GeometryReference", typeof(GeometryReference))] + public EmitterReferenceBase Reference { get; set; } [XmlArrayItem("ProductSerie")] public ProductSerie[] ProductSeries { get; set; } diff --git a/src/Gldf.Net/Domain/Root.cs b/src/Gldf.Net/Domain/Root.cs index de89e36..f1ed984 100644 --- a/src/Gldf.Net/Domain/Root.cs +++ b/src/Gldf.Net/Domain/Root.cs @@ -10,7 +10,7 @@ public class Root [XmlAttribute(AttributeName = SchemaAttributeName, Namespace = SchemaAttributePrefixNamespace)] public string SchemaLocation { - get => "https://gldf.io/xsd/gldf/0.9-beta.6/gldf.xsd"; + get => "https://gldf.io/xsd/gldf/0.9-beta.7/gldf.xsd"; set => _ = value; } diff --git a/src/Gldf.Net/Xsd/V09.xsd b/src/Gldf.Net/Xsd/V09.xsd index bfbbe5a..034a46a 100644 --- a/src/Gldf.Net/Xsd/V09.xsd +++ b/src/Gldf.Net/Xsd/V09.xsd @@ -56,6 +56,10 @@ + + + + @@ -96,6 +100,18 @@ + + + + + + + + + + + + @@ -112,33 +128,17 @@ + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -373,6 +373,7 @@ Equipments used in this product + Geometries used in this product @@ -616,7 +617,7 @@ - + Quotient of the luminous flux emitted by the luminaire and the power absorbed by the light source and associated circuits of the luminaire @@ -1493,7 +1494,17 @@ Note: These types are used in IES photometry files - Initial luminous flux, being operated at a ambient temperature of 25°C. See also 13032-4:2015 (Unit lm) + Initial luminous flux of the entire equipment, being operated at a ambient temperature of 25°C. See also 13032-4:2015 (Unit lm) + + + + + + + + + + Initial luminous flux of the RGB module part. Covers only the coloured light portion (Unit lm) @@ -1534,6 +1545,89 @@ Note: These types are used in IES photometry files + + + Definition of Emitters (light/sensor radiation) used in this product + + + + + Single Emitter (light/sensor radiation). Emitters are groups of LightEmitters or Sensors + + + + + Multiple definitions are possible. In this case they are treated as interchangable emitters + + + + + Definition of an emission object for the luminous part of the product. It combines a photometry with an optional equipment into a LightEmitter + + + + + + Translatable display name of the LightEmitter. Could be shown in applications like DIALux and Relux. Intended for documentation purposes + + + + + + Id reference to a Photometry element defined under GeneralDefinitions/Photometries + + + + + Id reference to an Equipment element defined under GeneralDefinitions/Equipments + + + + + Set to Combined, if this LightEmitter is intended for normal and emergency lighting. Set to EmergencyOnly, if this LightEmitter is intended for emergency lighting scenarios only. The default value or if the attribute is missing is None, which means: intended for normal light only + + + + + + + + + + + + + + + + Definition of an emission object for the sensor part of the product + + + + + + Translatable display name of the Sensor. Could be shown in applications like DIALux and Relux. Intended for documentation purposes + + + + + + Id reference to a Sensor element defined under GeneralDefinitions/Sensors. + + + + + + + + + Unique identifier of the emitter + + + + + + Definition of 3d geometries used in this product @@ -1807,27 +1901,27 @@ Note: These types are used in IES photometry files - + - Mounting place: ceilling + Mounting place: ceiling - Mounting type: recessed (into the ceilling) + Mounting type: recessed (into the ceiling) - Rectangular cutout into the ceilling + Rectangular cutout into the ceiling - Width of the rectangular cutout into the ceilling + Width of the rectangular cutout into the ceiling @@ -1837,7 +1931,7 @@ Note: These types are used in IES photometry files - Length of the rectangular cutout into the ceilling + Length of the rectangular cutout into the ceiling @@ -1847,7 +1941,7 @@ Note: These types are used in IES photometry files - Depth of the rectangular cutout into the ceilling + Depth of the rectangular cutout into the ceiling @@ -1860,13 +1954,13 @@ Note: These types are used in IES photometry files - Circular cutout into the ceilling + Circular cutout into the ceiling - Diameter of the circular cutout into the ceilling + Diameter of the circular cutout into the ceiling @@ -1876,7 +1970,7 @@ Note: These types are used in IES photometry files - Depth of the circular cutout into the ceilling + Depth of the circular cutout into the ceiling @@ -1890,7 +1984,7 @@ Note: These types are used in IES photometry files - Recessed depth into ceilling + Recessed depth into ceiling @@ -1902,7 +1996,7 @@ Note: These types are used in IES photometry files - Mounting type: surface (of the ceilling) + Mounting type: surface (of the ceiling) @@ -2198,83 +2292,68 @@ Note: These types are used in IES photometry files - + - Variant emission objects. Emission objects are groups of LightEmitters and/or Sensors, assigned to a specific part inside the luminaire model + Light and sensor emission objects (Emitter). With or without reference to a 3D geometry - - - + + + Emitter reference (Use this Node without 3D geometry) + + + - A single emission object reference. Containing light emitter and/or sensor references + Id reference to an Emitter element defined under GeneralDefinitions/Emitters - - - - - - - - - - - - Information related to the emitter object inside the referenced 3D geometry (referenced by geometryId) - - - - - - Define external emitter object names for up to three possible 3D models (l3d, m3d, r3d). Or simply one if all models uses the same name for the emitter object - - - - - - Name of the radiation emitter object inside the referenced 3D geometry (referenced by geometryId) - - - - - - Only required if multiple 3D model types (l3d, m3d, r3d) with different emitter object names are defined. - - - - - - - - - - - - - - - - - - - - - Id reference to an Geoemtry element defined under GeneralDefinitions/Geometries - - - - - - - - - - - - - - - - + + + + + + Geometry reference (Use this Node with a 3D model of this variant) + + + + + + Emitter reference inside the 3D model + + + + + + Name of the emitter object inside the referenced 3D geometry (referenced by geometryId) + + + + + + Id reference to an Emitter element defined under GeneralDefinitions/Emitters + + + + + Only required if multiple 3D model types (l3d, m3d, r3d) with different emitter object names are defined. + + + + + + + + + + + + + + + Id reference to a Geometry element defined under GeneralDefinitions/Geometries + + + + + Product series applicable to a single variant of the product. @@ -2317,61 +2396,6 @@ Note: These types are used in IES photometry files - - - Definition of a EmissionObject for the luminous parts of the product. It combines a photometry with an optional equipment into a LightEmitter, which is assigned to its parent EmissionObject - - - - - - Translatable display name of the LightEmitter. Could be shown in applications like DIALux and Relux. Intended for documentation purposes - - - - - - Id reference to a Photometry element defined under GeneralDefinitions/Photometries - - - - - Id reference to an Equipment element defined under GeneralDefinitions/Equipments - - - - - Set to Combined, if this LightEmitter is intended for normal and emergency lighting. Set to EmergencyOnly, if this LightEmitter is intended for emergency lighting scenarios only. The default value or if the attribute is missing is None, which means: intended for normal light only - - - - - - - - - - - - - - Definition of a EmissionObject for the sensor parts of the product - - - - - - Translatable display name of the Sensor. Could be shown in applications like DIALux and Relux. Intended for documentation purposes - - - - - - Id reference to a Sensor element defined under GeneralDefinitions/Sensors. - - - - Definition of global attributes