From 89381bcc7d167447272f88133e6cc4343c522f5a Mon Sep 17 00:00:00 2001 From: RaidMax Date: Tue, 14 Nov 2017 15:36:55 -0600 Subject: [PATCH] Added logger instance to database class, more informative fail messages. Logs all HTTP requests --- Admin/Application.csproj | 3 +- Admin/Kayak.cs | 7 +- Admin/Manager.cs | 4 +- Admin/lib/SharedLibrary.dll | Bin 111104 -> 112128 bytes IW4MAdmin.sln | 28 ++++---- Plugins/MessageBoard/Forum.cs | 2 +- Plugins/MessageBoard/Storage.cs | 2 +- Plugins/SimpleStats/Chat/ChatDatabase.cs | 2 +- Plugins/SimpleStats/Plugin.cs | 6 +- SharedLibrary/Database.cs | 79 ++++++++++++++--------- 10 files changed, 79 insertions(+), 54 deletions(-) diff --git a/Admin/Application.csproj b/Admin/Application.csproj index cae355cce..cbcfcd4d4 100644 --- a/Admin/Application.csproj +++ b/Admin/Application.csproj @@ -365,8 +365,7 @@ copy /Y "$(TargetDir)IW4MAdmin.exe.config" "$(SolutionDir)BUILD" copy /Y "$(ProjectDir)lib\Kayak.dll" "$(SolutionDir)BUILD\lib" xcopy /Y /I /E "$(ProjectDir)webfront\*" "$(SolutionDir)BUILD\Webfront" -xcopy /Y /I /E "$(TagetDir)Config\*" "$(SolutionDir)BUILD\Config" - +xcopy /Y /I /E "$(SolutionDir)Admin\Config\*" "$(SolutionDir)BUILD\Config" if $(ConfigurationName) == Release-Nightly powershell.exe -file "$(SolutionDir)DEPLOY\publish_nightly.ps1" 1.5 if $(ConfigurationName) == Release-Stable powershell.exe -file "$(SolutionDir)DEPLOY\publish_stable.ps1" 1.5 diff --git a/Admin/Kayak.cs b/Admin/Kayak.cs index 6b55748e2..e74500736 100644 --- a/Admin/Kayak.cs +++ b/Admin/Kayak.cs @@ -15,7 +15,7 @@ namespace IW4MAdmin { // it looks like there's a library error in // Kayak.Http.HttpServerTransactionDelegate.OnError - if ((uint)e.HResult == 0x80004003) + if ((uint)e.HResult == 0x80004003 || (uint)e.InnerException?.HResult == 0x80004003) return; ApplicationManager.GetInstance().Logger.WriteWarning("Web service has encountered an error - " + e.Message); @@ -39,6 +39,11 @@ namespace IW4MAdmin { public void OnRequest(HttpRequestHead request, IDataProducer requestBody, IHttpResponseDelegate response, string IP) { + var logger = ApplicationManager.GetInstance().GetLogger(); + logger.WriteInfo($"HTTP request {request.Path}"); + logger.WriteInfo($"QueryString: {request.QueryString}"); + logger.WriteInfo($"IP: {IP}"); + NameValueCollection querySet = new NameValueCollection(); if (request.QueryString != null) diff --git a/Admin/Manager.cs b/Admin/Manager.cs index ea1ab1701..7f97c135b 100644 --- a/Admin/Manager.cs +++ b/Admin/Manager.cs @@ -44,8 +44,8 @@ namespace IW4MAdmin TaskStatuses = new List(); MessageTokens = new List(); - ClientDatabase = new ClientsDB("Database/clients.rm"); - AliasesDatabase = new AliasesDB("Database/aliases.rm"); + ClientDatabase = new ClientsDB("Database/clients.rm", Logger); + AliasesDatabase = new AliasesDB("Database/aliases.rm", Logger); ClientPenalties = new PenaltyList(); } diff --git a/Admin/lib/SharedLibrary.dll b/Admin/lib/SharedLibrary.dll index 306d8950b772d7768ded0d8853be69dea77a9d21..569f60af8058b59b78b75c4f7f912fb78ebbe8f5 100644 GIT binary patch literal 112128 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≺3ueAHGYokT9Ye~H6J3;(;nsK9`$RK-kjLDz1E}7GYQJR zp^@%O@mthfFWP&}{5|rAB{`38STlb?oqr`bzrSWOk}MEedSpCqxYfI;`NzcjxV~m4 z%WO3S3R9)kT`Agk&}s#Ku0;P4Lm)9K%6>C~Wf!o$cAZi|zI0VOvbYtbSb*40_4b5A7teKpBQxJ1U+Ri5=v1m;b1 zL$){{6qXwo;d+#LJUH2KUss|IOZOVU22h>fJ#XM@V7{Rt^n{1 zvogknc0jLqWqYM@+NECi$_`7n1A50Rvr(2)?|Wrip)9A8lNA1)pBe3$T*#{yfzHaL zdv7Y|Rmm&cWAfxei<;n-9W?o-a*G=D%3cD^RyE5jdkr*O)yKRtyLfB4O>N_qZC1P! z&`!Dx^4(V+r;hh(eti0aS9Zd{t7@W3PA1K>GN<6YZK7%w=={vH_U)=)mAtaQ;G1OqYNA)Rc>1ksKn;3j z$4)N++QcinuJ@JlB=s?`?3Ui&16rWVAj6-_lhxq@ovY^by<48juJP~T|Btk2CAdny+AQ_T@q)Z;nOn@k82JwNSS1YBq z)fTF?+S*nvw^hHk4b@U@wN*>iwzfj0Rja+#ereU#-u^yo?S1CVA(3mp_x}F7fwN}4 z_TFpnz4qFVbLNcumMMrPbc2>vR{R|@ywD7Pdnk9Rr(g=zOjgu2qlyYDDL7S8P1B|o z%%mlns;sOkIE$((l+4IGr=W`Jr&-j3g0m?X=cJsck#}*yY&sN;wew7lS4dKq_i_;=IhPg)CV-B}j3rC=@{uTs>3@mChiqfva52AT)PCkoD^ zw`W__^#$is+Bu3EJ?WN$YC6SRc4&S$?#VG1(#vxd^-S4k3NEA_a@XlPdTZL33g*-C z^Ofw@iOUOW=oLJW!|BQr#hP)RlYA2{#I;E+*D<3LYK=<)2BBc9n zQ7+ZdGfC>(1@(@WSVZrLOtr)k3SOkr-8JDm1xx6`B=tl=13gfqWZNe^QE)L$U!bT> z6Mj-~3EiWqy`UPYqE2LJ>th8?bg`nmU&uX))AbcXCA?qF%>}hq%XSAQHUXuDl!D@P6r~{N$_4Sokw3%9!CQ8UE+)U5wbmbHB3qL`> z(CKDQC;|0bEi=6NgPGj|Bas3)R>|-#@tHBG*w@;vG6u3ZMZ;WU8^YRhtJW?LaBcE939ZIEX)CS(&x3T7`EI=U)Hi7&%^j$ z(>Jv2N)LWLo*vOMqv*F|K2JkhmI*){Ux#j1z?62u=P`}i&mnS|<2kEz( zdIMjbI!JG6isz$4^nZ0ao{tXEhg$Yh`bj+VlZI!rIC{UDo(n2lsO!9cA3GuMZW^s+ z{*wE~+)Y6xLmypPcn_UY6#WNExRbNy={W-C6k6B(*>1?!pIXNHmWcA9}x0_%%AF(|vuy zw+p|nHJ^0vnEIe15=)18{Se&WVL zeiVfNj=JwDe4_B*6#?q$qGt;qNm9=iJyH00lJb{6QOM`x{CCv-LeVb^zfW)LJlB%6}x zexvXQ^oURi?_0(H0qRMi)aXA-r*yhT-(L!k(gm%Y%XQxC#{DO#I-&M>KRM1-bd(yk z?1^!{q90PLPzmo(#`!_5*Ro9oql%uQu$FBtC<4`^W%J6%7d=hegxce+Ew2D|wU)h6 zmS6ZIx?aovTvh_=RxLY!@|>a{(;b>xGIp4-Ew8`mC-h^T?w!0VK^@bw&cI3fDZQd){fHqyrQd1U??;`a=je}G z_UBQ#p#G|5_vW9(9oGNUvTx?+g7U0X?b%VfyXXbV5o(V&hWq9(P@$IHTl6sQ#jep* z$z-NNTC;Mp8`LMX>>uUJ3yx7#%Y2h=E;>e6YT1dLlk{`CMyQ1MKXP(G?bEVe`1Oml zU#HvU8x86%E!%~$@e+MW%Wf?k4eCLmj?$%QiI?fuN)sd80QH7Y2WWiR9Yrrw@KUbd z0s33;uA*PiK}|&`-(B=8I=M>89xwhz(JNH7T2arGFZTVKp3zi0sNYcY8YR1I(qiAM zv`14fjsI5Bahh|PlI0eEr|1N|uc?P~?lE4Y!nH~^l)sqQ{u>na{HPxl{f?$;YQOJC zMZc%|B=ua;>-0*S(ma&+Qqh~#8dB6dMZYQf11-TM%QY&S_Pe6D=*@Payjv>XE_$2Z z(bSHLzk+&SQM|4z{v)M#uqMw{2K|vy{2g_-6rN0>W}rQ7Sv1#;bn5S@dv@N}=}(lC zlFOecn50HSHb*Foclg;m)TpT|^A>=LYwFF?lX(07eof69&(vX|es6FI@6t0u9W~gp zcax>FW$)5SEgLK!Rcy;Ho?2e~XZld*!d9Q6`YhF^tOrf$SKbAuA zJmyQ<`Fm()Bq?5r+tk-VWhQ0c#mYY`Ngc=9G}|~V?RkKv`zB;%8}bku{oY`i-)N0+ zQyieXJI(j8Hndj%cM~iLh%ibn;UQ#yR_iV9Ez36?h7>7Elt+RQ( ziy}33ZSk**ZR)G=-BHHlQaX<+>{=bvXa_aM_+g4>frBbEUP#J*I;O~YL)D0Qw>#b; z3mRCE;_s-)COc$PjLsC<42Nu{@koknjze~i;q9^Wyucx=Hdd#|7C2;e#(gQW28Zlo z*+P zD;%;b4Stf{g>NYUg>tA^Wt^nIgN(A^W`XNQ&$p zhwMv+H)iMgRfp^WV|9w`VTbIS#(gQWM;)@qjQ3MyLk`&yV@cdD?}rZAQ^p-BvY$9) zKQ-P+k^S5ud(oKJZ|C`nL-uRqh7{Rr4%tcLExJLhtp_ljJ6C&wHoRKmMA_e3$7Q?%^oQ(nT85oc-HYg2w-Y?$-3>?egy zZquyMvg3ts6`N**k|AomTkJ9i6-DP3zgO%w@6go!ffr1-`J|?<8TA%qbvwisqzmHv zb!|!NAH^Q?DWMW{5bJBN`G%6wKZ^fR>^0X7NILp{rE9Fud@@PpjLkH&u28a{K$d03 zlT^-FzxlYPCX6i_n`0i=)UPXF#Sin@qX5UU_+1T9LvBlB$n%o1rDpCfPN(u5Z_W{l zBRkFj&3ls6rDKC;)>W)|op&|PN+y_9no3N27}OG>)JkB2*(}uUR9(1!>;&`16xl>a zn@uzii0m3_rHx}JnxEIy*Qjf3xkGc3d9RjL7`#@ptV>@Rp4r1~`39U@cpt9F#&)V$Dayv?@dLWkysjy&g^!P{-k`3}wb z4$X_qs{OX+MGno29GW%eg9mKQ8i!_$L$lVrd_Gz@fRop;>3X zahI)G=g_QkXx5t@U$8an9h&tH&4uQ%gSO^Ehvq_u<|6ZfyKT)y4$Val&Bf-O_uHC_ z9h!?BnoG=457?SZ9GXiUnhoZ@ue0Vg^cO^w28Zlo^8t}5@448K%f$}OOUxzTw9C81 zp?Qfzv(cd;(i?s%3pxu;Ev1bMEox=DO%T)Xw7Mp++w7xvbx%@R{S%oWDtl>nrS3 zO0zqMIjhhz2BntOhITWkRUlq-1pGb8;aaihkm&D1xrWpZPc~0s+cG78uCK*^7A;`V z3rT3|d{WCw&0poYN6J-@Tic|20bSCn&NjaawwW|lYRWok#C_zJKEk)Gfa956(fI&1 zbqU|nDHiEO@slZn{}L^1(2=PORbME3RG)HhT6`sa5bal$XIe z{|@~$S|hDDoUd|7<#S7>NzQn;K1xrg9OPqAs*atfn_fg6(`mK%cA}W@)W`n?SvzI4Dj!pR zcn_>HX;wMgFiw2(Iq4}i%6>YD`AT1L6il^0HidOwl^Uf>e=)~}=i`~LI1#BA^V1ys z;hL!&#tkYFt9Jj3(dOf{$;Z)QFEwZ}#*`@@Xwa_77Dw^%q?GtS>lid%^e;xdG9{Iz z^Q?^SpGsXO3C_@@CaKpyWb7!N4ULAD_fh#Pe(Jn13Hf~Vyzsx8YWDo!R$>nvY31<09`e5)^1q|wqejQ@Iq_YY zgC52@(2(^Zf8U956}N3@((y{>e^zER<`3ss(#tXLnDm_FGrYvOtT|stZZ3LL^8BjI zxmzXAD`Xx~sg}#kvP5PvwVqMyRfVfm4~RX?#}mVXE2yM+To(L~f^3O1)kkTj@>N-> zoK#%pnacU^ZG?3gg;@YcsA-;M#&Kf~y->53XKZeYm#bisFjlisS0XwGGz}Tm!hSz;z|Aow#=4 zx(e6TxCU`0aP7vm2iLW@uETW$uD!T!#B~#{eYkwYPjKV`y77)I#>)UR@Ky)D2YsHv zT7eA$mkV4YFeI=Ga5QXX{Q-dqfwut~c+&3tU@?UZzQ@!BXwZP%6&R4a0egkBS2XX( z^O*~958!)~8|jGTP(t@i-iGIyM+I-dL&d?VpM~^mlfNMFUT}U^@pUSbZ-7*op~8p3 zFD?8QoLUPB`mCr^38pN@?2t z@;vNA=8eIMvv{kL~qnySx?!gvF*_T*nHEO+l;%e}B7Ozk1&~|=i zN_X0$=J~Nbr!M7<$sb7CQuki5yuy6E@;_k7r_c*qjT=Xu=iX`* zR$K)51Kg9{BlYE;Ep_h`e80du1@5KZ{I9$30q#KyPb)g=en9vSXiL~z66O`7I?@l* zjiYV?pcG>}o|3OHZpPDk51EGx9`rmZmOLZyU1%EguJQLNE^nUe zD-~|ab3F!F|G^Ly_aJQCTGTJM___BMFWb6r)m4Ef(Pb)~n#wYPMw_n4G^Oun~xOui}kinQJ_ zd}sD%NcmexuSiS2A}x7Rq$h=QQaEo5=WXGn5Lhd(k@Ihth*-X!Cww7Dn-B!T(g{4M??c!Y6%ej9byFYm6rJ ze#pho|8%*^b3fx7Wv~aXG5(%&A9VIsKIkh!D|yUvVvGaFz0zvQq2AzUpBgpJ z&pNdVr`lNPTaZ<4a6D|q6H!&rd2-stfXpw!7`fGKG!$f=hv-ie+Ozh$78XRZZbON= zv=zO)GwUIJrpd|<2bpzl%ONASejR^!Vh&t`2kehj?Bm^}WX z?1<<@ApI^+oU@E+pisNfyhap{q`M9ZC$YLBEkOq}x`NxRSB z_YWK<&i^p|c*=XmeuF({Ki(_03y{Bo`zU>D%3A+^gTL##-(c^$Q*7IB@ON+b<9!qi z`5Uf+5R_+Hq4gTJdAm!29h7v$gRkIQ=x?v#4niF&^1+b z^k@FP=4Yq<-hWaoJSkS46sz7A&fCIyTR64Gqm#$x-Xp&EfYkI++CS~4-1}YMoJ4u| zyMC5-7vj~|CZ_{Gf^UI5AZ>D3G!ILgtP{@T!ifm}q~K4A^l^a^nIoQo=XlJ0#QwQY ze14zs_erW_lIob~-%l?W9Spo8`mLgWQY?I1m-2cpBC2Ul`7lsxJXPw?FNgGw>{B8= zB{`V*Rlj%gz4VT88{jG90O0$^=Kw!64g!+-CBQWED}aS2>y((R6Es<8s&J|V&Jq4R z;a8iSwnoy{OWGyoH^6B$4+A!vj{>%u-vwN4J^{GSd{1 zo&b!SzX!a*d<$@&lz6L@xL-=VLrT0;N<1hf-XkU6CnY{0B~Ev-{Z%fue~ydopXXvb zt6f~j8rN6y{qpW&FTE|A?}+9p(R?48Ww>{A0PrSyck)cUsp~-gOuTn%O36$bOI3gq zX&GQ8tp=P;TL3ShI{@qG^MIGoHvwDd`+#eO-!5?R!XUrQrZL$ zX~^Xc3ZBrAIR^zlq#<*L1V5r7bB+ssLPO?|!F4e-WKK}CU8*TL4hYUL4YXuJp9uhnuctY?)f*%t6 zh~P&Q-@|zx@^GF<1V1A93BgYYZg{0!uaqlznc%g8*9smIJS2ER@Py!p1V1GB5y6iL zenRjQf*U@`-zWJCUM6_0;I)E>1P=+`F8H9pgod2#>I7aR@NR)m2z*VTE0cAC0&4`;32Ya5jlhEf?-n>D@Ckv(1->SbvZTHma_KI? zCkm_+*d}mL;57md3cOq3kiaJd9vAqUK+5KvT>>WxtP|KSFrgurc#YtPG-S@*f*;Y4 zIZp`wnn0JIbDk)$PGCqw)@&Di(0@CvEgkgZ+h_R+;UxT0mf!~=O_UxK=^^1966xK7 z4?+6n(jk!^5zY~jJ|XyVNS`Y`F4EV8Lpit8UrQ;6%W~yNzX+Ttuts2=z&3&H0tW?N zBk-WWy9Evjd_v%Hfv*XqTxm~%L4gwm)(ET<*e0-D;Gn>31RfN4x4U17f3~-DX>Oho4`SV2L%oZJT8!mS%0vY=LH(e zFeq?PU`>h47Xk-MSo5I3;P~5V%=qAVZj<16)~NyKlJPadsS!>aI9H8t6Hc3O2Eln` z{Gf0K6=%}z^vCgolQ^Ft;1h#Gg45*NX*IrR&ioqSpA6OrJ_!7W!9l@?fd4%>BsfjE zoo1KO6wwF1xvWO;LEv|l4GKO4{8-tL;57Ai@=c(rq7Qujgc`vIfnPCUQ1Bt(hbIgP zP8G0o0#%4U@QD*^1Rn%`*~CG?hk$=-;*j7p?RI*0B25#0;NJ2Y!3TjaE*}(p2za7= zNN}pWorcP(QuKkpS6(CdAn@sv1_d7i-actaaGHKQePI$!7k%KzCe;W&2t0T4px{Hm zFP=OkIL)}7uA59VL?8HfC)WtxHbZ(};6Z^y0*?!%nc_=T3~L0o2^VZIR^y}oy&M|uILCnF0f{v=m@MiPjG>BKI3fyYc3GJK&lqLz#)Ob z3z;)0@VLO5`Jyk7E)so#Lkh29&XB-ht)vxrTwu)tNh^@*B(1<9fx&u7D=@fF(h96u zB&h__Vo4=%NMJQBrWJTo>saG_qsh43*k#;oe8ITiSY%#fe%^e?9POIw3cId%-S2wH z^*z@UuAjQzca^8jOgohJrL@CoQ{B_uRqhq;kh{-)wfnI9CHHULue;xMQ+iJNxbzw6 z)#)qKx1{e#|8e^B>93^Y^T&>={e^4wWrPdW$(AV&wKys z_4;1){lVwX7@bj`F*{>H#`27|jNXi^GH%YeGvlink7Yca@p8uN8Gp@iXO7C8n0a<) zZDw=khRmMKU77nbKbQHH%ttey%6uvF_nCjm{5u|^Z_c_b>+-CvS&6JKW_>y9XIXD# z{Ua-oJth0{>>IPcnf+Y$AG2rq@9`h;8#$A5=I5-+iR9dnb63t|Ils*LbB-r>Ms8>B z=W~COdn$KKUR7RW-ay_b^N!^GHt%nF`GMJije+X}_XVB}jLNUg59OPLHwxmZk2LHZ z_^rQL*ga(9jTwHtuQvxL!nrg7oOAI`i@A8~y=5%ko9kg% zBQUf0lfW;Z!0Q3 z%lsb&I5(xQpwd5k!h_&vdl~+=l+!BdI4SpP4|9r&IG?|zGye8OhRUkf(mChy63%(j z*hc}sI_`UbuZ(*Vu)pAGz}E7g0Om<4t0un;d{^af0oPW(4R|W=J-`8}#a~BpZqMX1 z++O+*z^@c>S!YdVxMGr7LU>OfOA|h>-Tp#`J1cO&qHR7lEOZ0h+j@QUUyOKofUWDuK5Fn$%7+fOi0zxVv%|@J)aw?y&INsXGBp+?$vU{0cym zuB3B-?*ue)=VUJMs{l>hJvk5fAfSmmC>H?V4QOJIdLi&VfF|yyTm<|&K$EV=C@^qe zr55;Jssnx_ph@>(tQa`sS_u3BL@I;6258dPF?J042B1j~(j~wj0yODi)EiHU0Gf0d z^~Rez0Zsarye0eFfF?ac{EqBL0Zn=g_nQp*KY;x3>?+`V=gGwTarw>J-vcyhh}Hr> z0%+3r(Qa+k20a64(zAHe zwn0AuH1YlLEx?}xH0dPnTHzgD7+h`B)5ZwSgL^lHOpicttp#8wZbO-P--o{l4|NA`fO>_|WX2NMY z;Jv^ zz34^Yee^Q$t@H};t@In;5)$k=@jsO`YZ5l^f%z! z@GAk8xUZO&RsoovR*BJ)0epb6fL}qmz^|YH@GEHy@GGeh_)aPTzLUlQ-$fIE@1kw&llgys5N!yz$@F`QIJIpH96s zqUYpYk7wvk*Lw?h`uWLB`|pPQ*D;q6;w_%T!yK^`v%xZ4&CptoYX#B@NM>K{AeR0`BvQ3jUtN2&`)th@P4X-Z_c9a_|1+TxHyJiL31R2@5HKv zWA{}wPvZ6@cT=^*YmU~};`cl_QeTf1%MG~pB2wRo@2lN}D7_E&Px-GrljHK*ZP zgKHbEPvd$V*K2{F!;ZOTW&T`q9L)C^Vs-D>%?~Tsis3~U8V)nuv z;r9M`xHdM>)6P<1&Trqap}s5D7YPm2MMANdVj{`eoMdr0z9QTn?uj=;9*)L1nFvl# zrkF@JM<>$>YGaLEu{b9a0o!t}LxV-aIX%aDtj7BD&SPwIIKH7S(gjnN_IGn4#Xh}G z&}{4tb+CdmU!_?vur$;i*4*Y$G!|aC4Oyw5>9N?+-u7@T)`TmxIo#U2CETMW3+A7L z)}re6?hcK`!;wf`Z+Ca7$Ku4$eh!AtMMyNbfsaM~J?;2tSlH9w9gc=JM#4-ji*|&g z;SMLWB^>QSm9EfA%~0rS55+mb^8Ro?e_ASxw}xU{@S$u*?!X)BdLxl=d%UZ+2b7q@ zT20}2XK%-X{;mj0)hTPYhq~fIS*BsUa2DJ?_^fV4_s-|ao=vU24L$MMXH!G-*;L)k zO@_}E`g2onzj6TZBH^CR@lGv3Z#9Rb-I|K(Pt^&vcF!T%rJ+c_-BVz+BTwly;0r=M zJ>ib#a8D=_AJCa_>q9gjt$(&^;j`(I@POpg9O{a;!PfdNX@^jB090LXPkVnf3U_y~ zt1szl-y)TqO%1DN>&oGids9XW>IzaE5T8;Re2Ps{BM?0pRpN5MYfn>8Bg?cIVO=30dCsFHT|iTOyZ9bFINq&q{xCgWpO zD5~r{$7v_XmiA~@Uz`I^xPxtuuzs}FAq^+)1K+rZZ5YNce~LxOSD z5)Z}uV@XrMWK-~Awb;2pqbRjKgc!^I3Pxu*(w7=iz>-+OMF8g<@R9WJx!Od0N(92E zZUQSx1&E2o{#=feb~_57YTR64?{di z>%;L-S0pwc3m82j>KBmmo*1ykI+7nrV;|rjON;4Grt3rT&_+Z*%}ya(L($FPveMFU ze0y(ni`KCzmgy0-EZViXt4C{`&SSl0n>K}e5I3|+3dvGstd=E-x@ApGwM*-1YLT1qP~SxR-<-&WKuTS`lpwKgnjsH<&l0I_&s>xPDKd9QH+*nA;A3$(4v6suxLo3`R%p>0Es{@5Yi;Yw7OHJrxT2NcW@ z;U0wbc3RfMLqq%+_{yG0k{V&qQR<8X^;U!_l@xVO&NN(gn`l;3_sTw)6;=a=TPS7x zAS0RaRZc6yp$=;8jPeJYMs+K~Y!tOd2WmSyD0Mv3qDW}-=5Pl!VK%`>xBB4DMGn33 zcmz!D6`N{^sld%Pv|^%f#<~hhoCLwR2eA*7OhPMrVxdjpWjz>j7#qxHrG}VIw?_Nn z1s$B#s?Kl^B3E}P&J5ixsqNj;7jBnX6ylDJT^&@7ku!hGh7Ais?GpC7!VxgJ1J&>u zE=!J+;iA(9$Z!RFcnp_W!(+Ilp?M@;%W&rE;jA^oS(goGB|B!gh%#tFxW3&cBM4Ek5x9B-H$1PV&<;IK z50|Y7_w`2OBjm;tb2vUyg01~*@<++*!+n^6Ls$_HYkGD?B<-k;ZpQYa2mQ_q=V5Bi z=m%NK4424`X$jW+SXvHGSl1bff0PhALCh6h-3xmDky)K@T zEV^ZRBSxb|VVbZOZx*Wsm8IG~t}`v_0%&Kjg0~qmGg$FTCY&UJxdEG$aCB3sJq&ZO z&A=yyK6Xsox`1MT9}o2asl$vH4>$B^lI2+3SR}Gp5{h-!^>&0&cqEMVTUbh6+0)g| zcmua3Eop6P6a@P6iH_Z1hf6Ung{)i2+iA&1$4$|&@VevzU$))EBiNEH4evCk!qlXx4=-GzNI>8*C*;;uEDaF-p!va$%d#}lRBW$;0!oIXC*2T)(^k;o< zKa((?x91#dmtcbr4zgxyQM9*Pb6T*AfS`ffNtO^A*({$JZn0hnTD!11phYblpg9xy zE6pHCyE-@!98+^dW((;8VQoSgf^bUCLI_@RB#F%yS1o}=p}jZK-`yi57HhdwV)!!sp~zu|;LcL_BQboLSvUIV_Q3#-|#zDvB{ASc9zQc$F7! z3bl8#5X(Xb4Ntd)5!T>hWF8eW6}Fgrmy|mRDoWU42qF75!I~re*f0pXSh)nZ7Oy_-etb$Cz;OYO1bb5_On zxsz0_erY(mu@{oM2tzfJ;N{T)Ifx^na98wlw_w{a zYr_WVA!{|ucFa^!l7NfDXi~aedQUHEr1>m-1}EA7e(PWyrs1TR)$NuIy%BVHhO&6pG{Pe%V@UBC=E?_4mzjfZKSISYF*oib7vMh)yV zx^^>l|FA^7o=={bkWr@MHBUwA^cp9W8iDZ|JN+z|TKYG}Mm7NIHVLnh;gm)&?iWPw@tZE~X z(+ueVhfl@m5=>083~9!JGR3xX0z~0B`mDGk!RlBH@W{Mep_$4$kmXC|(-CSUxLaYj{hMB&=OTk|E9I*!fBmIXA=H)x$YU z!>}Ql5#lP}(ptEqJ&Z*c%1z#Lu~~Y++6+F1vnkc^Hmwew@R*S!l5XRiD7kJL{KdHM4%2Bq$rKDF-tJF zgrnHZup247eq#!uTqK2Ioi;076}@!AR_wAgD(mTCcgV_Ie z0Wn0McZkUr&OU76j)7+}yVW5H?z_pMh$Pl1r`0I?t&&I7M+4S6@vco>Xn?w9+i}Fq zuC0)jF;J(CIt2aL7JbW)H7%6eaZxW;jZsp;4fiK-cmYzD>&lVQ@VrOHB-_}#9iIp^ z>R<%x0c_1Ru4W=ls8Fs6l&7&iIc=cs&8lB(`*B|~D*cKf65b5Y=s^sNfQPo?-D8qK z`Dzkt?NvNk6fBHJSvQKg8K1mY$DtUolv|oyTfOyViNtF7yV8@}b&^6J7oeH#yz3)~ zr5~2`_D6XWrca7v)YI2cALCtEOysha5c3r#BT1pP8)KG#*LQ`mKZ(V=+QH&|Omg1W zp(aN9wxNnVF*Z3V+6*UX#a1EGqPB@rurN|Lk9zK0g=5^)3rU`eNWPdhaf9D7&01`U zPH!J~H_l3iiD8WFD3Wru=Eiv7CXZpm)fHD~?:J=?}8d9st_w1jYTR1Pd+YMwyi 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 cM+4uE!fB7=&yP;{@66(r%+~)a|A+0_InQ&> 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 diff --git a/IW4MAdmin.sln b/IW4MAdmin.sln index b5be328f8..5fce63708 100644 --- a/IW4MAdmin.sln +++ b/IW4MAdmin.sln @@ -75,8 +75,8 @@ Global {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU - {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Stable|Any CPU.Build.0 = Debug|Any CPU + {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU + {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Stable|Any CPU.Build.0 = Release-Stable|Any CPU {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {DD5DCDA2-51DB-4B1A-922F-5705546E6115}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU @@ -99,8 +99,8 @@ Global {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU - {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Stable|Any CPU.Build.0 = Debug|Any CPU + {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU + {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Stable|Any CPU.Build.0 = Release-Stable|Any CPU {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {4785AB75-66F3-4391-985D-63A5A049A0FA}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU @@ -123,8 +123,8 @@ Global {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU - {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Stable|Any CPU.Build.0 = Debug|Any CPU + {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU + {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Stable|Any CPU.Build.0 = Release-Stable|Any CPU {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {D51EECEB-438A-47DA-870F-7D7B41BC24D6}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU @@ -147,8 +147,8 @@ Global {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU - {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Stable|Any CPU.Build.0 = Debug|Any CPU + {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU + {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Stable|Any CPU.Build.0 = Release-Stable|Any CPU {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {AF097E6B-48D5-4452-9CCF-0A81A21F341D}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU @@ -170,7 +170,7 @@ Global {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU + {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {428D8EB9-ECA3-4A66-AA59-3A944378C33F}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU @@ -188,7 +188,7 @@ Global {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Nightly|x64.ActiveCfg = Release-Stable|Any CPU {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU + {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|Any CPU {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU {E46C85BD-A99C-484E-BCCE-0F1831C5925E}.Release-Stable|x86.ActiveCfg = Release-Stable|Any CPU @@ -209,8 +209,8 @@ Global {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU - {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Stable|Any CPU.Build.0 = Debug|Any CPU + {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU + {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Stable|Any CPU.Build.0 = Release-Stable|Any CPU {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {C9E821BF-23AD-4CB5-B7F9-B3B99B606650}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU @@ -232,7 +232,7 @@ Global {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU + {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {1479DE87-ACB5-4046-81C8-A0BA5041227D}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU @@ -254,7 +254,7 @@ Global {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Nightly|x64.Build.0 = Release-Nightly|Any CPU {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Nightly|x86.ActiveCfg = Release-Nightly|Any CPU {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Nightly|x86.Build.0 = Release-Nightly|Any CPU - {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Stable|Any CPU.ActiveCfg = Debug|Any CPU + {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Stable|Any CPU.ActiveCfg = Release-Stable|Any CPU {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Stable|Mixed Platforms.ActiveCfg = Release-Stable|x86 {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Stable|Mixed Platforms.Build.0 = Release-Stable|x86 {B8C2A759-8663-4F6F-9BA4-19595F5E12C1}.Release-Stable|x64.ActiveCfg = Release-Stable|Any CPU diff --git a/Plugins/MessageBoard/Forum.cs b/Plugins/MessageBoard/Forum.cs index 954f13900..90730b52d 100644 --- a/Plugins/MessageBoard/Forum.cs +++ b/Plugins/MessageBoard/Forum.cs @@ -54,7 +54,7 @@ namespace MessageBoard.Forum { forumPages = new List(); activeSessions = new List(); - database = new Storage.Database("Database/forum.db"); + database = new Storage.Database("Database/forum.db", null); } public void startSession(string sessionID) diff --git a/Plugins/MessageBoard/Storage.cs b/Plugins/MessageBoard/Storage.cs index da0d7f86f..4dfe3ee53 100644 --- a/Plugins/MessageBoard/Storage.cs +++ b/Plugins/MessageBoard/Storage.cs @@ -7,7 +7,7 @@ namespace MessageBoard.Storage { class Database : SharedLibrary.Database { - public Database(String FN) : base(FN) { } + public Database(String FN, SharedLibrary.Interfaces.ILogger logger) : base(FN, logger) { } public override void Init() { diff --git a/Plugins/SimpleStats/Chat/ChatDatabase.cs b/Plugins/SimpleStats/Chat/ChatDatabase.cs index 28acf4d5e..8acc07dbf 100644 --- a/Plugins/SimpleStats/Chat/ChatDatabase.cs +++ b/Plugins/SimpleStats/Chat/ChatDatabase.cs @@ -100,7 +100,7 @@ namespace StatsPlugin "where", }; - public ChatDatabase(string FN) : base(FN) + public ChatDatabase(string FN, SharedLibrary.Interfaces.ILogger logger) : base(FN, logger) { } diff --git a/Plugins/SimpleStats/Plugin.cs b/Plugins/SimpleStats/Plugin.cs index 1cb2cbafa..87e2e703b 100644 --- a/Plugins/SimpleStats/Plugin.cs +++ b/Plugins/SimpleStats/Plugin.cs @@ -164,7 +164,7 @@ namespace StatsPlugin public StatTracking(int port) { - playerStats = new StatsDB("Database/stats_" + port + ".rm"); + playerStats = new StatsDB("Database/stats_" + port + ".rm", ManagerInstance.GetLogger()); inactiveMinutes = new int[18]; Kills = new int[18]; deathStreaks = new int[18]; @@ -205,7 +205,7 @@ namespace StatsPlugin ManagerInstance.GetMessageTokens().Add(new MessageToken("TOTALKILLS", GetTotalKills)); ManagerInstance.GetMessageTokens().Add(new MessageToken("TOTALPLAYTIME", GetTotalPlaytime)); - ChatDB = new ChatDatabase("Database/ChatHistory.rm"); + ChatDB = new ChatDatabase("Database/ChatHistory.rm", ManagerInstance.GetLogger()); try { @@ -484,7 +484,7 @@ namespace StatsPlugin public class StatsDB : Database { - public StatsDB(String FN) : base(FN) { } + public StatsDB(String FN, SharedLibrary.Interfaces.ILogger logger) : base(FN, logger) { } public override void Init() { diff --git a/SharedLibrary/Database.cs b/SharedLibrary/Database.cs index 0f08f5391..e3c670fe9 100644 --- a/SharedLibrary/Database.cs +++ b/SharedLibrary/Database.cs @@ -9,9 +9,12 @@ namespace SharedLibrary { public abstract class Database { - public Database(String FN) + private Interfaces.ILogger Logger; + + public Database(String FN, Interfaces.ILogger logger) { FileName = FN; + Logger = logger; Init(); } @@ -58,7 +61,10 @@ namespace SharedLibrary catch (Exception E) { - Console.WriteLine($"Line 58: {E.Message}"); + Logger.WriteWarning($"Database Insert failed"); + Logger.WriteDebug($"Exception Message: {E.Message}"); + Logger.WriteDebug($"SQL command: {insertcmd.CommandText}"); + Logger.WriteDebug($"Database File: {FileName}"); return false; } @@ -96,7 +102,10 @@ namespace SharedLibrary catch (Exception E) { - Console.WriteLine($"Line 96: {E.Message}"); + Logger.WriteWarning($"Database UpdateIncrement failed"); + Logger.WriteDebug($"Exception Message: {E.Message}"); + Logger.WriteDebug($"SQL command: {updatecmd?.CommandText}"); + Logger.WriteDebug($"Database File: {FileName}"); } } @@ -133,7 +142,10 @@ namespace SharedLibrary catch (Exception E) { - Console.WriteLine($"Line 96: {E.Message}"); + Logger.WriteWarning($"Database update failed"); + Logger.WriteDebug($"Exception Message: {E.Message}"); + Logger.WriteDebug($"SQL Query: {updatecmd.CommandText}"); + Logger.WriteDebug($"Database File: {FileName}"); return false; } } @@ -149,25 +161,26 @@ namespace SharedLibrary int rowsUpdated = 0; Request = Request.Replace("!'", "").Replace("!", ""); var Con = GetNewConnection(); + SQLiteCommand CMD = null; try { - Con.Open(); - SQLiteCommand CMD = new SQLiteCommand(Con) + Con.Open(); + CMD = new SQLiteCommand(Con) { CommandText = Request }; rowsUpdated = CMD.ExecuteNonQuery(); - Con.Close(); + Con.Close(); return rowsUpdated; } catch (Exception E) { - // fixme: this needs to have a reference to a logger.. - Console.WriteLine(E.Message); - Console.WriteLine(E.StackTrace); - Console.WriteLine(Request); + Logger.WriteWarning($"Database command failed"); + Logger.WriteDebug($"Exception Message: {E.Message}"); + Logger.WriteDebug($"SQL command: {CMD?.CommandText}"); + Logger.WriteDebug($"Database File: {FileName}"); return 0; } } @@ -182,7 +195,7 @@ namespace SharedLibrary var Con = GetNewConnection(); updatecmd.Parameters.AddWithValue('@' + where.Key, where.Value); updatecmd.Connection = Con; - + try { @@ -193,10 +206,12 @@ namespace SharedLibrary Con.Close(); } - catch (Exception e) + catch (Exception E) { - //LOGME - Console.WriteLine($"Line 160: {e.Message}"); + Logger.WriteWarning($"Database GetDataTable failed"); + Logger.WriteDebug($"Exception Message: {E.Message}"); + Logger.WriteDebug($"SQL command: {updatecmd.CommandText}"); + Logger.WriteDebug($"Database File: {FileName}"); } return dt; @@ -216,10 +231,12 @@ namespace SharedLibrary Con.Close(); } - catch (Exception e) + catch (Exception E) { - //LOGME - Console.WriteLine($"Line 181: {e.Message}"); + Logger.WriteWarning($"Database GetDataTable failed"); + Logger.WriteDebug($"Exception Message: {E.Message}"); + Logger.WriteDebug($"SQL command: {cmd.CommandText}"); + Logger.WriteDebug($"Database File: {FileName}"); } return dt; @@ -229,24 +246,28 @@ namespace SharedLibrary { DataTable dt = new DataTable(); var Con = GetNewConnection(); + SQLiteCommand cmd = null; try { - Con.Open(); - SQLiteCommand mycommand = new SQLiteCommand(Con) + Con.Open(); + cmd = new SQLiteCommand(Con) { CommandText = sql }; - SQLiteDataReader reader = mycommand.ExecuteReader(); - dt.Load(reader); - reader.Close(); - Con.Close(); + SQLiteDataReader reader = cmd.ExecuteReader(); + dt.Load(reader); + reader.Close(); + Con.Close(); } - catch (Exception e) + catch (Exception E) { - Console.WriteLine($"Line 198: {e.Message}"); + Logger.WriteWarning($"Database GetDataTable failed"); + Logger.WriteDebug($"Exception Message: {E.Message}"); + Logger.WriteDebug($"SQL command: {cmd?.CommandText}"); + Logger.WriteDebug($"Database File: {FileName}"); return new DataTable(); } return dt; @@ -257,7 +278,7 @@ namespace SharedLibrary public class ClientsDB : Database { - public ClientsDB(String FN) : base(FN) { } + public ClientsDB(String FN, Interfaces.ILogger logger) : base(FN, logger) { } public override void Init() { @@ -508,7 +529,7 @@ namespace SharedLibrary if (Row["TIME"].ToString().Length < 2) //compatibility with my old database Row["TIME"] = DateTime.Now.ToString(); - var BanType = (Penalty.Type)Enum.Parse(typeof(Penalty.Type), Row["TYPE"].ToString()); + var BanType = (Penalty.Type)Enum.Parse(typeof(Penalty.Type), Row["TYPE"].ToString()); ClientPenalties.Add(new Penalty(BanType, Row["Reason"].ToString().Trim(), Row["npID"].ToString(), Row["bannedByID"].ToString(), DateTime.Parse(Row["TIME"].ToString()), Row["IP"].ToString(), DateTime.Parse(Row["EXPIRES"].ToString()))); } @@ -608,7 +629,7 @@ namespace SharedLibrary public class AliasesDB : Database { - public AliasesDB(String FN) : base(FN) { } + public AliasesDB(String FN, Interfaces.ILogger logger) : base(FN, logger) { } public override void Init() {