From 7be0296cba9e0f235bb831c46bb0d0e66dedefdd Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Sun, 3 Dec 2017 10:26:51 +0000 Subject: [PATCH] =?UTF-8?q?Version=203.8.11.1:=20Korrekturen=20zum=20Go-Li?= =?UTF-8?q?ve,=20haupts=C3=A4chlich=20bei=20der=20(statischen)=20Validieru?= =?UTF-8?q?ng?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ENI-2/ENI2/ENI2/App.xaml.cs | 1 + .../ENI2/ENI2/Controls/LocodeControl.xaml.cs | 29 +++++-------- ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs | 7 ++- ...DepartureNotificationDetailControl.xaml.cs | 2 + ENI-2/ENI2/ENI2/ENI2.csproj | 4 +- ENI-2/ENI2/ENI2/MainWindow.xaml.cs | 4 +- ENI-2/ENI2/ENI2/SucheControl.xaml.cs | 3 +- Stundensheet.xlsx | Bin 35069 -> 35127 bytes ...ittstelle HIS-Nord - BSMD - 2017-12-01.docx | Bin 0 -> 31526 bytes nsw/HIS-NORD/Statusabfrage_NSW.txt | 12 ++++++ nsw/Source/bsmd.ExcelReadService/LocodeDB.cs | 15 +++++++ nsw/Source/bsmd.database/DBManager.cs | 20 ++++----- nsw/Source/bsmd.database/IMDGPosition.cs | 7 +-- nsw/Source/bsmd.database/NOA_NOD.cs | 18 ++++---- .../Properties/AssemblyProductInfo.cs | 2 +- .../Properties/AssemblyProjectInfo.cs | 2 +- nsw/Source/bsmd.database/RuleEngine.cs | 40 +++++++++++++++++- nsw/Source/bsmd.database/STAT.cs | 4 +- nsw/Source/bsmd.database/Util.cs | 13 +++++- .../bsmd.database/ValidationAttribute.cs | 2 + .../bsmd.dbh/Properties/Settings.Designer.cs | 6 +-- nsw/Source/bsmd.dbh/bsmd.dbh.csproj | 2 +- .../Properties/Settings.Designer.cs | 2 +- nsw/Source/bsmd.hisnord/Request.cs | 6 ++- nsw/Source/bsmd.hisnord/bsmd.hisnord.csproj | 2 +- .../Properties/Settings.Designer.cs | 2 +- nsw/Source/bsmd.status/bsmd.status.csproj | 3 +- 27 files changed, 142 insertions(+), 66 deletions(-) create mode 100644 nsw/HIS-NORD/Gesprächsprotokoll NSW-Schnittstelle HIS-Nord - BSMD - 2017-12-01.docx create mode 100644 nsw/HIS-NORD/Statusabfrage_NSW.txt diff --git a/ENI-2/ENI2/ENI2/App.xaml.cs b/ENI-2/ENI2/ENI2/App.xaml.cs index ca028cc9..17208fc6 100644 --- a/ENI-2/ENI2/ENI2/App.xaml.cs +++ b/ENI-2/ENI2/ENI2/App.xaml.cs @@ -80,6 +80,7 @@ namespace ENI2 // Preload validation fields List vFields = bsmd.database.ValidationRule.ValidationFields; + RuleEngine.RegisterLocodeChecker(bsmd.ExcelReadService.LocodeDB.IsValidLocode); // Connect to locking service (if enabled) try diff --git a/ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml.cs b/ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml.cs index 7bdec8b1..31f2df4a 100644 --- a/ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/Controls/LocodeControl.xaml.cs @@ -26,14 +26,7 @@ namespace ENI2.Controls public LocodeControl() { InitializeComponent(); - } - - public enum LocodeMode - { - STANDARD, - NO_PORT_FLAG, - SSN - }; + } protected enum LocodeState { @@ -60,11 +53,11 @@ namespace ENI2.Controls string portName = null; switch (this.LocodeSource) { - case LocodeMode.NO_PORT_FLAG: + case RuleEngine.LocodeMode.NO_PORT_FLAG: portName = LocodeDB.LocationNameFromLocode(value); break; - case LocodeMode.STANDARD: + case RuleEngine.LocodeMode.STANDARD: portName = LocodeDB.PortNameFromLocode(value); break; - case LocodeMode.SSN: + case RuleEngine.LocodeMode.SSN: portName = LocalizedLookup.SSNPortNameFromLocode(value); break; } LocodeState locodeState = portName.IsNullOrEmpty() ? LocodeState.INVALID : LocodeState.OK; @@ -89,7 +82,7 @@ namespace ENI2.Controls set { SetValue(LocodeValueProperty, value); } } - public LocodeMode LocodeSource { get; set; } + public RuleEngine.LocodeMode LocodeSource { get; set; } #region static methods @@ -137,11 +130,11 @@ namespace ENI2.Controls string portname = null; switch(this.LocodeSource) { - case LocodeMode.NO_PORT_FLAG: + case RuleEngine.LocodeMode.NO_PORT_FLAG: portname = LocodeDB.LocationNameFromLocode(directLocode); break; - case LocodeMode.STANDARD: + case RuleEngine.LocodeMode.STANDARD: portname = LocodeDB.PortNameFromLocode(directLocode); break; - case LocodeMode.SSN: + case RuleEngine.LocodeMode.SSN: portname = LocalizedLookup.SSNPortNameFromLocode(directLocode); break; } @@ -164,11 +157,11 @@ namespace ENI2.Controls switch(this.LocodeSource) { - case LocodeMode.NO_PORT_FLAG: + case RuleEngine.LocodeMode.NO_PORT_FLAG: locodeEntries = LocodeDB.AllLocodesForCityNameAsEntries(lookupString, false); break; - case LocodeMode.STANDARD: + case RuleEngine.LocodeMode.STANDARD: locodeEntries = LocodeDB.AllLocodesForCityNameAsEntries(lookupString); break; - case LocodeMode.SSN: + case RuleEngine.LocodeMode.SSN: locodeEntries = LocalizedLookup.SSNAllLocodesForCityNameAsEntries(lookupString); break; } locodeEntries.Sort(); diff --git a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs index 5c0f6c0a..442eee90 100644 --- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs @@ -87,7 +87,9 @@ namespace ENI2 this.listBoxMessages.ItemsSource = this._listBoxList; _messages = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessagesForCore(_core, DBManager.MessageLoad.ALL); - + List missingMessages = bsmd.database.Util.CreateMessagesForCore(_core, _messages, this.LockedBy); + _messages.AddRange(missingMessages); + BindingOperations.EnableCollectionSynchronization(_messages, this.messageListLock); Dispatcher.BeginInvoke((Action)(() => this.listBoxMessages.SelectedIndex = 0)); } @@ -377,7 +379,10 @@ namespace ENI2 if(messageError.NotificationClass == aMessage.MessageNotificationClassDisplay) { aMessage.InternalStatus = Message.BSMDStatus.SUSPENDED; + aMessage.ChangedBy = ""; aMessage.StatusInfo = string.Format("Validation error: {0}", messageError.ErrorText); + DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(aMessage); + break; } } } diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs index a5257fb4..3e8f1104 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs @@ -78,6 +78,7 @@ namespace ENI2.DetailViewControls if (this._tiefdMessage == null) { this._tiefdMessage = this.Core.CreateMessage(Message.NotificationClass.TIEFD); + DBManager.Instance.Save(this._tiefdMessage); this.Messages.Add(this._tiefdMessage); } @@ -90,6 +91,7 @@ namespace ENI2.DetailViewControls tiefd.MessageCore = this.Core; tiefd.MessageHeader = this._tiefdMessage; _tiefdMessage.Elements.Add(tiefd); + DBManager.Instance.Save(tiefd); } this.tiefdGroupBox.DataContext = tiefd; diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj index e67ed48e..d886db5a 100644 --- a/ENI-2/ENI2/ENI2/ENI2.csproj +++ b/ENI-2/ENI2/ENI2/ENI2.csproj @@ -35,8 +35,8 @@ 3.5.1.0 true publish.html - 1 - 3.8.10.%2a + 2 + 3.8.11.%2a false true true diff --git a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs index ac7bc136..3c0560f2 100644 --- a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs +++ b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs @@ -366,7 +366,7 @@ namespace ENI2 DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(closedDialog.Core); // Meldeklassen für neuen Anlauf erzeugen: - bsmd.database.Util.CreateMessagesForCore(closedDialog.Core, userEntity); + bsmd.database.Util.CreateMessagesForCore(closedDialog.Core, null, userEntity); this.AnmeldungenControl_MessageCoreSelected(closedDialog.Core); // in einem neuen Reiter öffnen } @@ -424,7 +424,7 @@ namespace ENI2 DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(newCore); // Meldeklassen für neuen Anlauf erzeugen: - bsmd.database.Util.CreateMessagesForCore(newCore, userEntity); + bsmd.database.Util.CreateMessagesForCore(newCore, null, userEntity); this.AnmeldungenControl_MessageCoreSelected(newCore); // in einem neuen Reiter öffnen } } diff --git a/ENI-2/ENI2/ENI2/SucheControl.xaml.cs b/ENI-2/ENI2/ENI2/SucheControl.xaml.cs index 6681e30d..9335b853 100644 --- a/ENI-2/ENI2/ENI2/SucheControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/SucheControl.xaml.cs @@ -92,7 +92,8 @@ namespace ENI2 // suche auslösen - this.anmeldungen = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessageCoresWithFilters(filterDict, resultLimit); + this.anmeldungen = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessageCoresWithFilters(filterDict, resultLimit); + this.dataGrid.SelectedItem = null; BindingOperations.EnableCollectionSynchronization(this.anmeldungen, this.searchLock); // prevent sync lock exceptions (trat bei Sandra auf) diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index f508c58b62ce9c4b5e463fbda56b27fcb236aef1..d2338e105eba2e4a3fb50fc71591cb9d66f4d8f3 100644 GIT binary patch delta 24530 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%0A%Se?v{wSu^lm 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 TI@y2U{E~_pO@#~%`-k!$%q^0- diff --git a/nsw/HIS-NORD/Gesprächsprotokoll NSW-Schnittstelle HIS-Nord - BSMD - 2017-12-01.docx b/nsw/HIS-NORD/Gesprächsprotokoll NSW-Schnittstelle HIS-Nord - BSMD - 2017-12-01.docx new file mode 100644 index 0000000000000000000000000000000000000000..56ac9b3732aa28212c311d03bcbc85a8521c0792 GIT binary patch literal 31526 zcmeFYb9Zgewk{mowr$(CZF|PnidSsgw!M-SJ6W-9n=5(q+vnZ4?c2`z2IuzKs%q4z znt#-&r?*~D_1=|aLBY^~Ab_BNfPjdB!c4_vM}UEV`! zF8U0f06U^WFc7MIAdv6*|4;rGe}U#yd51kFq_FFhCqc2^T9kSIY7O*)pZ<7VDXEo~ zri$S$w?8im=)e3&pv9UC**AZKM{r%g3*<5rl%_G3(&iG0UD{1eS3%SE$&@wgFI^b> z>wcPuiy5b!WQS(f5I0V&wl$slUJ_#zw>DVN7yjDe8^?$aPq{a;E^+FIDy}mg>xus{ zgz^$Mc0idnO`=7|>{Y+|fP>R;R^RSbFajFUCaa+be_c|ZX`S?N%Dr6$H9N$Kvg=n? zBD9A4qwx%0v%|PjYV{YY?&ZD*$PY^5nr@3V_>~iXRpwv~rH!ZnkKah#Kiq|#4iCm> zYpdb_PmZ0Xb0`vi&iDP&;R&5)oi=*RBJ1>DU3l*17)VlHzVUNBu*goE!h8b#J3dAq zMZ-^})J9s?|Ax-yb}ozz|J46a@BbGo`+qDwI&obF zR2VMo8hqP$)Q@u=hUCxcmQ;ZU$vJ39#s#nk!esGUZ%+|Xr_#E?(ZlhC;!;*{)&g%C zA4Hw8_G11@mXYMPttX%@3Q|dXR5vro5?*q;-rC+_iIFcMxqvU4xvFrlDNLA5fW(5e zzDO^0v{$V&9#0xtH7;Qi_c6Mvvv=e{6EriUbWI!H+VWbcWkid^a0x-56UQIM;(BEw z0(}(H*kP5ygvL&K*g3|A`jHODj%kKGC&8o|hGWONaPd*>%P=Z7ln%N8I%4MD*DV`V z#{kiFwa{y%j+c;Fn-0Uz=Up_oiP1{n+Y^3=1ALpyf9&MHl?M3RSbop`-!0Y2{R#t2-=LA|7ER%m=QRRtw#O7&Ll5J!teDqe zlTPvM+sd_DT#E&)lBdbIt9=>z^X5+fFvs@`Zb;Fs zl9XmCwa^NlM6i*F;v=<4;Qf18>NK8aYfDUnFq2tFPQ^zoENjG#rJ0ZcGP}4jWPL#d z&0q7wN5W8J!>S5=SWk9M#(|vjXImi#C;Q3_%mgNJK+)x5T&yo%5-T1hU+)EIxt_Ia z%|-T#r7u)bJk;f(PXNc$SQ+u*qE2mJJM}emXELG*9*T%n%-7p&i7%41674L%#tC30 z)b;sMAo@LC;iK;iA4y*jf|Xm!d()AZb|Vr=XE(9tERa-xT+#^>!^{g3fhdU` zq*FW1dV3a>cm0>;k8gnecdWLGmJH*;0|5z$0RbU@&-fQs{}ZJbI`a1G5@=hPC-@MP zl~&}+t(7YxlWMI8gF<^asq;XqSfb8m$Rs}pCzTp|&hWiM@rt@OiYZUC2*=6D&p4I! ziD-4mj{o{!`#6O8KfVdT%!M!!3_c9nECFDV&xZVkt`({gIgeXNVVwdi;s(+aQO^S% z&s*;I5$j6v1)u(eD+LOH9p+f?_VsKs7mKE(m!CiSIxd6A=it zZcYylQfiD_jbN!|VUwk~HVYpm))=`M(9Kq9KFNV44?~a=uOO)kz$8*~wx&QZ#Iht& zOk}5v89!~YS+^cNOz9a=Lh^@|#Ya*Gy6j!M$_unBA$RS(!$-}VSty`fP+SJZS~i*)+Z$zUYNVuj#5j-{)w)8G zW+TCh8yxS&4#Ra3Yq0@Z(fwbEjzKH6eGu;F1KF(1mTI1GgayJ_rb@^Eat*MUk z^bYN*i8bX6JcIawXz4tl<3Y;p*7^)rXY6TA?qT>6o^O?qs2uK7-_*S;h!2M=pg?7| zvC&u=VKl1 zrJ$&b_tO!eNgt3OJ30T#KCqtYKQKaa`aMuMZ;RMGCrjj~2}oNS-X(@i)bwv$s~UG9t{+x|hya;< zok@91mJxI@@1U6jKt`kmGj6fAKs6k0Asa4wO?Fa~x--&?NYYkB8L0+HvQ{Vb{>enC zE5!It!#!%fmX|z`Q|1)Epe>23GgJ~8L7zlRXyeUq^cq&fuf?|l>YDGZI=Qeb3tDK{ z*cOx~i|B!f_$TJgk5|uxs21bl50;E8MQWR+HC#zISjE`&%O+EPI~>KtKu;*>L1B5- zYY+ygA%>AX|&o)KZL?V@P!B#PInK`5^|1jQsWi@i4GK3k@OcegxW#qlR;Zt!uU zf!$i|gz69*tNbKYDXHOb1;`%H+rkehM~-#z!vID+Q>~hAp#t#X3m@gwR)nz{8cEZj z1{uJzvqp_}EbqcXqE7h+7}~ff`Cgvjmk1#<>MY^-?!?IYg^rt8nuX*~dd!GOl)Q5* z9d~sG+L%|3Q~IlUTK9e6i?LGtv7p4ySUA(ljUVvgHRc0B6wL_t3|bc6%f>wcA&>aX z`&y}$@>w^_w)%`wHB~Hl7K(HUmcN;KkNP%XcbY3FK;R@}=BLYLy*}F@;S~kdP{-#B zBvcE45Nw>YWc?5)nRIAm_8LAbVt+H{%@+s>7@veW28J1aTG(v=syBMFZFP|}iWCz# z0uKo=)Sh;G6l`iQv@KNBdI60VMIKBgWheXc-+Tw(jUQn$mPERtnhhK=O-N({(`1As zoFjab?Qd0|vul}A=t2>#^x@B{OfQ&Ihf?SlVrLznK_N~+2b(Na++FY!u_c5ktw+0{ znHcxXrmd1e@5pp~vxD2Ql;uf~Sccfs^i=A3)rq}^ryJ#Ne_^x8XOdPjt?gwU^aZWM z?{k~l>D;NDte9MH^vh~J{zdd&Dq-%Fr$X|MUEMZdeEWBOzEoI|pP8-6S5r z%7KYI82{?v+8!WlQ5_|J`q&)2=cy1K$Hj+?9)Mw~CUls@^$HCbqYSETX)s$% z1F|$+=ZK4WwnvEzh*XLoFNy*3`GIUx<2psFPihtyhX1mp7uuWldlG2=Dae{NIw+!e z4nnxHNK!a}B#DAmDIZmAUm#eYXp7-l$3>45K*`pH=>vnqAIj4VY~FKVT)a?s)Cx>! zrXK?LQy$Z=M_TRIh-rY*&za5ViKpxxMS_>MGWH1`r;A+k<;GH63f!5_RKEpZn~VMx zS&;_r4~petjo$u|9Z-lpVlX}D-O#cYLQsYPZ_%p=^-HBJ;*kPn^eO9=Y3;Uq#*8Mr zd9pw5kh>(4)vd)9mDhh})^M&>-t#P&_?^m!DOR}%W~HG{wb;e3)Dg|Oqyp;_6xt{V z)!k~$b=!j>2iZt|9*E+JN8E@Zss1r8vL-U3K%waOTk5!e4wq#DsP#3YQI|QnE&vwE zRDwQmLIDEL5{^1qtUG-eN-kZ&RR%d5^(%@NC`i-nG7wnfsHuQYq+Q`?)5z-Hk^Q^d zIN7k6Qi9IDjzvu{AzQSfWd%SR{lU)(;lFQX>jr;QR#d@)9P1#T&+#b)?|I!gpH1Xa zCCfGhbxAPs8!4vVTo2UR4S(s?7>w;tS*$Oh_<8!7 zX)Zu&w&CxXPkxc{OYds;JjF;MYOyYHbU^h9R9kUr(q^HmTsjy z>3B>N)g0ria?d3IuNXV z{*J=_<~dbrh|VDL4+=#JvJ9hS)yQYu3m-iL3JZi1Av~zakBaMIV%sw*_>rfr(B?&F z3tDNP6x@HIJXGH-?R-j3T}U-~8M4c;N2HNRJW4gi_4eY$CZ3w`js-2=E#7B-!^+WP zhq&*F;bq5xMDV-K4pLxi<1nlO(>U}nEvo%I#^R4tZ}cUpYEuHw<5l?_M2 zZgjMYEnBr;RE$cS9IG`j;S@pWS?(WuWhwwoV&R0HOe%c=8aD-s{ct^eLQ<1XI|4U3 zsQMW002^3SYX&uTn|wgsocAS3reQNzMuK^tZzIrf67sNHq<|<1&`|AwQysG!owC3g3=6zPW!NMvk^lO8_eeYh@0pXAMSFTvjOjF% zhDgR@e;KH=TrEhZk%o3&26sg-(P5ryBOZ-{R3yBkvMv=)DHwb1BRc}M5;ai>^U^GC zYYzIP`W9{TNc5Z6F_X{JDPCv-Eo%#zbI0ER5aqLpfoClp16N<)xxPR+VyU5!Wb?Qm zaDn21NOvR!2itCR#kJ*zf1D;s4%KbDsRm0O2%j$>pB*Xay!s}0aiNn3q&E151hs#1 zQf}CYWS%2BCgQDex6RzTWx?&K-YESk9ok6nEukbhqJsAQD^V|zjskn}N3&C>S2;p? zUL#}nkGF{ccD3Uwxk~w5BVGkh>B}ZJw~S`CVl7_>D)J2Z)D1q~r%}IIrB>Mw1XJQY zsIEBt5?vOBGlQOp`L(XnvjvJhqbe`5o{dRXFK_AhB0oPEh{PgQ@4SY zA4-NFp2=cVe>VSTDiu>Q9od5LeKk%F1cdZ&DrIGEY-aAv{14yX&{>V$8_nz`wB7<{ z{ry@-be@2}8lMU(d zUn62yKF?0#V$6g~KE|(-u0$g`z?GihA3)C$Oq0%u*D20IZ+?qsK4Os{1gxAfMB$h? z{vjbF?AOUJnYi739|CjT=nQsYf+pLWT$6>E&Lq!q1&_h|uo!DezXDkrBRsZrmlC(Z zZj8^T@#z~Y(YLLhpM|k(J0a1~(Nu*owEx2RlT@MsZWxa)Dr6G%k`km#y{|L-Qr~B( zbz4)tsJ%(<=*R;UX^<%#AWRRWqZy=&v5h*Iq}uvK``*wZj+5I&Qp4JaZ@`SL-EI1R zw<*6|Z4!a(hH0O51eP2TOpdW5YSisPI(67@KnJr0TBfEJi|pAbE{2}#N}HRZr)Zzp z3Ulj?B)L-eFBhRhdUQ)P;U(x@^Ru~JCm^vHJZ>FZr;jZ!%2hGYTJZtj3A6RHcg{g1 zHOvx{MYne%8=|0xByqt3w}M^GnpYqQ8)Dur5%e+8$F;FLQQH(hgJ{-r>Xl86kLXUv#>Em=Be_R zAZKTgiHFAg>TENxQOsf-icvBx!TeiP7Xx^i4h<}%(ng3Uf##jmS4TQ(N!E9x&P7kK z`YEgihe4mD#^RS$a(V}MK8y$Md$T_(aSGC2g}L#EqXE1Pf9k@6F{XloZYFiF|F(j8 z2k7?%$24oLkLVn9OV+BwXC935E?ADzM%(46hHIjOa_v$@0s`3JcYYFc6Oie$n6I{) z7t3%rCX;$QH+f4x|pVh7l%UGz}Xjt8FLRm1se+61b3ojt|-jQx9q{iTE2RT%z4N>hh z7uQX1M)bGXrOZaFFFxSC-9d#2y#~IthT^nFUFMaLjWV80G0H81yo5)zHMz5owZ=P2 zO$TnwF9rP-UqLuT*7>Nxw%kxSmw2;J04N<=sDv;kN`sqOU{GbmQi3@jTaZ_* zgVwpZD^H&|KIjv2r@E!dyREJjsr91GfS+O#o$gZ$uaW#jlU}DnUGMP2qz97EZ$R1- zxozofxspnb)uW-w#)vJ3MZ}S#^=7=E$AiXFzrYX^GlgX7p&Lp|{GWMddUQEP%I^@0-T$jLYL(!wHj$~b$@r)TO?ZnWl4uYb$K_aE|5QW8jC zVMBJd)hN;)5l~37eaLo3l|c*h(UL2ooDh!YOtA)4G18#WDcYL%r_k8Go_+4(G;RTm zv60v-L^|)1-JT_$m3MSgd(hG+9Y_37l(zusYqI5-nGAuh!~Zpi8!VMZ3PJ1c}9QV%<46Vkn#M1|M3;>o2;ujbaB)K>P~DtrX;P$~Die zt6HiETiaQ#c^N=J#xTKb5PV#y&(OMOB~(BtR3aWVoi>sqiZ|TneK}$H?~Mg3ul#*9TD6l8?OEOsNODnu z@zK9+=Mt>yy2{XZ&H3nyJ!Rm|tC8GIv2qd~#vFcK!FHE?KcddcT{x2K3o!d_pJhLJ zM14KBkdJie&rE=j>!UmqwMX$~m(??H$oFjOVee4aa>%Ep*h){_B{f#(y&6`ccr>4vs^AH&SgDtRhwGUNO+uGr3LHIk&NOWtpsEX{Ft<^G)7E09IB z=W5kbb$y((W+LMH;H0P%fwHN5D;l6pF0X=vK0*D2l{e7nuZgfrK6Ek-1Z3T;`(kgVz=Xyt5$i^(m z9vg=rf`%Ltdhh?ckQ;%_@n?kOdt2U#CV)xZm?D69YKY*D?-eFU`dT!*B zsfdpzXB<9pmeRk7s+IIk&dDdo7~BOWj^s&*3_rmjKF8Wt0wOA*(FQM**g<#R7Egr% z07h8KF@| z(p_V#$f_eodRpPVJQQ_mT@=ZqOkkTx+0U274Vt>IcbUF2 zUx+$A-b4qr*Nq^Orw#-VbXE_$QpTtmbNt~M4-%KmAbi4{=Dr?e%8kCXn^gEIlYYUu zW2&Gr&MfogRV5!IzXUo=N5|Tl-FxJL-fthPtY{&sG;tMB!yI}PT~k5YVmc%r1&D1gNRw~(%$=In zGi|Z5>HNgA;UCl+y2jmdE2UmMw$$UpNJmWfQT~2tFLpyJh@}eRiOYj0#iOSBD#CIS0Qsz zC#FA>>dZc10&A6}Cidr^m!yqmj#5P_o^rwhd9a^pJ8dj+(qQK?W#c$u7GFZCc54(mNTqo}I@+g@vAOxAmb zWkhI`E$zIc(tbRB&z#ol2Oyo)X80V0IaemOrsic$Bnm>WxDHg(fm^jw#(-E@$o{PH~e!(@Q5kW+jFy zKq|WzNm!_;M+>O|`h?|6A}QXD=RShl7>#8@A7`pWJ2@TsKY=-b9)6<5ELj;kz?Ai ze0m02lNXBToMqUaCDzMixZAOeKX25H4c(B6mpu;PnWP@Y`MiNqAFaBjMa2B0`2aJ> zKs%*NpdeKEnVD166*nSI7+bwl{?&DTu9W$e=7+A)tg40}(ole1ULP>eNIPBdS(ER= zqc+$hSl}~oWth`cr%xNP_x0*95Gb1-HZps^mNMt7{{?*He<^lX_pF0@YHQCGm{lqb zvjp&qn?S(Bc05_xGhF2QGCaG+^=VknTb8^Tk}NSmJ{ElyuB#WGyItFV26cQHh`6yp zPL2|wrrNd_^e1QXx&Pa@@A&bz55OcLA?d!&iYk4t$M2p%8yW|D)1YvAiv)NvhbTq9 z+A%G!`-1(SyoD~<5DJOk-a;zk|Dd=Q4i2vWKgGS!(T>}bN%beR{sc8C_QK+s=<46d zTD+S^fM~KQPEBLt@Eo9J%KQ>Q=7^Uy*U;QNThII{ApD#c3L3@-@N?{W|F=g9Ea=lid}2JSg@)_se{YxJh) z9j6xB8$24^j2dW03E#IjedAOO%qWyMmFScS;D6BU$#IO0i>Gk) zZs>K;f|0Hc#iWhQPSdDXO#>6~?q8q_M3{`_iD6WiqYPJGimc+rpA}SY`6(j%e$CLD27Oxm zf}9X61f^z{DUZbLbJ!6;3e#tV`Ora-`o*Z@7bmr|ZF*FS40fBpD=FpKb)1vfck>%^ zk`Q&uc2~sm1^rzki7JlpU~sFh;BjCd6!!H%Q7Nn`<+#U!{x5ZagPzAO4zm>pNY(oG zPi2#If#Pzq6NtvqBTX#IJ&D!O+o4=RPN!_l2!$-GtuBk%L&xld@>n5$9`YTmj=Tco zKvO7!;bI))uuieC1g%DiT=GSTsEa*Nt}>>N{D1@t z-!tqPd0akembJgVsL4#%mPF7oaN)}7{X6%M9xK$H$Z$0=++2qSAo(1!SV2hFoZBH& z?Y1GQxa9EbvaI+p4caXslD1%?g2JjV03e&Q&vb9$i(qXqr(GlbW0+Y`smvMqL}IN{ zc@(Cj%)Unv+^`{=LPBjxqhF=cR3U1b80>On)&(e{rK7lxnUs3qRVYtFTjE$OJWJ|n~z%GkJkc^AwXazP)EolIS zGbk^$RIG%&nOj2Uh?Y@5SHsou7@ZF>uPYLE^ujRw@mEa=d}rKu|LU3JeUaW^jvhN> zZZyd-y4FodbUY9;i>($n9+bH{)GTK}Tu+uVS`71zzC86L4GX3tk&&$ojai>j7?Bzd z1-=PSk|W#nKpX6G=p;9XOz0QWV-Kro5iI;ZYE_>B#;|l|1rZER`R&F-K^U!35mpH{ zO7C2cqVRi2!rrUE1!t%K3RPYfo+!&=5ZfI;E_`7F+iF%}9$Td&Obm*Dr4X2;fnqQ> zeKRc+CRVGjt!3EpGN8SKkc4j(hU|E$68%9CZ+Z;BLsW2%j8<^2os9oBQcAD^W-jbh z2t_>N#ZU|f4!+iMok(n9Gv-hd^^G2ENpgCe1Q{KX*~npz)=Svr`WO0K3PZx1jVKf8 zJBzGMSMMt1!Tk}}C{Wc5V#dx*%Hue5#P{ z-=46q04{G(?VqR1-)yukp9!S^Nb4AC!CxAGg|uI-Ln5$YovoU*xDeL|BUx=uTtX8( zQ`gs8Y<5j~=XD)hdwN?1gwohwN;%fwek<5znW^CWocnV526hj@7TF$$(#-Y4af&cdQ08;*uI70({>Jv(BPZ-P?Ovn_dzc=?*&AcgIYhVcH;` zP*fXj+i{DbLIEkSnz@KBxGmEAoi|RA>Cjs^p?z)gph@vC{V~G`8s%UxFbQ#dKy2oI%?Ohp+c0w%hac zYM24=b)qv3bkH!YPw&itq9N+o-$h*`pBJVS@RypRPj&(7Nyn=JLCeMaiA@WWI1x@( z$f%B1J6TgsPCX>}} zhkW@XYPGshkMyi_;>NXdE>=}*b0jXZ>ws>PR~rp}qhTM*4(6j3`*Y(XhV`@`k3dhr z<9B(qXJZQQ(Pv+_wCIJLueMGdPZv9^h`Q4u4qL{?k<%s8^i|YRD(~4#87A-x)|Vb^ z%tTdsjy9(`}o7~UMl#cLEJM#j;b?({tlT|To;*Hx)j~T zf7$@+QVR%n1+AWg7HnBU!FA1lA%~+K`Dh#8v$mTXfGVyI3`=GY`tcEl^J3wk7yUcX z5ID2v^p;CQ;V^};%S)D~wW*^?Ip*#H-?h%IZ;|Ax{M-$mi6@^d|vmTS8U9e_kR zhiv=JB*s*leaa$KOYg3IFaAe`b(navw%lB-11H{T=)6(3h~LaE7)s_HIXjkxO`O(Y zZR}iVtdMl-U@9Z%HT)x@ek66}ptw#5v$fJe`-&CRjGSUIUm2k9}Zrb&2q z85>y{wUPKu@vRDHD4@{jy5iLS6vr_2b<#<8^STp0Csca|Va~ZE#@F7#=izz=a=r$3 zjBtQj#?!{60TPFt(6wvzu{JUBr>G!MbO*8_2vqXCC9#qiJYE;;s#z^){l|H*`_@`9z@AKx~|V5=Oh zQ?t*!u4JLC+8!~vuS^N5jE}ZrJ_EujcVER|pSb#nbEy!N*wr%>Z6E5=(5G{;d%%t2 zM*fm`%v?=+8_BdM3mCg!=P?l#3?d-8-`}!u8jU@XK4d@9a|EuNW?Ty8%}mbG?T@T> z4)@JChcWV5%ilP>Hca3X2`n{!p{S5} zw8U*r60y^%1~Ff3?p?Z}@@O{vSdTC~;L0?>M1b>N7=mZzOa9U|*<>Y02#W)wE9K%Pg;BGiJe<6?`%N9Q(aYovV@gZM_Yt+-6 z6RXuqV6QLG* zoT;vC`Ek-oG7Y013jOAWFYn*V5^HpxvZ}fF6=fbU`+2-JMEUuLs_@3}3S{$e-|4y_XwSx+wUgi9vBt^Z{}JtJZf|D)&EQ=A@lh5hZz~QE zA&qRye-PqqahA`CXSoTqPrjVR2?9~;M;yii>2LmEyj-(iGgp2Vp?1uBCm7lM_*6}s zlh7$cQbAF~jv#}YM5|W4d+N;GNF4P-z-B}?lWF~v@IG`n)U7~f7GTgxMbt;$f=o@_ z%?VwifTrTYxhSLMn*LrPB+opP65lM5HAjol zwTX6_X=5))!wT&>(BrLHa<|@R(L@kTT|q~dlRrjO&MfU7)T!uTEUAol+ts93Sl$e_ z?Om*qDhwJ#o4oq-)=&qk;e;HZ0NyZX{-c)T_HlF@>CVBqzPTHrVg*#Poir`sGTODH z>nFvp_v%lw;R`h;eF>bw{9R6z-uH_Xt6HPJk82wQMozUs?(6qC6LSb|i5y9vpt!(A zv?Idg25nuhp9LL)z!D|zDvqSm#o~9(5X~PwaFJ&(JT?Yo+80^kYLx!Aze|(Cbg$+T z>x&zc<@TPkp??)%o6k@iU&KynRAn8Bbu}k**U9{-pN|Ky!f|z`&%4t{m*#i?&eEX* zchJ=Ui@hIcgVS>^$-W}GO6zU&Lzw^LhF4M`^mc!b5Pxqv?!SG~{}qb;R+?n50a#2XUaK=^rmiM=1h@((VPn_)7`DK4|=@ z%`vrvmz#;g-I!u)g3b?pzMx4k&4O)>RO*$(oL2lEEOiayF^s>0g;!1MI#>3yjQV$9MaV-3-MxMrzV^mT}r$TzIT2o(51AM&lW%)n&oV<$S zr!_smO&ZnEJXsJ3jhDq*iGCXN@^Nf@FYCX@G)rsNC;o%-%x{#V{Cm;=+*14p%r_N& zGob}s%lrN;d7ho7nhWg@1>3I?L{#dEWv@PF1B@J8UP9oWKq+^uDlYpU^YZiNObfbU z1B%^Xh{)$L%GNLEfE%O?`bgLJ1cTWIJkB!X?J3a~q<(AENqS z>FCuCvnOwBC^mIX2B%)6X{ckt|%Dy~MBgF%xrd{33=T{((+Q_MBHpRt{_4 zYcBR@%D#LzLs)yVh-Rr=&4AP&$^GTA4n;?CWKBi$B$cSY*mtY`3+7DUFpu7IFNCh! z|&7ec_JI!I#n_8)x@)s`e3j2rL5$QLR0-Hv&Xc)7 zDM~tUaTjh^b!%e$A7O6v_3N?tJKLi08{_Ez-f>qebAUPHzv_R*UtDM_I^c?<{UW`^ zm+)~grF6%UbgNuxz_n5-T%kX6>gL_bv2eF!XH_`EwTY9G3J>B^iok^gQ?nswIGhKI z%$NEL)19%Ze?4fM*o<70&)xiV;js1foW*%wwR|-MhmS%`t+;0J*Lg~m?AA*tss3^k z=ZUe#ONu5NEd4g5xraJot0m@nyDM^8UCboN=m*KN(|T00%yL?4G2(=l!4b9e&T4uT z7VQho?-HRM(szAEjD>0WA2ah-x zP4d!v%u-5?NG~uGd))b>_ohKlyd}`ebHBQ+thPnbFOBO17FnWqCjaEGeM4{8{3w};iJZ2PNFD>>0R8MDSMB_e%$z>y6N3_O`R%uOa~$4 zqOpEF9m?kInPSX%X3O=I8}@*@MV1#h@I|HMG!5pX2pugu=H3Z$LL{8A`a)=x`Q+#Z zMDmTHTPdY#_8qq%S;dP)#^cmx7BW9!)x{?PIp*d8xvdFH!EWCtF#PQw-o9VQ`;dsS z*I#Df++D3sD5)MjFIV@!2>gOReeW)#ei~}*n`3{i$K`##O<*nxoqUHo&HVEIc%L7c z`Sp1bcTK3##|ci5vMY*%8eyME+B{?GI4L&Nk{vzx>JCRLH^Ix1q_hWSOOJl%L*qQl zS(a|T>U42}#2M5Eej|x~^L9{cdP9VQDo)F`9c}{IKEZwNsEi$otD{LhIUtRqL5rEh zVo$g~K(ncz&GmXIuVOUaO@}|yh3quBValbdZ(7JCPWldy#FuS>AMXqIukMv<)?DbG>{(J7rn-U{+j2(@4YkBc6#edihptw_WA{ zX`~wO2EV$Hh7?kDH_eH^f@q%D81E6JaHje7&zDrduae^JJ|XQC>uvM-6>%7G#7eU( zqv?rJdjHuN$7~H_NVbUa6~qJJWGV?CJ@tN%j&n~oA0+k?fgLqrQKa_yImw9ewSF7Nsn>P`+nT9w0@HA0URvS@YYK&C70 z4rM6Ne0|W(-2e+2EsHVMVd(gP&q&@+f2FR%6sQO&sQ%0neF_GTTUaprxo(^a%_ZymFw`X9^2~f1(O0}zyCt5<$dbu zIkZ^LiT4D=5zuFb8xv}+!IO??5g3fT}y=O-TE~Iw$GZscvAXR9Zl++jKF(JAD zX=(IhAkV>jUk#Lh@9gh=t*M+-*w;;+*k?RN} z+llGKYZr(vtZ6+r1x5q2`X(sehE`ixQTPo0)xvtVX$KYx<|E0*yEtuMS4@;1a6ufo z^u*Hioiv(2<1m7BfqtRCxW08E>w38zteo+V488A-5!wjSJT*VzpANGdd93>mx>exeSc3K0^Ia%XIo2gR-XhxJ zk7w@_EKo>Y)+K~cMt@qyykvni_4QFt*NBjQu@{A})2rX@P+0Yh`+}?sW<+hVO50HN z0acm;7%)Rz4;^PlA`xN|zy;9}>cTm74tu~UjUvv+JA<>}cC6#3c35cG$_>gev2b3> z7Nh1}G*~;)<(|29MwUz~hxXyhCqs8b(Fy2O!Kk390~$#%zAHbeQ@wf+t6bgB)#_%l zyxT=q7DZ|0(Svt4JH$e}(PJaAzJ&1ifBZiDdVOc~{hy>h7jsuv zYkSLo(Y$6YS(kMVq+XBGFW~_f{9E9lIEiT`vIMS}EV;vnSzIv@6biC_VBv}Jy6YfB z+QtO7BsoP0kA`gqcR`^p|JSpET8w8ocRe=R2`^(^*d?^WgDHP=ziv{^f|e6BfQ(K= zSWPwRd9~*9ug|+XEDt&Al_h$h!qdG@Ep5n>HP4QVNYE)~NE^4%vc8}d2^j_srC|b@6H2@`QGZxeCja7H_`j%J6qVU9a zsl0z*r4hyiN#0`zz*)2?7zrWCH%auo%`@nyKlL6P`?n@%-YHHbH4bANHJ8Jxgi32! zIPlDd&tBf^9%?_|QYfy%AGpFGwl@t2W)j~=D~I&D(()k7)uY5*iAW(Xp4(hhtSc&tZtriWk!n`G` z1KOmqM1^fvu7c*NwbjrW%F`4Y?bXqEAb%R2Prg3atK#9>rCbP}>;v-?=E6~J-XMar z?5Qs^kPP%__v0_3-p^Htj!&>L-WxY>QnD{P9Pui-KcpdVI(IBTb=@=ROI=d-KYwMY zb-!G1?kN@sxL>4>^E>d69AMsDlSA$znUe}U$QQg3UkRq$5d{e=a{H7jOMM`( z`n%;z+fpdOg?rbd2J8=kY0nF+7H3+2t7tTf4^7xoE_>@G`Lt_Mo|Rtmf#>8lY7Az4 zHWqte%*SN;m>wZ6du&Y5ELK)9^7K^Ztb4fS-9AZH`*8W@D0%;yRnn?KZWjADE%@u% znuA1|iP>S#rGGxrO?(kLcB2-}&Z7wo&NWrq_VQ;K@e&XF{^)1#K6z>RU$FIBZ2J4( zEw_CBN5~^sS&H4^SnMl9=dRwHj77sMZhTGhN4#WA;xVkz;SFnn`<6q<#JvJ;BN7 zHs;?5#1aHzSRJFIb5Q$iEJyS*A7qa5%9Oo%S=;esjrt}JNo4LJ(QP2>BYBWw_+1pO$V5RxuN6Rzg zT@&1c26>hK`rf3u{oeZnmoX@;<~(cfI-Ht&oweqE$xj0I=v`~Z~T00kk_hDTWVE7RNfNlBIr}ce|^^9Ju z9wE!@nf_{mm4C!gEwqa8s~D{6B9&#pUQzOyxOzAlosm=e^@O+yTFCdaPc&uirkx=w z7;Ewc7OnP!Q_NTGVe+B64jJbxk6?1agfPI6EtH0LvTp8 zYng{9p5703{O|hsJ{vK}Y0F3r4o+Ub2omSKSU5fX`;vK^sP^s@_zq$UR37-iuYZ^n z{P|AtpVUySyljs!(8(q6g=ADcU0xt8(SBJB!}&aaN;MCmB?0;Cl9t;$`Ik0lRC<_o zbDZ@(pVSlkG`$OH7Wre2iV--t%aD^@Xhes#okPNi#3>z@W9gnWwBy60@)LNTQ8bwy z3>6ZL9QG)l&}fyRD0UNCp4b%G2|z!+4ZfPNb9cb3o%&koT?XhiWW8l&$l@{w#u|^* z)r;-v&mpCr?>qa)_US;yj*e*E5F{!KLHC{{%10&sKQYm3Rn!&DhmPvbVT{j zJUP2~+WseDI;*?pw9uMyuyV+mked|}Hu^j3y%hA-lS_&j;nB~`=| zy-!BFCNh##7^%dia3SA`euV@YH_H-Bylh^3S3Jm!5;k-`QkG4K|+c6+4cxr5}##dqF^r>R^tG4nA2m;6$UXm<1%Y zZlS_&Z6yx`Bz2p$;z4RWCQ4v)B9qcxb7r3vO%xn>@N+q{ut>md*b8K=IrG75rW(H} zk9x-r_Vixo7sfUgORZcjh8x@0lYe$Z{!rjaS&=|-w61IZ@*DrnRIVO%D7Vv@J%z=%0cFrLpSNDL0h>> z{=N*~xtO!Ge%B8U-`{A!OegJtKEZoG*@l=fvvyp#ZbVM(L$?~RNR-^cPT&T3aYV?s zx8sK<*SY9Boc|C*Hk*5=Gfl4IHKc+0xyxv?Jt>Nm8E(aQ`v%=vgN9!-9VOi3>gUeF z;tq@W@N{eQkVBQ`rq2)j(C}Oa+>olhnvQ1r$86?3$Cr=DI04P#85Txg*^94iT!M4B zk%jEA!WThXC*eRI>i0p`gK(I(HvL)8m~lM|0wcIyw1gEt1a#IFE9shtTbXa(=>#Yp zRd7u+#(#Fza z1?x8jPNq^09g?i^Q9H^drVI-$OTZd+a;f0^`8XlRi`z{}bN%N~I}%up0?UwjV)@d~ zDGzc#94P9g6_-cRqb}wmD)nq7sz_MPTo>(nTZTDl>`J7@_R!C0qdl9B8V1!Ag6i*| zNWygKE)17uj2^5MXR7;H`|o6rd9sw=vEEtpauoMex0|u0{6vb3=J-h?P&W0##-$Nw zCieCOUsv&q@1>i)b%n0nMwa0fQ~{Tc=pUFzj4Qlc_%r(HyjPZS z&D5X1ay~t4#&g~fR7#|f;|I|j#g>K18L07seEyL0Lkc4(M7w$Bs}f63{vq$;tsUQR zMeq^>s9BK16gUol-0cF-u>vPjfkzp{gBc*RIjt=sA!H6<$(&r&3JeKcpfDNxw%3?SX|1rr%d5mojD8ksy8?;R&%PEQ zmz24dd?gC&5Eyo6>~UP6@EQB!qL8x61fVwmAZ17JME4INaR5{DyF7(@6VnQ-xxAXo z{aJ1ug4oVWN!Sb+fe|`^J-75a_mM$XD=hUgQW@~j5-WU|qUw=qV9AX^w3-n>*rGTU zjuSnCJwXwWF7RznEEnkS_@8&z5Lxj((Q6u-MF7@+1^gq|e|T3OWcqtZ!ftfJ#oSPa zfBs1>uP6GiX(3VTbB3U|gI2G>0D_qHz5W_)CVXMR6!Wh99~1NcBX-_>O)RngH}M>5 z&98x@K$$!I8e{^Sza!Q`lNE4!EdQF7hXi-7LC0PB>(^eWkx9!fGZ6j20M)R0duz zj}AAJj9@me6%5!RPtdj+_#4ONO>$bps!gs&GZr=Z+S3^l0Z@2E4ivoZpt9}v<2eY+ zU8h=N{;_$j(Pseu>8Ge-7nxv~`lDo-!0QygodWt#rPn>Nyn>$K*D~Lx$&_<~ifoz3 zfA9oe=9F-2F&2tw#Z%7?kA&B3kzrtq#G%dh_90=RhL@38Mg*&Ro}fIB*u_M4SBAzJ4pqaSWSi#9)brw?AO`PUjLX~6WS>2C|gYON%S91!Dwehc82^RM?kcC8usOCjQB3yv*5`bwO&jy#XIwk&^Pmw(!2}uBI$jF&FuS|GOrw>cfs2O0E&|YOaRHDOdc~-)Vv+(3gl%i zNxDwco?C+E!H5LQ{bjRFpVgQ*;%C|Smho2e?=|)DCou~4vJ|-c6qwf}4B#oN zgSk;3?k8(-cQ0!L)G4Pou31DOsbk7)VmrU#8Pq{NdLTfS3iB}61)F;A6;nubUGd>e zoN3TQC0>>^mrgVWZV6ACM#=6(lprdq60+ZZtaU0>2KgZA$$Y6o4cdV#hqMawBMZBY zeYb2Ql~}CAoZHOF6Q!Mmv}E3%a6_3<{mmX1p`AghJ1G>zl*svxhqhJ~8pu7w2bkV? z>pOV;PJD`(l#v4rK#6yIYxz(R_FEV4Uzo(VGkxhyL6zcH|8a;GyadJnHgT$g0 zJs3e1`sw>|=!x5_5n#&X%82+JW~SeWx&VEwfLr>kvR9x%(v#aM7Ntj$62AdTHxY`V zwl^BwX|V6i$>d&+Z5Y`bzi-ryOK?th)3D07|fP+r2R^NCN9EB+iB z$-1k6q~1(*8*>=f-FldH$XLTws?xK+_^Eep^%GwuOsSRk+S@En`4Xt{h&UVHJcJalcix+%t_{IQD3fYPIh z2-B#Rz53g-Lr2XP8YF2l}Y2_`N&qmo3G{%P61*tM8or_HJu_oq#n;cK+@)r_r zj2bXzOt5-2 zM^|6M6{K6O$8Pr%sb1rp)|y~H#+&yG-}j(VPsaCVmN5K+<7zzd!Iu%?vo-mLdhcDW zNOwUEPb7Bh$$d%kL!EOZK3aJ|O^YQr=`1)WoDskOI@%X@O&%Sn{%JBzLkdZYCb&-M zKCHxC0=x>>lkRwSPb4sG5A{|U8nrhD56e807E#W{DJlDFl*eV;W4jo4OUag10u4)3 z^dhLJGE7Cdjbpz8;-$bh=rh`>={CdT!S~GM z9e&~BxYn+s?x_teo5~~cGt^j+ahmO~BX>88!>~wA*e$lBT zpLHv3p*05=0nxL?unSbZdk(50y0=g048Dda!B+Hb`-$I73dX3TsNXiMVBd7s?(WXV zsKwjC;dm;7)Mu6MfUVfpH6&PE z!`-KmEz;a}q`7VDCK$~$ggMdRj>Ih&cgk*!aNU^xZFR|q5!BSUw`9zpqu$Os6}~Ii zmiZA=VkUeRrrr5oa&~)#FCS}s9F1z|)>EY7TD2M#nsFfmItC z792xCXQqC_xV=`m^5GM$%GE({i!>?8!bbtZv~nv)){c&AvCuw7`ud;#P+y<*tIR44 zNU`S&1e8)}@2xpMr}Rt^);E*25`3(9|12*tYxpQ>WG8CA6WAu%9ANacDaaiTIl`~i z{$8Ng7U0!FmH3EkA0@b-DK~@q|mH z>%Z%FzJ2RKx?HR;2<>&SHS7Up1CtKhpP)HH71x_|fgqT#c(mMTge^6sx}%A~Z|!f4 zj}#o35N#g`P@-+%VyhYC7RIb-2AyZF;s9Z#Tw{71N>X%{j|8o2(6_l!*prBa&V`7Z zpX?|mJuncP(Bb|V;e_2;kdmsy-XJkDT99vcUwD`$5*3Om2%c+%ISFE^Ny83eJ@oO0 z<6~90OYBzP6v#+wvMXj!0~y;@5(}FRaXlKd${Kk^hqk%Hd&b!#O3*%T;p?x`!YnZg zMac(Wr8{ve?a^wq%ig|^8qTyfP6VvcgC8V;bmaqp!krxnsImKjQghPr@)Y{bN1#~l zU(MzDOJle8nU+@v{1U>fK$YpX#8%LHnwNOG$43U#&%lGY0);$|WN|bQ;}I!MsaC@d zl&ybpaRV{9p+M=s^Gj*t|5_~V?aB+YASwM?ee_S2qLcv-o(%A()l5Hx(fl=f7<6Z5 zU>xVk=s*dd_QC4E`9l)ig$6x<5*|3YV}D8bH#0#{za;!%D&Fq<#`AXS`|DXPSu~{$ zw!sZ+V(@XDKyk=Xgvah%{y8p5oVNZqDG|$x8WNUFIx&9)6h937dnl1$Y=03D^&Q}>RakI7*x}}&fw2mLnCut@Wiy>)nECK zYFlD-=WdcXCQ41rxSwC*B$sdQWg)SI_J|Kha?D~(d=Mu{*&zHZb+=YRjgz+1rV z9bk>fKV1DG%2`jP}pc*hSu$0GG%ayeO&Z4s_6%4K1>rImOr zxPCxVnk`e5-n^_V)&%!mg^X82(ti%@ev}q(BaIGQxe1=C9x@Sqgsza7}z}Zy;pO(LZ1KlUgSt0 zYvg+Xa=!#6X4@9uJwC${ z)Ir;qBG^S)^2N>VaZla4;r0MK8b4hg##c6smSQjZy{La(EwNSja%i0F;AI6S6cH?| z&v8B14#pM~UyW8(8jBHpQwUV=6j$2k!-RjS_o_LAV#&+<*)7xqpn6|YsTv`R1*&(v zY&5(To^xuspaHKFdV{0l0)-=>dZ+y=@I6Jvu*t5*YDXWa-m@rm)D+j~*+b`qPJrtD z$Al;ZPmmOgw_;a|kx`W75-+;nN}UmH3R~aHEJC@tfVYTAQfJ6kg7&J;B@Wz0`AD;O zJ2doUXKVH`P`wj8kQ~n#A5VTLAARo+RPWN{=maq)Tg@%*ReNTkQ$08R;1Zi?$H0=ajvab7=)* zw|Lv_@4fgGcQ4DFV7VNwmq&}BbcNa(`lz|$>yEEXWK1{KwRGwnTERviczjzFa@ZJ8 zNl7`B@!UCwYHx#3lq{sQHu1Mgu-hk&+_unE9u`kzhowWJH8LXiWh|YKIw_61_ z`OVcd91qVmKih@6?C+%I-jErr~{xUL3p0ZzN#t1nB z_MDJzq;Qki(a@?zAz5J`NsO>txl?lYYTHUS&Ln=>0AvdDjpBZ)oPG-tVDfX|`A3ek zlh0Le}*6M$1RfK$9englW{mtk(-{NZ`cRbaf3nb-eX z^rI)QNHfbfZUonKRfQkI$!eX3l$cadzGd=*;Sc&r7NxrsEVg}c=8Z;C7m(IwYDAc6 zX7oj0SSz_PKWP!sYWwG7@LCj|&K?R{e^xtE8A`N9wD=x8v-2T5OD+)~29Qi!YGw}Q zm^yhv-Jnv#-#x~qpX*<|qlia>sfF2D6@$iZ*9Cd4iGtJ>%3v^*AD$vEB~OOqMcxOo z<=jMS3(0f=xjJz{0aq!Uj$Tx{Bp;>6O_qtd!dOO5)s2`qTIh-GM;@{C)I>7I$*gpM z86sqBFepKK-ZLWQ&1`YU8qdjFU{OvC#>;26=)0fk3}QUQJ=aB08T8Y9&#ikx+&I@U zAXJz%z#U-&O$hbTBFy_k^gw-|v7#wb+=w#T=Qx45a?Wjv=}aLf-ly&waZ^RcuPq~MU@383GMV*%O3){%Y`GQW)d<{I*s1ori-vdl@lOfNNA4wF$#vN>8jQjT4UV zEGGK!MQK0%083X3A(CApn$-&W?$;83wuTvZ7VgJ8&+`!AihxjgqonL!5Nc}`gp2%31 zwkoY)mpX>~;6|rT+8L2iTin$RAYD;<2GJrX+>A-fxhkH5Xhc5pWl$6LpX2WLlZgv9o=)+VPvJA~zvlnAmG$|2bG5CJI zctxknF0Y!(pN%ByF@qZSdPHu#QSXnFjScV*xQgF8wyY^M&al5t6{334@N<|hOJilB z18t%$GSv4(oIBz8+T5hGmWS}P^>8oYOjO4>1S77dx!GPnhxz5>Ir^Hr*No!~xphh3 zAcwmzroKgiu>NuTwn5yY*_L`Abd`dvlQ({pO?ecw7A8AW9sk6B>n97_M#DtG!WfSe zkYIpn?9Vijd=$hLXdboG;tt=16z+%ddkibuJ~VYR4mLTja>61x-`->Vv>B z^PK3QTp2OH=j=JYf4x8_uw(hI0MjdRIe%QB?OpAR&76SsJ-;r{$9j4(J58v*$gzCv z2zP+hhm_UD>|nnjeN!$GuR#8CJ69c?Bj~!-_3;^V=MO$hco2i2@jrLLoP#l>pOl3X z#ak?9>%HIHN|6`Q)_3f~XiR`2D&?Z*Q0k^B7q zAB*+>EE%u;xp(Wl4)3w2^$(9Rvstn#uoYM0TuCh8bn zPD0SotO?iLR+`E|@y`D{SI*pJSY0nEWg05G_zjYtet@s}17-Hf!xFQ11q~~<_;%*? zQz$ie$kNe=Q_q66d!qWu1N4Z}dDfGFqsF!j3})TBoGv zt0p7x+o0`?gz&cq*L#KV+vpDc+*elOK4jcMyTjjRp9ttqS;Sj0%oo_qF7ch3+K+r?JX1|NWP8+vcxc)mF2B}4DUJ|U*goiO41Rt}kX^br~B z)VGy5>rJkurDt@F=KUAp%j*M5EBrXYDcyJZz2er^s6r|J59OH?~bY*RE@$ z&B`lFaEth^b82Sl$(Z%rLD=SQSWE-Z&rr+9Z@yoEWx_sON+i<@_R|NN?D9^{A&-}K zW=+o_(%()O=?PWQU{)QZ>@5T1naglU?j88j(RC@-B513-l%8LGZGxgD-r(Ogcp;I3 z8QMwnwR<3UL^@MLi%%?;TYc&dM-_`a|D(*ii4<;9gFZ+OgmBg3Oxnz3#%_)WZJ}`R zL7k=P5Mn@jSLrYl6~H{00|?XGnVq9pl0gwZIJ`%L{$yY!f+)6)kfs_uGu=l90Lg zQ_m7X>_)FxcZ7g~2TnA3wTZnBV&c|0WZCxtG?xzjQ`qKWgAwX=e#<1#xXIHd%1bqO zIblU+E+UnYK}=5(Rs?^w5ldD+L&4&Wq?dDs8RO&Cf~~Hv!XB0wL9ypa*DGTB=p%r!{A%UCk-S#CvNGXqj5ID4`# z&FPb}u^N>_W2Q}{m9fICqJE1qY2|L3U{b>A`5p)oeyCNV%atyRH_a0=&PFb( z6K4uH5=QV8fX_I4ldgLogv-}b(hQ4U24hk$zYgVPCYL4nESs4((h&)QzxiQ+PG zNyS_(8(;YJl~~zCKEO$?z{H5YsJX5xxB|w}CC2yXhGK_lP0EY7xW-@?NXe(KSM=U^ zu`X^di-&Pmh{uOkw_2{M%nKS1X|)j{jVk74d8YgoYy=fW6bva)JgQbghYVof&jo## zENT;OGuDQ}y9-`e!sS22c5c(07gs;n#;@-kk`hmZEN3Cay9D@JWR=lUR8JartAmK70X%Gi6h? zYRSXKW@yfN&#hnvc2d#tm_1S#6w$j2cGc?` z`|r(sWl@p#-oO#8F)W9B+R*kUQnuNALYMFgZXDv~+P)i_k=`^8B8WQ08XD1I8zcj* z6R>EEX&vJJDD=IU`Qw9pUn<$#)NG)mgV!54s-0D;ZpA{#ey@5cQTNE1)Gy|8Chv|q zT$8%l!Qv8X6%t`a*@d#|$hUHDLarkmuxS_?EMjGlmY6tmgbz(K2f%YgDl6&}KStTB z&VE06GaIjZ0I$mThU$H<=S;cWjNvA)QPPxM#Ad5Nkm2@tD}Pr4Al?u_IJO_wq~-SQ z5|*`Hc$v+T^10_-o+qmUE5SIK&KFHu*|%RxOUGAKO>cjc56=Nh==5}A+v1Kn@Np#P z7@QgRT3A}$I&|O21alf?dOzkvs~h6S6Z8(F4J*rLsi5LO2jQ7Y1PWW&yfe%c<$#hA z4v=kt07JvZfyP1-)G86LEo6o6u*xuoBZ6XyI#D#l4*)1Zz)I<9Nx(*_8tg&EG@_PA z3^}ITGq{Xtqo7w1?l4cBA%<~fWvH+U0}A#J2Whg=Qq=Yrd=OT#^EA+-T&)^eG28~Z zM&Q3_GSJHc?>?}vd}~o4{0z!TqSiT|J6KyXjc4kXwt+EDU~}NB@?#r@OIMu_j!PGg ztE5jyML;Q(Si%8Yv#8mm(mn}}3%^8k*rQk;X)A1Psgj$4iigBW^*1#VzE<<)~1&?`6OE|mxi5-^hl#pkV^|RNERx`t!!^mk zD0-9&#}k9&pudzalnGa(Ikq~&_^G4ILu^Q@9zg~GuaFgNpBn1pPujHfr$1y9Z?XhL zGbt6y#EJIWy*d67h^rE-r>xqRrB+&a>M^xYMtAi2s}j0{PFwY7fHe z9^Yj68={vXVz!PH#!yGsXJi*_W{=y#GKh0M?dbU}15-TRh8nfvHJ)#1kKOQLqxhqs z^Ry=#Wv$Vbq-@2v3lQ3xw5-lw#V)ZlB1SXgBiqT09ZbpxN1GcaBS$kMVcP~rJu&lM ztXZ9RtqHjAzE6tAkCM|TE{vv*nVPlf!us(Ph>kfP2j@rY!XivWGkN!?W2^<_OiN~c zc=5(DFDY?Y-5*20j`nQz6dO)pvZmbi@sO}m0C=v4ziNni6y+L7D6tI@YZuE6YI;w8iU=8~7Wq9rg7$#!U{pA^x#|u45BVzgFL0!g z)0be>)&bAL^GoN^J0=UQ0D_dCyc5C#4ckYTx}6$WMat#sXf(S_?TiLzOkQhsMSFfn zUL}Ou7q0hMhID07oS-@vuAWr_rzaSYN#!}D%odk&P`0wfG!FY+)7rSSCpm4)yTwNKn9vB9vBJ>_m!W_U+JfQl#R!+JJ>NUq(PQ}M z(G!o*M^d&IMX^12sAQA}kSg6m;V++`tzlu73J1bbNCU-FF0Z@$3cEy1;&SlwBnC(R zLtNdv>!)en5!WXvk@#ibCRWFu9jT-r%l1t&PGVeW<9aKIehs;Kc(BQ(XZ?qgtZDMAUFr{zp0GkG5OtAH4VW{Xwa)3R?x--xyXtI2(x zxT-n5LB-b$?jFsKb4G;m8VzQfZ(>=y4raF{H@(0~J3tJ^MkNK8+c^FWU0A+Ib2{-S8%CnHPg{j zbQyUXGmauC?`LS`^5;wAv=xL53#rn_#4>6T?S`!7PZ&CtefFTyqcoz_AIVtK)nu~S zaeY_%(kP-Ro1?E7Pp;MV49XosCX_Alvx52R_&&tOJf(MG#|7HzB@!{@6qs$3uxg>u z{LB^dwA8&bOYakc$udL3ooS^nP((ifS6|L}@DQ!0Z8+({2pj89fpD%@@(KTF?6fav zB=0?v2&qX_6@8nSLwF{e_hP#02b`7vnct$s%)NOA{^cidMp6FE0T?+t{#rc!Zwdf- zA^|@#Rl8!AnNix_9SVszYoLHNl*L{&LaOV0E|(y!*(+s(o#$;d!)y3)#HSzwvzDDc zGnz3pI+B6yb~|0N`(a$RAjL{ByAameNT&42>?>V+jNqqmzu?1&U{PD_pia zQ4-kX4#*<;3H4IHKA$D_a`UA=U4ZdFpQz%<&DynO{A(Vn`V-;ae z(HjGB1tzrSA&-Zermw6Nq_FGeK=H$bc`v;=GwN(XY9{7sX^3NcA4T9ST1!PQ7bD_& zLFw@tnb9mGxA#rCB}sb{pJI7c^2YSUSMg_&j=Qe3$QLba>4di;OgAy9Khn2=9TSpd zdw|E|)T?S{Dnaa^G5Jl!6s6dXvX3aHzGxxO>G1RU{ zbG#s8R<_H|1cDDqt;tLh5947VqMhL}$X1Yi#c999&Bbja{v_q8NAL~BhKK;s5QIy} zJMWe1;xWGy?X>lnSd_YhUIsf2&~yzj^Q4D9Cm&;JZ47z6N{ z^6&e;{^tz&{rE4tz$(f9li;5lNB)Kazk>h)`C}W&*T8@7ruQe199VtwN7?$HyO#Y` zw*H#w^Zj1*s^UmJJ) zMz^#5jsDZd<2C%X4a9GFHOJrZe>a7AP4wDY;Wtqs=O3f^Z=;3R_}7j4zwyc3f8$@b z?f-}3|K1e&o5D`$Z;IC~lCPt9-5>XxqDbU#ia&cGUc+CvPW*-sN&XH0&usol@~>y) z>*j*rOczrB707?L8oUnUb(z&~FuB@4z^{s~Uh}-Z;q#kk+u&~=bKoY=|9$)CHU6JT z_1|a^kalBWf640<`)l~?bmnh@AhW*@|BvM6Yy4{s^cx=o_#6L95xr*kry}@`2Lb7J e`eOip>jNcONTAciFTI5Uf(vZ2ym9^Y)Bgcu>HM?+ literal 0 HcmV?d00001 diff --git a/nsw/HIS-NORD/Statusabfrage_NSW.txt b/nsw/HIS-NORD/Statusabfrage_NSW.txt new file mode 100644 index 00000000..ac10430d --- /dev/null +++ b/nsw/HIS-NORD/Statusabfrage_NSW.txt @@ -0,0 +1,12 @@ +Referenzsystem (Testsystem) +login: BSMD-REF +password: Hd47%23fz9Bl48sxU%232 +format: xml +url: https://ref-app.his-nord.de/HIS-Service/StatusInfoNSW.jsp + + +Livesystem +login: BSMD-PROD +password: Po47#fr7V45jtU#4 +format: xml +url: https://www.his-nord.de/HIS-Service/StatusInfoNSW.jsp \ No newline at end of file diff --git a/nsw/Source/bsmd.ExcelReadService/LocodeDB.cs b/nsw/Source/bsmd.ExcelReadService/LocodeDB.cs index 9410e8b2..177021a2 100644 --- a/nsw/Source/bsmd.ExcelReadService/LocodeDB.cs +++ b/nsw/Source/bsmd.ExcelReadService/LocodeDB.cs @@ -12,6 +12,7 @@ using System.Collections.Generic; using System.Data; using System.Data.SQLite; using bsmd.database; +using ENI2; namespace bsmd.ExcelReadService { @@ -57,6 +58,20 @@ namespace bsmd.ExcelReadService return result; } + public static bool IsValidLocode(string locode, RuleEngine.LocodeMode mode) + { + switch(mode) + { + case RuleEngine.LocodeMode.NO_PORT_FLAG: + return !LocodeDB.LocationNameFromLocode(locode).IsNullOrEmpty(); + case RuleEngine.LocodeMode.SSN: + return !LocalizedLookup.SSNPortNameFromLocode(locode).IsNullOrEmpty(); + default: + return !LocodeDB.PortNameFromLocode(locode).IsNullOrEmpty(); + } + } + + public static List AllLocodesForCityName(string city) { List results = new List(); diff --git a/nsw/Source/bsmd.database/DBManager.cs b/nsw/Source/bsmd.database/DBManager.cs index 9a9cb1c0..43afabc1 100644 --- a/nsw/Source/bsmd.database/DBManager.cs +++ b/nsw/Source/bsmd.database/DBManager.cs @@ -339,19 +339,15 @@ namespace bsmd.database public string GetShipNameFromCore(MessageCore core) - { - foreach(Message message in this.GetMessagesForCore(core, MessageLoad.ALL)) + { + + Message statMessage = this.GetMessage(core, Message.NotificationClass.STAT); + + if ((statMessage != null) && (statMessage.Elements.Count > 0)) { - if (message.MessageNotificationClass == Message.NotificationClass.STAT) - { - if (message.Elements.Count > 0) - { - STAT stat = message.Elements[0] as STAT; - if (stat != null) - return stat.ShipName; - } - break; - } + STAT stat = statMessage.Elements[0] as STAT; + if (stat != null) + return stat.ShipName; } return null; } diff --git a/nsw/Source/bsmd.database/IMDGPosition.cs b/nsw/Source/bsmd.database/IMDGPosition.cs index 580c2967..165800dc 100644 --- a/nsw/Source/bsmd.database/IMDGPosition.cs +++ b/nsw/Source/bsmd.database/IMDGPosition.cs @@ -30,7 +30,7 @@ namespace bsmd.database public HAZ HAZ { get; set; } [ShowReport] - [Validation(ValidationCode.NOT_NULL)] + [Validation(ValidationCode.STRING_EXACT_LEN, 4)] [MaxLength(10)] [ENI2Validation] public string UNNumber { get; set; } @@ -437,11 +437,12 @@ namespace bsmd.database if (!this.NetQuantity_KGM.HasValue && !this.GrossQuantity_KGM.HasValue && !this.Volume_MTQ.HasValue) violations.Add(RuleEngine.CreateViolation(ValidationCode.V802, null, null, this.Title, this.Identifier, this.HAZ.IsDeparture ? "HAZD" : "HAZA")); - if ((this.GeneralCargoIBC ?? false) && this.ContainerNumber.IsNullOrEmpty() && this.VehicleLicenseNumber.IsNullOrEmpty()) + if (!(this.GeneralCargoIBC ?? false) && this.ContainerNumber.IsNullOrEmpty() && this.VehicleLicenseNumber.IsNullOrEmpty()) violations.Add(RuleEngine.CreateViolation(ValidationCode.V808, null, null, this.Title, this.Identifier, this.HAZ.IsDeparture ? "HAZD": "HAZA")); if((this.NetQuantity_KGM.HasValue && this.NetQuantity_KGM.Value > 100000) || - (this.GrossQuantity_KGM.HasValue && this.GrossQuantity_KGM.Value > 100000)) + (this.GrossQuantity_KGM.HasValue && this.GrossQuantity_KGM.Value > 100000) || + (this.Volume_MTQ.HasValue && this.Volume_MTQ.Value > 100)) violations.Add(RuleEngine.CreateViolation(ValidationCode.V809, null, null, this.Title, this.Identifier, this.HAZ.IsDeparture ? "HAZD" : "HAZA")); foreach (SubsidiaryRisks sr in this.SubsidiaryRiskList) diff --git a/nsw/Source/bsmd.database/NOA_NOD.cs b/nsw/Source/bsmd.database/NOA_NOD.cs index 33cb211d..832d010b 100644 --- a/nsw/Source/bsmd.database/NOA_NOD.cs +++ b/nsw/Source/bsmd.database/NOA_NOD.cs @@ -61,7 +61,7 @@ namespace bsmd.database public DateTime? ETDFromLastPort { get; set; } [ShowReport] - [Validation(ValidationCode.NOT_NULL)] + [Validation(ValidationCode.LOCODE_SSN)] [MaxLength(5)] [ENI2Validation] public string NextPort { get; set; } @@ -220,11 +220,11 @@ namespace bsmd.database { if(this.ETDFromPortOfCall.HasValue && this.ETAToPortOfCall.HasValue && (this.ETDFromPortOfCall < this.ETAToPortOfCall)) - errors.Add(RuleEngine.CreateError(ValidationCode.E121, "ETDFromPortOfCall", this.ETDFromPortOfCall.ToString(), this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.E121, "ETDFromPortOfCall", this.ETDFromPortOfCall.ToString(), this.Title, null, this.Tablename)); if(this.CallPurposes.IsNullOrEmpty()) { - errors.Add(RuleEngine.CreateError(ValidationCode.LIST_EMPTY, null, "CallPurpose", this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.LIST_EMPTY, "CallPurposes", "CallPurpose", this.Title, null, this.Tablename)); } } @@ -232,24 +232,24 @@ namespace bsmd.database { if (this.ETDFromKielCanal.HasValue && this.ETAToKielCanal.HasValue && (this.ETDFromKielCanal < this.ETAToKielCanal)) - errors.Add(RuleEngine.CreateError(ValidationCode.E121, "ETDFromKielCanal", this.ETDFromKielCanal.ToString(), this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.E121, "ETDFromKielCanal", this.ETDFromKielCanal.ToString(), this.Title, null, this.Tablename)); } if((this.LastPort != null) && !this.LastPort.Equals("ZZUKN") && !this.ETDFromLastPort.HasValue) - errors.Add(RuleEngine.CreateError(ValidationCode.NOT_NULL, "ETDFromLastPort", null, this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.NOT_NULL, "ETDFromLastPort", null, this.Title, null, this.Tablename)); if((this.LastPort != null) && this.LastPort.Equals("ZZUKN") && this.ETDFromLastPort.HasValue) - errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE_ZZUKN, "ETDFromLastPort", null, this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE_ZZUKN, "ETDFromLastPort", null, this.Title, null, this.Tablename)); if (this.ETDFromPortOfCall.HasValue && this.ETAToNextPort.HasValue && this.ETAToNextPort < ETDFromPortOfCall) - errors.Add(RuleEngine.CreateError(ValidationCode.E121, "ETAToNextPort", null, this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.E121, "ETAToNextPort", null, this.Title, null, this.Tablename)); if ((this.NextPort != null) && !this.NextPort.Equals("ZZUKN") && !this.ETAToNextPort.HasValue) - errors.Add(RuleEngine.CreateError(ValidationCode.NOT_NULL, "ETAToNextPort", null, this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.NOT_NULL, "ETAToNextPort", null, this.Title, null, this.Tablename)); if((this.NextPort != null) && this.NextPort.Equals("ZZUKN") && this.ETAToNextPort.HasValue) - errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE_ZZUKN, "ETAToNextPort", null, this.Title, this.Tablename)); + errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE_ZZUKN, "ETAToNextPort", null, this.Title, null, this.Tablename)); } diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index 923b2e0c..476319fe 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs @@ -2,6 +2,6 @@ [assembly: AssemblyCompany("schick Informatik")] [assembly: AssemblyProduct("BSMD NSW interface")] -[assembly: AssemblyInformationalVersion("3.8.10")] +[assembly: AssemblyInformationalVersion("3.8.11")] [assembly: AssemblyCopyright("Copyright © 2014-2017 schick Informatik")] [assembly: AssemblyTrademark("")] \ No newline at end of file diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs index e2cf4434..e2d1f92d 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("3.8.10.*")] +[assembly: AssemblyVersion("3.8.11.*")] diff --git a/nsw/Source/bsmd.database/RuleEngine.cs b/nsw/Source/bsmd.database/RuleEngine.cs index 6fc91834..af60e9c0 100644 --- a/nsw/Source/bsmd.database/RuleEngine.cs +++ b/nsw/Source/bsmd.database/RuleEngine.cs @@ -96,9 +96,19 @@ namespace bsmd.database #endregion + public enum LocodeMode + { + STANDARD, + NO_PORT_FLAG, + SSN + }; + + public delegate bool LocodeValidHandler(string locode, LocodeMode mode); + private static ILog log = LogManager.GetLogger(typeof(RuleEngine)); private static Dictionary errorTextList = null; private static Dictionary violationTextList = null; + private static LocodeValidHandler _locodeChecker = null; private Dictionary> errorDict = new Dictionary>(); private Dictionary> violationDict = new Dictionary>(); @@ -116,6 +126,8 @@ namespace bsmd.database #region public static property validation + public static void RegisterLocodeChecker(LocodeValidHandler handler) { _locodeChecker = handler; } + ///

/// Test function checks decorated properties on an entity for errors (only errors, violations cannot /// happen here) @@ -185,6 +197,27 @@ namespace bsmd.database { Regex rgx = new Regex("[A-Z]{2}[A-Z0-9]{3}"); if (!rgx.IsMatch(value)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + if (_locodeChecker != null) + if (!_locodeChecker(value, LocodeMode.STANDARD)) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + } + break; + case ValidationCode.LOCODE_NOPORT: + { + Regex rgx = new Regex("[A-Z]{2}[A-Z0-9]{3}"); + if (!rgx.IsMatch(value)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + if (_locodeChecker != null) + if (!_locodeChecker(value, LocodeMode.NO_PORT_FLAG)) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + } + break; + case ValidationCode.LOCODE_SSN: + { + Regex rgx = new Regex("[A-Z]{2}[A-Z0-9]{3}"); + if (!rgx.IsMatch(value)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + if (_locodeChecker != null) + if (!_locodeChecker(value, LocodeMode.SSN)) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); } break; case ValidationCode.LOCODE_GER: @@ -227,8 +260,11 @@ namespace bsmd.database break; case ValidationCode.STRING_EXACT_LEN: { - if (value.Length != maxlen) - errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + if (!value.IsNullOrEmpty()) + { + if (value.Length != maxlen) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + } } break; case ValidationCode.STRING_MAXLEN: diff --git a/nsw/Source/bsmd.database/STAT.cs b/nsw/Source/bsmd.database/STAT.cs index 9630b7fa..8ef5652e 100644 --- a/nsw/Source/bsmd.database/STAT.cs +++ b/nsw/Source/bsmd.database/STAT.cs @@ -68,7 +68,7 @@ namespace bsmd.database public int? GrossTonnage { get; set; } [ShowReport] - [Validation(ValidationCode.LOCODE)] + [Validation(ValidationCode.LOCODE_NOPORT)] [MaxLength(5)] [ENI2Validation] public string PortOfRegistry { get; set; } @@ -115,7 +115,7 @@ namespace bsmd.database public string ISMCompanyName { get; set; } [ShowReport] - //[Validation(ValidationCode.STRING_EXACT_LEN, 7)] + [Validation(ValidationCode.STRING_EXACT_LEN, 7)] [MaxLength(10)] [ENI2Validation] public string ISMCompanyId { get; set; } diff --git a/nsw/Source/bsmd.database/Util.cs b/nsw/Source/bsmd.database/Util.cs index 4d16eaf2..c0002acd 100644 --- a/nsw/Source/bsmd.database/Util.cs +++ b/nsw/Source/bsmd.database/Util.cs @@ -118,10 +118,18 @@ namespace bsmd.database /// /// Hilfsfunktion für "manuelle" Anlage eines Schiffsanlaufs. Die Objekte sind bereits gespeichert. + /// Es werden nur noch nicht vorhandene Meldeklassen erzeugt /// - public static List CreateMessagesForCore(MessageCore core, ReportingParty user = null) + public static List CreateMessagesForCore(MessageCore core, List existingMessages, ReportingParty user = null) { List result = new List(); + Dictionary messageDict = new Dictionary(); + if(!existingMessages.IsNullOrEmpty()) + { + foreach (Message aMessage in existingMessages) + messageDict.Add(aMessage.MessageNotificationClass, aMessage); + } + bool isDE, isDK; if((core != null) && (core.PoC != null)) { @@ -130,6 +138,8 @@ namespace bsmd.database foreach (Message.NotificationClass notificationClass in Enum.GetValues(typeof(Message.NotificationClass))) { + if (messageDict.ContainsKey(notificationClass)) continue; + if(isDE) { if ((notificationClass == Message.NotificationClass.CREWD) || @@ -167,7 +177,6 @@ namespace bsmd.database { ((MDH)classElement).SetBoolsToFalse(); } - } DBManager.Instance.Save(message); diff --git a/nsw/Source/bsmd.database/ValidationAttribute.cs b/nsw/Source/bsmd.database/ValidationAttribute.cs index 09b23eb7..f6e4f17c 100644 --- a/nsw/Source/bsmd.database/ValidationAttribute.cs +++ b/nsw/Source/bsmd.database/ValidationAttribute.cs @@ -32,6 +32,8 @@ namespace bsmd.database LIST_EMPTY, IMPLAUSIBLE, IMPLAUSIBLE_ZZUKN, + LOCODE_NOPORT, + LOCODE_SSN, POSITION_COUNT = 22, STRING_UNNUMBER = 23, STRING_IMOCLASS = 24, diff --git a/nsw/Source/bsmd.dbh/Properties/Settings.Designer.cs b/nsw/Source/bsmd.dbh/Properties/Settings.Designer.cs index 58d2ac28..6f7a9b5d 100644 --- a/nsw/Source/bsmd.dbh/Properties/Settings.Designer.cs +++ b/nsw/Source/bsmd.dbh/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34209 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -12,8 +12,8 @@ namespace bsmd.dbh.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/nsw/Source/bsmd.dbh/bsmd.dbh.csproj b/nsw/Source/bsmd.dbh/bsmd.dbh.csproj index f75007b7..c0239abe 100644 --- a/nsw/Source/bsmd.dbh/bsmd.dbh.csproj +++ b/nsw/Source/bsmd.dbh/bsmd.dbh.csproj @@ -92,7 +92,7 @@ - SettingsSingleFileGenerator + PublicSettingsSingleFileGenerator Settings.Designer.cs diff --git a/nsw/Source/bsmd.hisnord/Properties/Settings.Designer.cs b/nsw/Source/bsmd.hisnord/Properties/Settings.Designer.cs index 9e393807..9cbc6cdd 100644 --- a/nsw/Source/bsmd.hisnord/Properties/Settings.Designer.cs +++ b/nsw/Source/bsmd.hisnord/Properties/Settings.Designer.cs @@ -13,7 +13,7 @@ namespace bsmd.hisnord.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/nsw/Source/bsmd.hisnord/Request.cs b/nsw/Source/bsmd.hisnord/Request.cs index ae768534..b3814462 100644 --- a/nsw/Source/bsmd.hisnord/Request.cs +++ b/nsw/Source/bsmd.hisnord/Request.cs @@ -959,7 +959,8 @@ namespace bsmd.hisnord if (s2s.ShipToShipActivityTypeCode.HasValue) hn_lastactivity.ShipToShipActivityType = s2s.ShipToShipActivityTypeCode.Value.ToString(); - hn_lastactivity.ShipToShipActivitySecurityMattersToReportOf = s2s.ShipToShipActivitySecurityMattersToReport; + if(!s2s.ShipToShipActivitySecurityMattersToReport.IsNullOrEmpty()) + hn_lastactivity.ShipToShipActivitySecurityMattersToReportOf = s2s.ShipToShipActivitySecurityMattersToReport; secItemNames.Add(ItemsChoiceType4.ShipToShipActivities); secItems.Add(hn_lastactivity); @@ -1789,7 +1790,8 @@ namespace bsmd.hisnord pi.Name = marpolPosition.Name; if (marpolPosition.FlashpointInformation.HasValue) pi.FlashpointInformation = (flashpointinfotype)marpolPosition.FlashpointInformation.Value; - pi.Flashpoint_CEL = marpolPosition.Flashpoint_CEL; + if(!marpolPosition.Flashpoint_CEL.IsNullOrEmpty()) + pi.Flashpoint_CEL = marpolPosition.Flashpoint_CEL; if (marpolPosition.Quantity_KGM.HasValue) pi.Quantity_KGM = (float)marpolPosition.Quantity_KGM.Value; pi.StowagePosition = marpolPosition.StowagePosition; diff --git a/nsw/Source/bsmd.hisnord/bsmd.hisnord.csproj b/nsw/Source/bsmd.hisnord/bsmd.hisnord.csproj index b6030315..3f164053 100644 --- a/nsw/Source/bsmd.hisnord/bsmd.hisnord.csproj +++ b/nsw/Source/bsmd.hisnord/bsmd.hisnord.csproj @@ -85,7 +85,7 @@ - SettingsSingleFileGenerator + PublicSettingsSingleFileGenerator Settings.Designer.cs diff --git a/nsw/Source/bsmd.status/Properties/Settings.Designer.cs b/nsw/Source/bsmd.status/Properties/Settings.Designer.cs index 2bdc0409..2165f2d3 100644 --- a/nsw/Source/bsmd.status/Properties/Settings.Designer.cs +++ b/nsw/Source/bsmd.status/Properties/Settings.Designer.cs @@ -13,7 +13,7 @@ namespace bsmd.status.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/nsw/Source/bsmd.status/bsmd.status.csproj b/nsw/Source/bsmd.status/bsmd.status.csproj index 87466675..bfb15ccb 100644 --- a/nsw/Source/bsmd.status/bsmd.status.csproj +++ b/nsw/Source/bsmd.status/bsmd.status.csproj @@ -67,6 +67,7 @@ True Settings.settings + @@ -84,7 +85,7 @@ - SettingsSingleFileGenerator + PublicSettingsSingleFileGenerator Settings.Designer.cs