From b8d4e943e56f5542bbbb72b9a20676b0d57f9add Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Sun, 27 Dec 2015 12:44:18 +0000 Subject: [PATCH] =?UTF-8?q?einige=20kleinere=20Korrekturen=20und=20erg?= =?UTF-8?q?=C3=A4nzungenn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Stundensheet.xlsx | Bin 18738 -> 19261 bytes nsw/HIS-NORD/Transmitter-Tool/client.log | 15 +++ nsw/Source/SQL/Update_2.4_To_2.4.14.sql | 13 +++ .../SendNSWMessageService/NSWSendService.cs | 4 +- .../bsmd.ExcelReadService/ExcelReader.cs | 2 + .../bsmd.ReportGenerator/BSMDDocument.cs | 6 +- .../bsmd.dakosy.ResponseService/App.config | 2 +- .../Properties/Settings.Designer.cs | 6 +- .../Properties/Settings.settings | 2 +- .../Properties/Settings.Designer.cs | 12 +-- .../bsmd.dakosy/Properties/Settings.settings | 16 ++-- nsw/Source/bsmd.dakosy/Request.cs | 17 +++- nsw/Source/bsmd.dakosy/app.config | 16 ++-- nsw/Source/bsmd.database/DBManager.cs | 4 +- nsw/Source/bsmd.database/MessageError.cs | 8 +- .../Properties/AssemblyProductInfo.cs | 2 +- .../Properties/AssemblyProjectInfo.cs | 2 +- nsw/Source/bsmd.database/XtraSendLogic.cs | 89 ++++++++++++++++++ nsw/Source/bsmd.database/bsmd.database.csproj | 1 + nsw/Source/bsmd.dbh/Request.cs | 2 + nsw/Source/bsmd.herberg.FormService/Util.cs | 4 +- nsw/Source/bsmd.hisnord/Request.cs | 2 + .../misc/NSW_Software_Dokumentation.docx | Bin 0 -> 41477 bytes 23 files changed, 182 insertions(+), 43 deletions(-) create mode 100644 nsw/Source/SQL/Update_2.4_To_2.4.14.sql create mode 100644 nsw/Source/bsmd.database/XtraSendLogic.cs create mode 100644 nsw/Source/misc/NSW_Software_Dokumentation.docx diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 12b944a11b4ee9297115921a3dd36e53712cc938..28bf9e5065b8a91ca3f22cde7ebe4516aff3ade7 100644 GIT binary patch delta 15907 zcmaL81#leOt}Z-gW{#PeA%>V45;J4W%uH=&W+!H5W@ct~9J3QM#mvvy@7CS#ocimZ zs-EguQcJ7#X=!??rMd*L&J-{n1z8A4Ob|2(76by3f|24m&X?w_OB%a}af^!lcYnvUNe(ACf|`oKiZuMg84IfUgTWgb{P;IWDW>P2{zlC#1ANgY!wn5RS$+w3s?@mJJ+R=d>1`Q?Vl+-32MSk4@~NgAKV_9Udfk!_1J4yIxnHsar7=360)M@mngCVhLm-4C(CPa;wzmE$`e=moc88-P5*?F|yveOH zB=yn31%{5wF-5|mVtWA1b@68LHeFK2gT}Qpmae>|Bv*EHlU!o{Qmhtrno0cw97Z8Q z2sVGZKcF@AS#!hiz6xwnMESHbq^9{}&Qap@cVIcC=nzRTj7RQdE*)#c$cW-`sg8=>O=ZP1vkWkk*Fnk#GS!180345^Qzx zTs&8BuiIQu46G@UKc5(Q0Do@Tc_PpBs>#MC2Rm!RsiXLezM4 z*JOHz4{vN?q5>MUxTf;_h~SV1PbXiI@bPvi*<2(U$~4doL=LjJsZDB6RI}(oo2KqgZZ?>&(R$wrMg{GMhW{1+%BQYHF&sy zO*gRSERcn~kqry3Q)Zs%q`{tI453yKjIvdu^kgnR#6kpU!lMPrAPF^vB#YM?s+mhl z_VM}#Zy#&Px?k2cZvBA`HxL`TRn8avX0GN7WhVZqar=uWKB~iv#Qr#_aA54_?7$ln zCa`Jx`77D(EwoKzl)wWoGwR?FmEH5700#lB4O>f_EgNrFGLd_7YalXrAS?->%M@01 z4$eK_Vy^`XD4Mog7op3&TNx0>nwAwiBm!0tFFB7;NSSGJ#e^BP67RTE4n-zX$Ln-% z%%0G?EDq+Vi%>=%boqX@>qY4AI7Y*JhuYF~S|#IG2qH$X-r--@j$-*R+|S^B-wy5F zd=RqxcLaYP;+u5@;3uy+yg>+^%ZF>z5hz562=#yM`UmP|u58>=XS{*K&O+ zC2iEe@NsHxxavb-Y{X%z-5bPT=#bMEq7K5}WA{4#-}s$aD~<)6XinPVe?;xVIp9O} zl4n>=Fv5$6kWJa)axh$xi6AJ&Y8(%1*NICaT#wk($Pt=tI4Bgd-bZJV-$b`@7f?<71#kskM`dcnC|>FO#fz%q*l< zshWUlGA%qTa6>zkP!5XTB^B#X{}UByepEJxlHde3SC%r% zpo|eNj04zuQxHAky+iCL1u#PmI`>#SwtQM3*Y{es`guohgmqGq*CHLp8F-MuHAzLib$+A;EmAA@ga(7B#P#j;KZ z*kDvqKDrjb*RVEOI87ot<=T0HJ9dArAaCzt%OU+%}KX}CJtE0 z0eRd!KdDb==e-{ppS)fFToflt#(p7sH8>+$;ToXBfy4g49wI;CLTBRD$y(<7GIAx#)NkZwnMa=I;ip9Z+ZBRP#49BRc)dEPc*lKpI1gb zHV&W%@pHxsi{U4JaXjF_%Cv*bBJihjeW-Nz#}qfjm*6;_qki}8VCl9nH}lN-7VI}^>vgpPY; zq@*lYG@IlTth+9s)VMFhPqu@wkbE)9SBinXZLuJ69Z9+iXE9vKOtAR5kNZu2FW4Er z5D?!z*1LwO!Xq&wV!YYx45uPT2n8&Mxko#A=Q)@R1>?wJ6{Buj|McFqd?$V6y9XY`8%_rH$=EzsBv~M8G$Dcb&6^rjn$u34!k2^DV*Y&2h(v9Zjz<3q9Lcyz45b zqjPyaQh0nS7!tNJ%FVLeS|ldrXnhb$rBBy>WLDWuD6{ z)XCE$V<^U2g2pxxzjLKAjBuSY2KNCQ&Sfs^{TjdHG)^!53H9i2%h*|qoTB9fKk1r( zM&Ld+v{K)&tu0%$EM5IssTyq=f|*%4*@P&-V21>4wiMI`Bisn7rWZO6UdiVynilWh z)PA~KY&$EfUlM5?1w(Nczu~qjsk&QWQ6bkqvP-`1mbH`LXNkmk%c#Z|nHT|#FQzbj zyxCZDxAOML#l%u}B#qgAx9R--<-w44kRp5^syVX*YRX2IMbD4H|2H z2KQ?XAilOL%6?Kf)!EfxG$(q%5X6)Gr-h@65ZLy`_V=mdf>{eVwggHy1*LMjD;4NX-+-Bj&VfQPK2n8#i> z`xGpKbOGu69*2Q_VsK@xFysaGXWIR`Kp;^ z86IKBZv(-7MJv4WhTX+SAU*a6VpaNo`56qR%Kc zkrYNj;jjSa7uOl+L~Ij;l#aH}3pRM$kt-RuCMM&VDPah;fXwuAW#uh?uTW`XWs z>31^0#vNfVHOqJWS`?p521#$$dWxwnqzm*&CrNF0v>6^|Z; zkrhEY)u})sD#>pc!0Ij~V^7^a88y6bgeZxuuyh&DFHM$%yJ6uk8r%3Gt?ogA=XVUb z_*of_S~Q|$<`S6q%&`?oI8C2Cf|#gxeyRA%xa)xr#+b-;S}ARgCq7)|ZUvmM&Aed8 zNI7mV2@1^YGob1G={y3{H6VB?@xYz{H_&2If`(@~$;x?J0p8H3nzu(#QVM20!*r;h<@0cj$tP(_e_= zaCuT2*EiPO0CoR{!H3{k+zSQub6l;Gnmr1vY3Auhxe$m3bL1AS7}8IZzd*+^GB*P= z{q5ctI+HN!<2cB6jIdGIge^#l#;vH&C&JO-oeXel-rRQ4P>^7?`ltj??3)nX6vihm zc(*vc^v0yMamoHYZb)#|q{sMiy`08IBsm3!csvYiKrF*-fgzlbE~SG#Big(`kYP*a zZKR4$L87MDmJHzmEFz(cX>M&a^frrQ0Un=m3zh4F9heec{-KQ`>UYx(7GPI)XA*g) zRlGKTs)J1P1cijAQ8}h6xwl8u`3K?b68G$ob{S)jHGM^)&EWD3Z+j&ceosGVghAW} z!`$o$K&uo9XJ=VEbc?7Zq;F?kS-5k&6cD}hl@Zppk^82hE^SS#qEw2Ws(mrLuwWC_xw=GFtZxf8M+@I{N^W!NdoF=q zoGCtaS<8mIHudvb!)Sd&vE*Ed6hB_k8d?7aD6q|D7A^oF4Avm zA*h>+F72u{{mQ{7=}<=7N^4+eRXPQ z;Jf}5+WK}X56bt;Z`}Ci(fNefu3jDAFy;%G0?Qqwrsrd0y?-UE1F9nILH-!MI=f*(o>WM)=-lid8j&TKrJf%xA(lv-o$$_CK5q$VZ69(wG#c7LUi0Yo9-o;3{N` z#rqE2QGRrj-w5A~s~c1p)l`%L>oqVERUakZJg>Gb94QdZCxkB9gRARU>jIj241eqs z`9WfcR2j=-F3XtA2QIhv!1}W@QdNid0}G`D7zd`$qkJy9DIdqI@b|cVQz|5BQw7geQ>uWP*R>QSxaXTFb}&8Ywor*OmYBG++@iZ)ws3X0_%!B2yJk zwap2Kg)j9Ha@WDaYFu!jYlW6fJe8d0MLG-e8XJ@Uc&?bh9!x5K9^^X-awO|WXe{>tR;w!w?1>(p+)`)vA3(B~OA zwG;3b%<>fgR?nH)ZMILn`Q98`J2rLnvx&P;^xgK$cb{HAzwJG^d#>wV3(99#PoEdR zoQ?jxest7jz%D;tUf;H{W&D{@w8AYQNKABhdU<(#{Ca8_opHDBmv6{Oyjp><53H%@xYm*P9D> z-mKW^RC=4UAG~xtAD1T^o31bW=Y`o1zWKQR5Zs&s6h5MqG3_rC3#MT|E`NP{`T6v8 zQulN{|7!B)zAAVa^KF`G_^$gTo7wFtHTCSQE`7R9;KBLR>(BM4d%yg$K%Gq0H=E}FM=QWF43%89;Lj6}C_crg@tOK;G24KU- zr}g>e{$={9f1er0$E9?w%&P8tvHsf2gW_GX>wcMr>oZX-^N*6(x09P0B;NI_i+Nc6*1tl_>swlF@f(GgjIQcn zonCoXCs~W6_Q$&eL5#bFUVi$v;x8NdWoJcJN5zTAY})7N3kDpTj}wy!1l zHZ&WiZMD27D1`T}RUU_2+{axnw+@%vkJ@ILsQ8fw5-{Xrs19amZMuXaKycU+83$h| zjmUt{W|vlo;LikvHp-V5moSg8uS>{Im1{$s3TRvkA6sPj_vVlm*NsDqu5trX$fUC2 zSz5`ZzG}58O@6R$fTTeJeY+IsXxCuyA%}!)_u%$`bT(keA*jZ>IEqC!zvc64-rxQH zGpc&&wWGj8< z&x3$ygnkSlp|yl`Sb(pYMJEv$x;P^>^kkE#Uh?-(>su8~!(DqNhV0FE4*Wj58s2=lp6-6F zVzmA7c-Q@A|MC-V@B{VW(nij&(Vw$bWvFU- zlFY*t?*218H9C349pKv#ys^$J*WHuew={fI8hX{cZXVqik2PzXV!7Nk#54Fhyhl^%nm zDQMJo^GO7<;(ugD4J>gNc_o zcvw7;u5DaeEu8;G=AW6*8gU0qd(Cj{{nIb06F6+40;Fd;LTZFWm!P%VK>-FP%eIM!1h z!F$dtDO`d<#a|9nlvE;~5(Aq5=nXR6K-4zZl4ZbXAZ)_LD-dtZBAx=t&46oYPwHC_ z?yWwf0b)~>R7@6|EEVDhZQ^+d=t2n;ql`QFR85J3&bRJc%keOcB`EN5aGzIQg6&fUWMveE zIVE%{qD&J%g}Kc3(Wu&-&8CTPCsMnGw6AolvfwN&tA>d}0#t#8%(fnzb}a++b@RlW zeqaciiebrEPQhJHH#~WAN@c+li7Wt&OMRp2%+Bey9*G9zQnVxrhJlnvSIMrltyEl7 zcAC}O8o@FaP0Q7Y8(#yjlCe3xz@hlS4R)Ge{6^kuMiCQX#%t<4v|p@dgwu2vKH4_x-EZ_s#iBJed$R`@$7#wa4kn32ae`A0f1raZYGf3oYn4&W!91LNcYyQ&INHF3 zjeHTz9g<{Ji}QNSya?;PI9;^}78%a)N$8h$QE#IL({B(i)H)sO-e6Bn;+lEaRQha zSNN#a#P%ByWXHb~Oh}i0qc%2`otU8e^lC7W_U1E4cqf?GBCB(g3Sc<054Bt>e|4P> zV|{!2#&-sYIjN^DGgF&08FjqjZn7FqymcMLJQ0tMtEH_n!zJnXD7bj>W#4wv|5c#x zHvAHMa0Xw$`wMd2B+3q`^-M^<{;|2d?r=`tM&Fqom(Hl@Mqld*&6mHpb(CJ%F&_43 zClddC*-N7QHcbZHMH#q-@JA-qG{>xFaysZQk#TLZiaN|hZBG~+`& z?>co&rO~#g#AB(h6I;&defscm7xz7g1g)ZYUp|rpqzR<^bo7&)=GS_1Yj6qU?=gg? zHL7LW@L)lkgy zWY3zaiN2g{o&5o7uB^>M{S|BOL(qPft%J4}uC5*2R#Su8=lcYU@c0>spSg@%+C^nc zfi{4FZ21(g0K54KvrZ{)(zoNN%a>pTn$ z++j~9SreO7I77w6J~J34x50N;Im0e>5z7{|{u~O7)~g z+Da;v;v5xwv$u_w#tclz7>Uy+rzjSRe~gf^3YzB^rj;!^lG1Cz-V~CHqvhJ84d)~q zLAZpV?GmgLF}9gqidR7sT>Qa8vnrWJS2Zw(S`aZ~e)o!(7b+A%&EyeJ;26EF0Pugk zOJS`lww&n06$T5w4;T}KDy^(XenI@8cF8#;g(!1_W%P-1Vgk3<3X&*${b?BXi>AW> zZ{2MB5O;vE^p`Z7ym3ZtJapYROkrC37!66K8O|XzL>Z+%ZV{yqQo^Ts``M(hCY?p~ zG1k!4teyr638)e%oI{@0CN;4?Q-J!MBrL%S@=MXcONhXPBo^Nup>7lU%llqIQPi;r z;-&ce++HMgXiB)R&wdf>b;)2NOrqF9j!8|r+7HLYDvfQkC~o?{wzbLboFipR?Fm=W zdw?eOP&+ux`? zxp{Q-^APSQOKPw_y=7RInsq8?wNp(;W}H=f0jc zh|z9aC??c_w=f&kz=&t{{_6AY0X9jj1OtrPy{8E6zn{$9e=HdbwF9&TnUpS{#f~lr z?~wu%8WfKdShSni3J`%;+N>7N52)w*@ZoRz;Vu~Q65e<3Qj8&TIPyL;TASo-KJ}T0 z^rhIs9%v_ZV$Q)lWMCVAWW~eE#+BzbH4(LK%6Dyy!p%9)+V9 zX*Fo``4>HeW@k~MwLHT>e)@eoGM?@Ne$st2(JU_8NtS?lCU2AkV1wG0nBecMpZKio za>7rLIMPPmJ#Dk)BZ&ZtAw9&)X-wJ6Nz?!6tJo?JKOwm8I%> zTFV438cqxST;I?abVeB3P$SpH)&mBE60KgKVtv|wptxKv@`&#I%naU8*thbz-R8{6 z#_B5-X9&T7g1}8aayJ{B$04q)&m?`^lM~X1c6=@vAuGn#%*_byKTEhrx7szZctxEG zA1HHim6{$b(mWToy}oL+2O)+yTgEp|e%%K0pu}duja>E``OP9Fg-E;Lo#JxCmcRm7 zXJWS|l&*VP4sb_)U@1mQeJaK$JT72m;DQR=Xjn{9h~pZBB2~v;e&yI5{btd`Ms)keJb3NY(5$Y zfYz?Aq^XfhbNwztz~ouL9JEFq+4g3_fHHMaHHB!Ki`n=(lXr$C7y&rtVr#P5ZX5FM z>IDTB!mvwukP0X|y6!n6tJ2n^qc2k*!K}A2JIH*Y3kh0`gMW@GTFmy*+Lq7+N6x9h zp#Njvm=}jYG*)6!7;lhYP-4%#x{3#ECy=AJ`JaIQ+)Q22t=>;nvh_`N^qjTn_^7!R z3aQO?!bN=(Z12e#zdCpmY5v7k&A=5)+^O+EzRDj-=4I7X%_mR8pP;el=cX1RhHTTX z0d#H2W~M@Kh;8(@7G_LmMh(+IE0&`A1Q9Iy+WciMR%YtG;Hi||SY`-|*Io;tri6A( z5cz(5B5raZXby8BUGFoeS^@PC(5F2VVdL@Y$OIEQ?Ec}50rJ@-Vx)!U?UPG5)}PA$GoV!PC#O7d(pv+9>w~TP~~R zSaS}q1l5Y97>$#K?x?<3_rU}JX2g|ibC<*Ny3UzB7X{kz71d!2_+WoPen^9AejPHB zk9_A+@ngX&ENMz7BddQHNy-Ll3ERO(&`3}~E0)~g(6OLv^+gYMk`#bp2kvM{i!c&2 zkspZW$JaMC)dN3*9e{@_jRl8u`qrTmPtOT8TYEPAv`%Nhp=nG^-vWg!GI3`*gAZPb_Cl8__rqpS8yCUn+ zxM9HB7Ni6>*0z0J&I6`)6rdQr&dR;htBBsDAf?_dTrm%ZRo+bre}3?qjSj{(a+P`| zNC@^ge0?uTCe$bXurKac`>4y?Glb~(_3$AUEytZ*CYZD1V$kw#*We|w7%D3Aa+)q@ zk&e#Fg#D{BgS?pqFB+4M>M>aY?7S`$TGiJ)yVWZBAX%vDLtudID^uMswy#d=3NuEU zRe>rif;>@>S7So7bejuMBwaH#G>>NnS^%M(n22?`(dDU;D(1aXyR9pFqeK)CRi$_g%`Zqlo78O#5np<#|=wP-swrb0ZUIc)M9cn$r){abh8-7<4&mb z=xca~;h$7<0g=x$7-VI}8s8u)-?9Qn=vSs-LqD11IDXD2F!%W4L=v}4q8Fw3%)P^+ z0s67CYv|}#Wir5WL^T7@5M`ZmDwdpjmZdP)@V4XJK4~fb z#&txc{!1Xy&I(+)G~^>E_~WQX7YlVId_d4YM<5lJE*cI~*jD#SQOTuRT~sZrLSeIDrb8a2y3tje|t9l$3iJaAkKOgWji;vp{(U z6dcxy#W@dPCbi7DQFP-iOH>|Q8{I1bEfvH=jrR*OXN|ME1pTQkhm9uf0wL9X)v4cu zpRst{mCc}HBXC@t77?+2%|lVuan+Rk!Enxz+QLma5rS?F59pjmvxef$ zSslQuY(#h;7;KfloyQ=eM~9w_tc1G<@PrxRhD6zqU|^Slpa{f9#%r7f{c4hSmNRLa z*!xK3HA>)BMub%i)!xk^^cAhqJTvp%toYwl;NZE#kUobL^5oQv;83khX{^}7fBKv% zSq1~eAl5Qc!-0^5t+=N8mi5^QzNg;vzIlHy9APmU9GlGG9c`$HNbl3Y(3GCI)AJ+?ZG%_c}SDeq2!ndaWI(NrT5wTanxYmh++K&H5FQE`(4(;w|A?@ zL8oYVY2QHzGr(-FZv(Do3VD_yf^mJ&Xp*!G-;QJp$&sNSYAIrTaM_B`H3zet=QVte zV7g>qJW81!C;XYuu76(fGo6UfX-nMKxCM8gLjjG05F7J&Xx*2EI0mAdze?eg1?Db; zH%qJb>^SEoLO)834jIrNa5Z=uO*@9{{8Y_K!F9hM_rgj+Uk6H%lP@wL18$dOjjQ;Z z!_cO$FoVk2f^C@k;{Q^NNw-_&_d=W^dF43~3D$IiNC+)goa(kEB5B^rWR=oEV@(ei zcIV^t@`WWdDl121*9Qun?D(hyd`&x@IO7=np%N20di$z*N-D&3*LskIgmkli8t$*s z(1N4yY4f{)eG?~@9olQ%pbvy}+k6&LSGp$$Gs-*cH*I(2JDYCVcffk40P)6Ded+{j)-otGn^b^=BJhb%aLe^Rc6z*ZE6Fo-X9)i*et(hGqQ~=BkF~>EYer zw_KE*_TtxuZf~FL&hw4C;%wx%_06dpO#Uq7r{-~rGe_>O^{LI+;&BVN7IQmWWclW+ z`B?eik3mE%c`Uc!uyN7T67Qy>Af7y-J03S*~8kz>2CseLSsE9 zp9{0AdcjR7YM~t67o4IXXwj5Sirz*&*_7@k?;~ z8QTPfg&PxF6YJ)~6!S3hW`$E3|5hDY#%C8VgToJ|aPn~4UvBiz4UK>bt7IVt@g(+7 ziyvF&HpMmp95qAH%TxX#5eQhd&o^GA5#bhUqx@5foLf+)7ZkfDF_3cOg_>BD5*C#D zW2J{0DR#fZSaeC{{uH1{#f-(4_er_ykqBc4q1TqyIy1^sou@>lnhX0M{cu&xtF-BM z)`Gj4Qx|beNb1;0#{~f;qxDe~_f}Q@cxg1Nq+ln1slZKk7bh$710KzC7ItTIPILH0O#_Omk=wz4dG5 z7}+D=&DLNbrgd;s$5hL1gc18Xn1Tye+_3=3jb5-wkN8XDv_%3)Vvr$gHld+*&QBq1 zRe0)JO~tqn`z$4`(2dY~ESTUTh8)yNGPf1NY5$W1H`@B);|CZ~=?9%3x5g}x&_*b=UesNFHuxxV)2hIdua<+(n5u09Qo8ngLBVx&+=d!+b zT_?^TV|}*`ZJsz++Nqg{i1yR|(k}eBDCN4bT%gq2^+klJrG&KT(e_!72*O%_%?j9k<+JEn(hmP6;1G>+VhQ8-SrzRg_&+b|a-q=i zn&3g8JAy(W^QzY$fi_aurK{*V~V+2K(X9b1c|5@c7GeX%+oi zUTgBOqu+BT8iSMPz(L%v_3ffzi%CtESSRcZpOa3(A~PlA8bUB@-LG{h!9MHaOW*4< zbBS*yj-kw+v`=@!t3e44`%$sk-a+`1m>IfS5C>dZ9SepcWHo7Wq}OANULv|(GUy!i zxo^Cfl3W{+npF_@VI(RrB&9$xn({4GVu~|$;@-5%7=r2R^xeVVoz-N4oaaSoo#Kz} zTOl9Uud4bf28T6#E$ad^x;a+@A!on1S75iMQ96)*URkpy_~QO;M}cW~QT_77Kb}mh zuNoMy>VuUf_DfxZ6JBtej*|@EQ=UA7+1(xtJAEZx60D!)oH#jUk9h)blEObDToC-4 zf2c#DMgLj-Xz8`(ESnr^sI&How{0!1+=K};1sL-efg{i|UMJz3RNNCaqrMbVXN-rE zWJLAP>uHEt_LIKc#5-L42#@Q}VQ{vMp9+}lXCTL};&DrKb|qOe|2pCmcHYmDmpS)r zLDjKBxd_+TVj@o7?~3iGr+Ua2`%oA0%9cxXcN-W!mPayK{Pl-}U6b$W=Q{{BNEUJP z3XCP$?!+r5{F6BmuFn`0{9a6K)^UST;#-MCj%2Aw+=tm2%emzjCh0aegfSJcg|xs9 zr@xIDNE$h@klEq3-~zqqQm&rOR;t>!Wn@t~Ro8etDGanq4yTD<>`8FpaQC}u8OBf{ zY6Pshs!DIJ@wi^Be(BKOe$#OIQ?&icu@Kp9fstP^G6J|8t8nd~;i(?IljtXcbFfv% zkhXlPnvTb^UQBm3N^c9l^otd-m{LFp&K8c@U;xP2&{?L!tZ0A58(&9((J%V6PN;b4 zGA-y|{wr_$uvp5JCCvbV3B(SC{&kPVDDr3rrK)sXN5&rW{tj_Nj7(dhm+P5PG#9-Qti4&G^Bom4(98dwmSt`DOr&2Bc61ddTGq#nti)-cLU@!lS% zQiUL@aqG*FPb(6yy0>F`sBx1zn?6>-;F@}5?Pkmq5K9o!_{&Gs2lQ&j5yxiTWI}r# zm>D>H+3||#w$1Lmla!l;hYEn`rck22TD{xD#FEq3R6~plD7Y1OTuV@U@ct7fs`;mu ztnVy83v`Q_N~HYS9gtueHWDL zHQU~6P1{$IaT5?trL5m;HAbu|?)}cxejLr4v`)CdK0`6$fDWMxjRp_M;ay2rb^dV3 zmO^4hopP3mQx8W)5!&_Qa-S)IB&`X0E|!b>b12e%hyKlR((gA!DjGhej%Ww?OO59J zEZt~E+?P^WCR`3hk>p)>rUHF6Mz+{^PK~CS6;AZ*B!oK` zY`tq4${7Bce*A0$KLj#BVdR^nQqdgwx3&l&KPTx&m~{S3d6C2TD*wVKi!bQ&FLC3T zkJPuwYv=F@2N;;>2UX&#ubHQlWkI)XoFn|rbh~b(Kd8E`7wj5aM-=j2U7XhJ>Ni>> z-?o7K-b1cOgI`REsf7|Q%WXJf6}S{;@D}2pO>KVdHllS%59mrjF5UK-(i3CuP}m61 z&UiW7Duw7MwpyV5%yJ=viafX{3yw`-8@qtKbnWDd02anbfKZygd84&h2!lPyf7zPCr4JS zuk%caJd;Eic&%Ij=X45KyOxhK67y*|C8BnpcBIBBXn94I2%_hXsSUiNQ!I+qDvM58n& z_Wu1pN-Q9et@gS;TI$)TF)85Ago^IZh>uUQ2N?MK9%H^6H^;ns;=_;9 zl4bRm<kPWj;EEr!M?qyy&YXLQVFOgr1!&%DR(w)Kkag3Dlf`N*%4`p zKqd_R3`Tsvk4a4#)_&m6tJpN@WR94hQH6fwa2U?<7*R3C@91Xd#M50^Sj4(fBA7Kp~QWaIo>F$u*|lavWtH;A<#V zD)>XLQI%u`{jM&>`Z{3(_EN^82N692GELB%%~_#yymK6Hf0iPHX-UUda{ZIPedLA( zl9O?+?P?Q;L;>RIwV;A&}*VFHa|9#mphdsU_@r@?KY)Ry%7BUuP)jNp1^i!MWu$s(5W0d&%~MvDg8e|m z5e;eU-W%Og5Pm3p!L?FvD8@J|;dx$-0by9O4t*D?XM1kmO3-Is()pDpTnUL!*~ zri)LiyjS`xF^(z{mh-_($d`w7ORLd#GC)$L9LzT%rAk>Ks&5t}z~r7brge)>SR@^N z2DB}sKWD;>tH^Q7@E~)1CLcMT9x#l7_|~ZjQ8PKfyQgzr>FfVH|48!mBj=Z7h!bUp z^DPp0oQ`!Fv;&;$c~7%HKj4@jix>`*U%H=*bOm4EkJk1HSZl^xPR6%Q1X<>n$#n&Y zsV^cHLi!JGR$SVl=jV3%ym7I@j99YY0kC7`Wy^p@VCxqwm6*g1s=%zc#JwV^hk`sR z(uO>7!(NiiDW)v?i`X^ICA*ZxnrI(f(LV0-w14g`wqp(Y5!HnIKnMj)Pu$R9Pz&j; zW0cmXDlT0dwQuVOtj*DJ-!XE&6gBsP@ihkiLb`SH5zDxt1yOe++-{~riZ@#VyhQbT zT*Dyh(2C23WS=a&E!7S`ZG6>(NkgUqxsb(b-ZLx-pu5ahy!{JFz@b^A1Y+A>I-0r&*|BmDLH6dJ#c(Fo4R5S9HyPEQB~1UY*Yv2{ zbSH)OnJVFnpNnd~lUM?#c#b$Zedpw?c54Ig0b*8LWUAybMx za-|3~i!PgWh=Lx4K=4ySD!5)i4@Ipt62;SGMt!AF}EQxWDB<8HMT*7FrNt*B2 zDCijysL0lTQr(qtYex5rkb|dUu-{xE>z^khsQNus-5>oCYa~>3hWWbSU>6xRP7$^z zq=ovI&+WZRmBQ>g3)7c#BbhPh-rq@zkE_w2yf&ded^qC1*C$IK4jQ_yqDWewz@^04 zfn(Vdc!L~d{-@;2wpNu!>^)`h6O?Gn&-BS42a%J5qT>(6(irg2 ztth;*I!E=a8=`rqmga3KfX6#(B_+4vArrzO<3Q$t8!{X`PYk-_yI^-ZL46-gO|lED zmaSS;YPp>+-9RxHYXk16;n+%Fu?RufkL09Lf*St@gVlPa&=ruwhdZ`~M$UWG3E99b zVDEF*rpzbwNBHt`S2oQ2-Lm{Q&dPwphdCz?OFWHoHq@3mt`aB8>F_o?Z8Id)Y(1cn zDg@JVOn?xHmvTSP@QCqSs`=r9*MxE-=a&7X-~wk$kW3cB5n3+sZ)j^dEtiI)8HF&- zIzf+&k7R4YeMI%BgklI;xXpI>iKMPJKwioDE;3_b=F>|gY<|K|PC8NUHv^(I6i*%w zd;8TD{3s3v9mkXuf+D*cXtGZK&I}_IMDpvft4!9}=?AJgHkEA~FxLZun1U;1qo;a5*wCAHlO!RP;gdS8*tsYK&uClw-jvz~5d8v-rP)?`zD7Ct z=5bu-v$380tgx2Z$o$AwRM|bl;zb$CLWdPy;V6&*$A;M=75(~FiqKPCljKl}FqwJY1(xV1 zh7I*k$8X|yF(I6PyGP&c^}nC)#6MzWI2iAy)O=6tefZz;zbAW%^x}*J|F#Q)Kq&t~ z{|J}pEKW-BpG|51F9!<3dyASN*l6OVxB~bDdZIiUexjbl2ZDdw0YD(!|MvpW6h8ozjdVl%|!a)or#X%zY~`KYMW(FERiH8_%}rX0%873 zeLsWYNHmqCBKRljzuQOgz4I3BKN!vh633;;3H}XiAQ1I`FqjJ`a!c_L{2QtMo8eM8 z@t%)15m5@2?w`Q(uEzL(Jo;Zjo+9s~c18-0cJ@xpU+wJ^{lziG{(AxZ%dRc{Pg?dr ZmV<&U)O*+9-}$3~Qr>Znm-zeZ{{WM0{V@Ol delta 15465 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 diff --git a/nsw/HIS-NORD/Transmitter-Tool/client.log b/nsw/HIS-NORD/Transmitter-Tool/client.log index 23568ae1..87eb42ec 100644 --- a/nsw/HIS-NORD/Transmitter-Tool/client.log +++ b/nsw/HIS-NORD/Transmitter-Tool/client.log @@ -196,3 +196,18 @@ ----------------------------- 18.11.2015 07:43:31 20151118074325-ad8761c2-bfbe-4afc-a9f5-004ab739ebd2.xml(28,61 kB) - Transfer successful 18.11.2015 07:43:31 No more Answers + ----------------------------- +10.12.2015 20:18:57 Client started + ----------------------------- +10.12.2015 20:18:57 No files to send +10.12.2015 20:18:58 Getting Answers +10.12.2015 20:18:58 Filename: DEEME-2015-DYCIOJ_VISIT.xml +10.12.2015 20:18:58 Filesize: 133(133 B) +10.12.2015 20:18:58 PACKETSIZE: 500 +10.12.2015 20:18:58 Tiles: 1 +10.12.2015 20:18:58 Getting Answers +10.12.2015 20:18:59 Filename: DEEME-2015-IDUQJU_VISIT.xml +10.12.2015 20:18:59 Filesize: 100(100 B) +10.12.2015 20:18:59 PACKETSIZE: 500 +10.12.2015 20:18:59 Tiles: 1 +10.12.2015 20:18:59 No more Answers diff --git a/nsw/Source/SQL/Update_2.4_To_2.4.14.sql b/nsw/Source/SQL/Update_2.4_To_2.4.14.sql new file mode 100644 index 00000000..919faa5e --- /dev/null +++ b/nsw/Source/SQL/Update_2.4_To_2.4.14.sql @@ -0,0 +1,13 @@ +ALTER TABLE [dbo].[Error] + ADD [Created] DATETIME DEFAULT (getdate()) NULL, + [Deleted] INT DEFAULT 0 NULL; + + +GO + +ALTER TABLE [dbo].[Violation] + ADD [Created] DATETIME DEFAULT (getdate()) NULL, + [Deleted] INT DEFAULT 0 NULL; + + +GO \ No newline at end of file diff --git a/nsw/Source/SendNSWMessageService/NSWSendService.cs b/nsw/Source/SendNSWMessageService/NSWSendService.cs index 53217854..f79d5004 100644 --- a/nsw/Source/SendNSWMessageService/NSWSendService.cs +++ b/nsw/Source/SendNSWMessageService/NSWSendService.cs @@ -148,7 +148,7 @@ namespace SendNSWMessageService if ((message.MessageNotificationClass == Message.NotificationClass.VISIT) || (message.MessageNotificationClass == Message.NotificationClass.TRANSIT)) continue; - + /* // Wenn kein Gefahrgut gemeldet ist soll die Meldeklasse gar nicht gesendet werden if((message.MessageNotificationClass == Message.NotificationClass.HAZA) || (message.MessageNotificationClass == Message.NotificationClass.HAZD)) @@ -187,7 +187,7 @@ namespace SendNSWMessageService if ((DateTime.UtcNow - ata.ATAPortOfCall.Value).TotalDays > 7) continue; } } - + */ if ((message.InternalStatus != Message.BSMDStatus.CONFIRMED) && (message.InternalStatus != Message.BSMDStatus.SENT)) diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs index b61dbeb1..2b35c831 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs @@ -48,6 +48,8 @@ namespace bsmd.ExcelReadService return cellValue; } + + public void Dispose() { if (this.dataReader != null) diff --git a/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs b/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs index 335bb032..9d2eb229 100644 --- a/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs +++ b/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs @@ -158,7 +158,11 @@ namespace bsmd.ReportGenerator paragraph = section.AddParagraph("Rendering date: "); paragraph.AddDateField(); - paragraph.Format.SpaceAfter = Unit.FromCentimeter(2); + + paragraph = section.AddParagraph("Note: Timezone for all values is assumed as UTC!"); + paragraph.Format.Font.Size = 12; + paragraph.Format.Font.Bold = true; + paragraph.Format.SpaceAfter = Unit.FromCentimeter(1.5); Table table = document.LastSection.AddTable(); table.Format.Font.Size = 14; diff --git a/nsw/Source/bsmd.dakosy.ResponseService/App.config b/nsw/Source/bsmd.dakosy.ResponseService/App.config index 5dd525f4..d294fa90 100644 --- a/nsw/Source/bsmd.dakosy.ResponseService/App.config +++ b/nsw/Source/bsmd.dakosy.ResponseService/App.config @@ -11,7 +11,7 @@ - Data Source=192.168.2.5\SQLEXPRESS;Initial Catalog=nsw;Integrated Security=False;User ID=dfuser;Password=dfpasswd;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False + Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=FalseData Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False 300 diff --git a/nsw/Source/bsmd.dakosy.ResponseService/Properties/Settings.Designer.cs b/nsw/Source/bsmd.dakosy.ResponseService/Properties/Settings.Designer.cs index ba2e7d39..118c278a 100644 --- a/nsw/Source/bsmd.dakosy.ResponseService/Properties/Settings.Designer.cs +++ b/nsw/Source/bsmd.dakosy.ResponseService/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. @@ -25,9 +25,7 @@ namespace bsmd.dakosy.ResponseService.Properties { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Data Source=192.168.2.5\\SQLEXPRESS;Initial Catalog=nsw;Integrated Security=False;" + - "User ID=dfuser;Password=dfpasswd;Connect Timeout=15;Encrypt=False;TrustServerCer" + - "tificate=False")] + [global::System.Configuration.DefaultSettingValueAttribute(@"Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=FalseData Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False")] public string ConnectionString { get { return ((string)(this["ConnectionString"])); diff --git a/nsw/Source/bsmd.dakosy.ResponseService/Properties/Settings.settings b/nsw/Source/bsmd.dakosy.ResponseService/Properties/Settings.settings index f5efa586..cb78e5e5 100644 --- a/nsw/Source/bsmd.dakosy.ResponseService/Properties/Settings.settings +++ b/nsw/Source/bsmd.dakosy.ResponseService/Properties/Settings.settings @@ -3,7 +3,7 @@ - Data Source=192.168.2.5\SQLEXPRESS;Initial Catalog=nsw;Integrated Security=False;User ID=dfuser;Password=dfpasswd;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False + Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=FalseData Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False 300 diff --git a/nsw/Source/bsmd.dakosy/Properties/Settings.Designer.cs b/nsw/Source/bsmd.dakosy/Properties/Settings.Designer.cs index 14896334..e1db6ca5 100644 --- a/nsw/Source/bsmd.dakosy/Properties/Settings.Designer.cs +++ b/nsw/Source/bsmd.dakosy/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. @@ -85,7 +85,7 @@ namespace bsmd.dakosy.Properties { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("E:\\Tools\\WinScp\\WinSCP.exe")] + [global::System.Configuration.DefaultSettingValueAttribute("E:\\Tools\\WinScp\\WinSCP.com")] public string WINSCPFullPath { get { return ((string)(this["WINSCPFullPath"])); @@ -97,7 +97,7 @@ namespace bsmd.dakosy.Properties { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("out/prod")] + [global::System.Configuration.DefaultSettingValueAttribute("in/prod/ed02")] public string RemoteProdIncomingDir { get { return ((string)(this["RemoteProdIncomingDir"])); @@ -109,7 +109,7 @@ namespace bsmd.dakosy.Properties { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("out/test")] + [global::System.Configuration.DefaultSettingValueAttribute("in/test/ed02")] public string RemoteTestIncomingDir { get { return ((string)(this["RemoteTestIncomingDir"])); @@ -121,7 +121,7 @@ namespace bsmd.dakosy.Properties { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("in/prod/ed02")] + [global::System.Configuration.DefaultSettingValueAttribute("out/prod")] public string RemoteProdOutgoingDir { get { return ((string)(this["RemoteProdOutgoingDir"])); @@ -133,7 +133,7 @@ namespace bsmd.dakosy.Properties { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("in/test/ed02")] + [global::System.Configuration.DefaultSettingValueAttribute("out/test")] public string RemoteTestOutgoingDir { get { return ((string)(this["RemoteTestOutgoingDir"])); diff --git a/nsw/Source/bsmd.dakosy/Properties/Settings.settings b/nsw/Source/bsmd.dakosy/Properties/Settings.settings index ba75320f..b36bdf41 100644 --- a/nsw/Source/bsmd.dakosy/Properties/Settings.settings +++ b/nsw/Source/bsmd.dakosy/Properties/Settings.settings @@ -18,19 +18,19 @@ True - E:\Tools\WinScp\WinSCP.exe + E:\Tools\WinScp\WinSCP.com - out/prod - - - out/test - - in/prod/ed02 - + in/test/ed02 + + out/prod + + + out/test + \ No newline at end of file diff --git a/nsw/Source/bsmd.dakosy/Request.cs b/nsw/Source/bsmd.dakosy/Request.cs index 41aa42e1..b35ab67d 100644 --- a/nsw/Source/bsmd.dakosy/Request.cs +++ b/nsw/Source/bsmd.dakosy/Request.cs @@ -21,16 +21,20 @@ namespace bsmd.dakosy { private static ILog _log = LogManager.GetLogger(typeof(Request)); - public static bool Send(DatabaseEntity dbEntity) + public static bool Send(Message aMessage) { bool retval = true; try { + /* Message aMessage = null; if (dbEntity.GetType().IsAssignableFrom(typeof(Message))) aMessage = (Message)dbEntity; else aMessage = dbEntity.MessageHeader; + */ + + if (!XtraSendLogic.ShouldSendMessage(aMessage)) return false; // fill eDeclaration class eDeclarationMessage edm = new eDeclarationMessage(); @@ -700,11 +704,14 @@ namespace bsmd.dakosy vList.Visit[0].STAT.ISMCompany.IsmCompanyName = stat.ISMCompanyName; vList.Visit[0].STAT.ISMCompany.IsmCompanyId = stat.ISMCompanyId; vList.Visit[0].STAT.ISMCompany.IsmCompanyPostalCode = stat.ISMCompanyPostalCode; - int lastBlank = stat.ISMCompanyStreetAndNumber.LastIndexOf(' '); - if (lastBlank > 0) + if (stat.ISMCompanyStreetAndNumber != null) { - vList.Visit[0].STAT.ISMCompany.IsmCompanyStreetName = stat.ISMCompanyStreetAndNumber.Substring(0, lastBlank); - vList.Visit[0].STAT.ISMCompany.IsmCompanyStreetNumber = stat.ISMCompanyStreetAndNumber.Substring(lastBlank); + int lastBlank = stat.ISMCompanyStreetAndNumber.LastIndexOf(' '); + if (lastBlank > 0) + { + vList.Visit[0].STAT.ISMCompany.IsmCompanyStreetName = stat.ISMCompanyStreetAndNumber.Substring(0, lastBlank); + vList.Visit[0].STAT.ISMCompany.IsmCompanyStreetNumber = stat.ISMCompanyStreetAndNumber.Substring(lastBlank); + } } vList.Visit[0].STAT.ISMCompany.IsmCompanyCity = stat.ISMCompanyCity; vList.Visit[0].STAT.ISMCompany.IsmCompanyCountry = stat.ISMCompanyCountry; diff --git a/nsw/Source/bsmd.dakosy/app.config b/nsw/Source/bsmd.dakosy/app.config index 753d9e22..98b617e2 100644 --- a/nsw/Source/bsmd.dakosy/app.config +++ b/nsw/Source/bsmd.dakosy/app.config @@ -23,20 +23,20 @@ True - E:\Tools\WinScp\WinSCP.exe + E:\Tools\WinScp\WinSCP.com - out/prod - - - out/test - - in/prod/ed02 - + in/test/ed02 + + out/prod + + + out/test + \ No newline at end of file diff --git a/nsw/Source/bsmd.database/DBManager.cs b/nsw/Source/bsmd.database/DBManager.cs index 52cdd6e2..68bc409d 100644 --- a/nsw/Source/bsmd.database/DBManager.cs +++ b/nsw/Source/bsmd.database/DBManager.cs @@ -266,7 +266,7 @@ namespace bsmd.database public void DeleteMessageErrors(Message message) { SqlCommand cmd = new SqlCommand(); - cmd.CommandText = string.Format("DELETE FROM Error WHERE MessageHeaderId='{0}'", message.Id); + cmd.CommandText = string.Format("UPDATE Error SET Deleted = 1 WHERE MessageHeaderId='{0}'", message.Id); int queryResult = this.PerformNonQuery(cmd); this.LogNonQueryResult(cmd.CommandText, queryResult); } @@ -274,7 +274,7 @@ namespace bsmd.database public void DeleteMessageViolations(Message message) { SqlCommand cmd = new SqlCommand(); - cmd.CommandText = string.Format("DELETE FROM Violation WHERE MessageHeaderId='{0}'", message.Id); + cmd.CommandText = string.Format("UPDATE Violation SET Deleted = 1 WHERE MessageHeaderId='{0}'", message.Id); int queryResult = this.PerformNonQuery(cmd); this.LogNonQueryResult(cmd.CommandText, queryResult); } diff --git a/nsw/Source/bsmd.database/MessageError.cs b/nsw/Source/bsmd.database/MessageError.cs index 10611d76..7a068e13 100644 --- a/nsw/Source/bsmd.database/MessageError.cs +++ b/nsw/Source/bsmd.database/MessageError.cs @@ -30,6 +30,8 @@ namespace bsmd.database public Guid MessageHeaderId { get; set; } + public bool Deleted { get; set; } + #endregion #region IDatabaseEntity implementation @@ -41,6 +43,7 @@ namespace bsmd.database scmd.Parameters.AddWithValue("@MHID", this.MessageHeaderId); scmd.Parameters.AddWithValue("@VC", this.ErrorCode); scmd.Parameters.AddWithValue("@VT", this.ErrorText); + scmd.Parameters.AddWithValue("@DEL", this.Deleted ? 1 : 0); if (this.IsNew) { @@ -49,13 +52,13 @@ namespace bsmd.database else { scmd.Parameters.AddWithValue("@ID", this.Id); - scmd.CommandText = string.Format("UPDATE {0} SET MessageHeaderId = @MHID, ErrorCode = @VC, ErrorText = @VT WHERE Id = @ID", this.Tablename); + scmd.CommandText = string.Format("UPDATE {0} SET MessageHeaderId = @MHID, ErrorCode = @VC, ErrorText = @VT, Deleted = @DEL WHERE Id = @ID", this.Tablename); } } public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria) { - string query = string.Format("SELECT Id, ErrorCode, ErrorText FROM {0} ", this.Tablename); + string query = string.Format("SELECT Id, ErrorCode, ErrorText, Deleted FROM {0} ", this.Tablename); switch (filter) { @@ -80,6 +83,7 @@ namespace bsmd.database me.id = reader.GetGuid(0); if (!reader.IsDBNull(1)) me.ErrorCode = reader.GetInt32(1); if (!reader.IsDBNull(2)) me.ErrorText = reader.GetString(2); + if (!reader.IsDBNull(3)) me.Deleted = (reader.GetInt32(3) != 0); result.Add(me); } reader.Close(); diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index deafbff3..c3704cf5 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs @@ -2,6 +2,6 @@ [assembly: AssemblyCompany("Informatikbüro Daniel Schick")] [assembly: AssemblyProduct("BSMD NSW interface")] -[assembly: AssemblyInformationalVersion("2.4.13")] +[assembly: AssemblyInformationalVersion("2.4.14")] [assembly: AssemblyCopyright("Copyright © 2014-2015 Informatikbüro Daniel Schick. All rights reserved.")] [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 57267874..fe51d802 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("2.4.13.*")] +[assembly: AssemblyVersion("2.4.14.*")] diff --git a/nsw/Source/bsmd.database/XtraSendLogic.cs b/nsw/Source/bsmd.database/XtraSendLogic.cs new file mode 100644 index 00000000..4e15dc70 --- /dev/null +++ b/nsw/Source/bsmd.database/XtraSendLogic.cs @@ -0,0 +1,89 @@ +// +// Class: XtraSendLogic +// Current CLR: 4.0.30319.42000 +// System: Microsoft Visual Studio 10.0 +// Author: dani +// Created: 11/30/2015 7:48:46 AM +// +// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved. + +using System; +using System.Collections.Generic; + + +namespace bsmd.database +{ + public class XtraSendLogic + { + /// + /// Diese Methode entscheidet, ob die Nachrichtenklasse versendet werden soll oder nicht + /// Darin sind einige spezielle Festlegungen implementiert, die aus der Integrationsphase + /// kommen + /// + /// true falls Nachricht versendet werden soll + public static bool ShouldSendMessage(Message message) + { + + // Wenn das ein Transit ist, werden nicht erforderliche Meldeklassen übersprungen + if (message.MessageCore.IsTransit) + { + if ((message.MessageNotificationClass == Message.NotificationClass.BKRD) || + (message.MessageNotificationClass == Message.NotificationClass.PRE72H) || + (message.MessageNotificationClass == Message.NotificationClass.TIEFD) || + (message.MessageNotificationClass == Message.NotificationClass.NAME) || + (message.MessageNotificationClass == Message.NotificationClass.INFO) || + (message.MessageNotificationClass == Message.NotificationClass.ATA) || + (message.MessageNotificationClass == Message.NotificationClass.ATD) || + (message.MessageNotificationClass == Message.NotificationClass.LADG) || + (message.MessageNotificationClass == Message.NotificationClass.SERV) || + (message.MessageNotificationClass == Message.NotificationClass.WAS) || + (message.MessageNotificationClass == Message.NotificationClass.TOWD)) + return false; + } + + // Wenn kein Gefahrgut gemeldet ist soll die Meldeklasse gar nicht gesendet werden + if ((message.MessageNotificationClass == Message.NotificationClass.HAZA) || + (message.MessageNotificationClass == Message.NotificationClass.HAZD)) + { + if (message.Elements.Count > 0) + { + HAZ haz = message.Elements[0] as HAZ; + if (haz != null) + { + if (haz.NoDPGOnBoardOnArrival ?? false) return false; + // Diese Einstellung wird im EU-NOAD Tool gemacht, muss bei anderen Quellen überarbeitet werden! + if (haz.TransmissionType != "EU-NOAD") return false; + // Schiffe nach Hamburg keine Gefahrgutmeldung, geht über GEGIS (26.11.2015) + if (message.MessageCore.PoC.Equals("DEHAM")) return false; + } + } + } + + // ATD wird nur gesendet, wenn weniger als 60 Minuten in der Zukunft + // und auch nicht älter als eine Woche + if (message.MessageNotificationClass == Message.NotificationClass.ATD) + { + if (message.Elements.Count > 0) + { + bsmd.database.ATD atd = message.Elements[0] as bsmd.database.ATD; + if (!atd.ATDPortOfCall.HasValue) return false; + if ((atd.ATDPortOfCall.Value - DateTime.UtcNow).TotalMinutes > 60) return false; + if ((DateTime.UtcNow - atd.ATDPortOfCall.Value).TotalDays > 7) return false; + } + } + + // ATA älter als eine Woche wird auch nicht versendet + if (message.MessageNotificationClass == Message.NotificationClass.ATA) + { + if (message.Elements.Count > 0) + { + bsmd.database.ATA ata = message.Elements[0] as bsmd.database.ATA; + if (!ata.ATAPortOfCall.HasValue) return false; + if ((DateTime.UtcNow - ata.ATAPortOfCall.Value).TotalDays > 7) return false; + } + } + + return true; + } + } +} diff --git a/nsw/Source/bsmd.database/bsmd.database.csproj b/nsw/Source/bsmd.database/bsmd.database.csproj index 00a53a1d..74bfa4fb 100644 --- a/nsw/Source/bsmd.database/bsmd.database.csproj +++ b/nsw/Source/bsmd.database/bsmd.database.csproj @@ -112,6 +112,7 @@ + diff --git a/nsw/Source/bsmd.dbh/Request.cs b/nsw/Source/bsmd.dbh/Request.cs index c93575f4..d4238877 100644 --- a/nsw/Source/bsmd.dbh/Request.cs +++ b/nsw/Source/bsmd.dbh/Request.cs @@ -41,6 +41,8 @@ namespace bsmd.dbh return false; } + if (!XtraSendLogic.ShouldSendMessage(message)) return false; + // map message to dbh NSWRequest object Dbh_Osis_Answ_Ws client = new Dbh_Osis_Answ_Ws(); diff --git a/nsw/Source/bsmd.herberg.FormService/Util.cs b/nsw/Source/bsmd.herberg.FormService/Util.cs index 344725e7..b57f658a 100644 --- a/nsw/Source/bsmd.herberg.FormService/Util.cs +++ b/nsw/Source/bsmd.herberg.FormService/Util.cs @@ -1006,7 +1006,9 @@ namespace bsmd.herberg.FormService { foreach (Waste existingWaste in was.Waste) { - if ((existingWaste.WasteType ?? 0) == (Enums.ParseWasteType(wDict["WasteType"]) ?? 0)) + if (wDict.ContainsKey("WasteType") && + ((existingWaste.WasteType ?? 0) == (Enums.ParseWasteType(wDict["WasteType"]) ?? 0)) + ) { waste = existingWaste; break; diff --git a/nsw/Source/bsmd.hisnord/Request.cs b/nsw/Source/bsmd.hisnord/Request.cs index 216c4a4f..01d97418 100644 --- a/nsw/Source/bsmd.hisnord/Request.cs +++ b/nsw/Source/bsmd.hisnord/Request.cs @@ -91,6 +91,8 @@ namespace bsmd.hisnord foreach (Message message in messages) { + if (!XtraSendLogic.ShouldSendMessage(message)) continue; + switch (message.MessageNotificationClass) { case Message.NotificationClass.VISIT: diff --git a/nsw/Source/misc/NSW_Software_Dokumentation.docx b/nsw/Source/misc/NSW_Software_Dokumentation.docx new file mode 100644 index 0000000000000000000000000000000000000000..8862924aa4cfc6821ccc26b8ac5e9ab190806a96 GIT binary patch literal 41477 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 literal 0 HcmV?d00001