From 6556c742666d84183eb2e19a91675e49949d5e0b Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Tue, 23 Nov 2021 00:30:33 -0800 Subject: [PATCH] IO-70 Begin OEC through partner. --- BodyshopUploader/EmsBase/EMS.ENV | Bin 0 -> 1065 bytes BodyshopUploader/EmsBase/EMS.LIN | Bin 0 -> 10000 bytes BodyshopUploader/EmsBase/EMS.PFH | Bin 0 -> 785 bytes BodyshopUploader/EmsBase/EMS.PFL | Bin 0 -> 987 bytes BodyshopUploader/EmsBase/EMS.PFM | Bin 0 -> 2123 bytes BodyshopUploader/EmsBase/EMS.PFO | Bin 0 -> 911 bytes BodyshopUploader/EmsBase/EMS.PFP | Bin 0 -> 868 bytes BodyshopUploader/EmsBase/EMS.PFT | Bin 0 -> 4799 bytes BodyshopUploader/EmsBase/EMS.STL | Bin 0 -> 4558 bytes BodyshopUploader/EmsBase/EMS.TTL | Bin 0 -> 609 bytes BodyshopUploader/EmsBase/EMSA.AD1 | Bin 0 -> 6120 bytes BodyshopUploader/EmsBase/EMSA.dbt | Bin 0 -> 24 bytes BodyshopUploader/EmsBase/EMSB.AD2 | Bin 0 -> 5613 bytes BodyshopUploader/EmsBase/EMSB.dbt | Bin 0 -> 24 bytes BodyshopUploader/EmsBase/EMSV.VEH | Bin 0 -> 1302 bytes BodyshopUploader/EmsBase/EMSV.dbt | Bin 0 -> 2048 bytes BodyshopUploader/ImEXOnlinePartner.csproj | 57 ++++- .../Utils/Decoder/EstimateDecoder.cs | 2 +- BodyshopUploader/Utils/HTTPServer.cs | 33 +++ BodyshopUploader/Utils/OEConnection.cs | 196 ++++++++++++++++++ .../ViewModels/MainViewModel.commands.cs | 2 + BodyshopUploader/ViewModels/MainViewModel.cs | 4 + BodyshopUploader/Views/Main.xaml | 3 + 23 files changed, 292 insertions(+), 5 deletions(-) create mode 100644 BodyshopUploader/EmsBase/EMS.ENV create mode 100644 BodyshopUploader/EmsBase/EMS.LIN create mode 100644 BodyshopUploader/EmsBase/EMS.PFH create mode 100644 BodyshopUploader/EmsBase/EMS.PFL create mode 100644 BodyshopUploader/EmsBase/EMS.PFM create mode 100644 BodyshopUploader/EmsBase/EMS.PFO create mode 100644 BodyshopUploader/EmsBase/EMS.PFP create mode 100644 BodyshopUploader/EmsBase/EMS.PFT create mode 100644 BodyshopUploader/EmsBase/EMS.STL create mode 100644 BodyshopUploader/EmsBase/EMS.TTL create mode 100644 BodyshopUploader/EmsBase/EMSA.AD1 create mode 100644 BodyshopUploader/EmsBase/EMSA.dbt create mode 100644 BodyshopUploader/EmsBase/EMSB.AD2 create mode 100644 BodyshopUploader/EmsBase/EMSB.dbt create mode 100644 BodyshopUploader/EmsBase/EMSV.VEH create mode 100644 BodyshopUploader/EmsBase/EMSV.dbt create mode 100644 BodyshopUploader/Utils/OEConnection.cs diff --git a/BodyshopUploader/EmsBase/EMS.ENV b/BodyshopUploader/EmsBase/EMS.ENV new file mode 100644 index 0000000000000000000000000000000000000000..6c1c9effd0ba73114dc7dd0e783b936338297ed1 GIT binary patch literal 1065 zcma))%Wi`(5Jjn?R()=}=qjr&Bb!H(Dk}#Y1qmB!4^&zCJNm`_je6{)B0x~@Vi*p8P^@RJ+K_A`HB!{}OM&w#R z;7xB9+k*wol=;j5FyhX=@(H~EkcVkFHX`_s&L0@G#+z1HhukG|$7?xUIo}fpdD`FI zAfJD~1T>iZK4eE#8lsq)G)E=v_n=JUK02lv|R+~Fv8#&n7R literal 0 HcmV?d00001 diff --git a/BodyshopUploader/EmsBase/EMS.LIN b/BodyshopUploader/EmsBase/EMS.LIN new file mode 100644 index 0000000000000000000000000000000000000000..42124e3b91467af783b1327139c0f998141b3279 GIT binary patch literal 10000 zcmeI1%Wm676o%cVLEA-l?V<$=%&O?7Du)+cmJ~(VN+^+`=p@dDU}7N=>PUtp7iizE zZ`S{uq2wV&DufG2G0<7i<2jt$$A8Y889muN`QhiYv$KDm{_+L>?4@8d@zY62W;=^G=Z_QeK$zBembhQC+=&uquI*(;2TjFurt4JOMqMt z?W-3m?QBb*(Wooi_k8f93D($|-;3mG+kdJ1Gn$_lrXvW9`Fu}3X=ywEI(}piU;1%8 zs2<<8{y1;{H?3{TMi~BJI)0u;iqF@j0q*SMYJTHzkOuu25>n$Y>j(TVVp3<$|7l4; zsy@HN{L6M~o7GXnm+WE0?K8h}|76Di=nGbUKQ;E~pgm-Bb^XX4O_Fq)oagf^P47(E zlW^iIeq}rN@4lu9)Q-;`LtQoc9gn77s$QtnFWaY={UE7spY2#gb^Z7KHXJRQvV)eNMrBA;Umq}vOr~Tp zB^ynlYJt))dp8sPY(>@gQsnyRbFX+?peXg6jy{&;gp?dm>WO5Sk=?M9UBDfI71){=v!kQXB6HFtTt z+OE4AR*^eFpYr0OVyAIShi^loDS5^olEw<=88Zv;@uYqo^few_DvtT59u(Ybz~bu?Z9HY2LfP%HI7k z+Ypcaq_ouT8g1J$d+aCmmvSvR?UrOMapojiV($&F{7@}*m{Lbk;yn(_u7c9@c?Bt* zlF@Tr9TD=M4z_+DTOABw8}ad&4F1S5GnDDE2n(+%G9DpD6am)YJ(@kG-3oP$b9RTT0};DYV>C3hy@S z`Sq;Grug4y@0V2Uji}OO@2$n&vLhRKZ_*OS-j>Z;;?u4LKewY4%om5wCz@aCcDpru zoV1 zc_0$t*xMrSjoTKYWWg`xzS~`FW{X88#@Tv9K=x82?=7st{lrPUx6#58RYd}(7B5i| z`C_%N9H7Lpw?(lxRvgu^5PO#>dD$&DwfAU72_KPLKH(mx-3dI1635Imo=8jh_C~9V*juO6Hd}TREtwp9+XhZ2ZNs3uN~#v$VTpN59O2-z zKamdlC3rrht*%YV9GQ|DJv!!L&^gZH`z3X*+K!BexSa_VY6}r_Fgf-{AkZ@mhfOx! z!d-}A98MB}-`pbAPvw)egjv_6%5&V2DXDw!oRY;_N|OBE8@JaDwWMNiY;QYCHdb8V zzZULbkc?hZpirA4T$UW9RMZlV;78X|ffD^XAZ3!|_uls^S6Wh|<$Os?D)x3XN{E-d zz{g$fWh91SECzl6Sn*W_tH-7#`gOn(_mr$&vpvqVNi4RdQNrnYfS=gH$;9^(5&PR* z-%XMdtVcm>j=gPDql5rF_NRU#`~aBnbGjRd*d2_*eK9=>O6u1E z_TJ=|x|)_6`z4OO?Kbu}3zq_kW#^Wo4qc6vN-Y{M>E>3IQHHTi3AvoKqNr%65Yblm!5uD-r`)+1k&MiT!9iU zLlJ~ON=kHeL%_|HB&|3B?|qT|ovp5ycWdzqN4S|7%-6Tebyj&F*IY}uK0baVKr{M} HTKefM!3B0m1AO?Y!S+tXW^Z(PA z_w=?iLda|WhH)5KY${P2&I%GC-S=u7YqxtHpl-a)7K*4PVcPypqbTFSW@y z$x(@W?MCenTzvh<`b#C8dgM<1J#_1VyY%5i|2%Z}Po;ADBe&fTi*F`1aVDej_d%{o z4Fz@%_v7SK=Y#+8(=U7Pzo7@JnPxnZjGp~dK<(ileTbT4N@=s8?8&7?lm@l9v(UOV JGl1G|_W{{c*XJ&Z<6uC-s7tl_^jZQ;-x)bj3^f{y7~Ste_m)1lsV;H~#>= zM{hbLgv`1Jeg9n2Re5$#geD%)eys$!FH&FypM2qpXW++x2Hk2w(VyS)FeVa6r-}*k zL_aS4QEdR=+&}-zvzvZ}#dE$|{IfsABmbHY{<6hK-srDdeB_P(y2VG{=sPVw^145! zlDlwS)ZD%JcWTyl_sdvDDbpKcW;YdZl01FW^R%Q3XJe-;)RhRrI80C2z&8De`cV(^ z3a8Xo4^R&jk3=~;rMtb|@Db{f@J>7qJuZtLd&f?{qMrE5Wa|@r^1yuY@()yMe*OTz C9fXVk literal 0 HcmV?d00001 diff --git a/BodyshopUploader/EmsBase/EMS.PFM b/BodyshopUploader/EmsBase/EMS.PFM new file mode 100644 index 0000000000000000000000000000000000000000..0167f0cf5bee7706ef6914f71f6494ffc0c88c88 GIT binary patch literal 2123 zcmc(dPfNov7{;TUs0VL)@sx`f53_$(rN`J7I%&7i2CSztbTVNu*an{cM1Do{CaJKr zS-flpnnHf>^XBQ(x3}qCog#$3df$9+ubi-~W-l~BC<5BoN+Ocg(In8fwjRBn>Zx=v+T8t<^75q#y0K7~hBj^5WUSs64f5K9Ae^-B6vYnhmk~8V= zw8MY)SmdLz9ff!VqI;;PBOY`}f*8lsiy;%a>41sO$4ie_pJ0i6+fSnHub3 z*YgKK+h$|m4K=$0z}7s@9_*&iCcD^$T-zVqq#gW+U9WVb>EadN;N?5c`An=nri-;0 z1vv~uWzTDDn%=+Z?sFJCX0aP6d%nqLbAAxJzAfDcWv5A5xat~`gV>F1cCD!%F5T-N DL$x&} literal 0 HcmV?d00001 diff --git a/BodyshopUploader/EmsBase/EMS.PFO b/BodyshopUploader/EmsBase/EMS.PFO new file mode 100644 index 0000000000000000000000000000000000000000..5ce902511e56a5e224aa7f2e85825aa37cef2f40 GIT binary patch literal 911 zcmb8sJr06E5XJGqrM0xN@&XooUckym65Rx>Hr~PeM|PPpX5r<4uy!k z+-Wsp#9K$cA>KOjE%DZo?})dKd{4af zm7l`H5BE6G<~~bI1Erqtqdg9kdj9>dua^$JcIX@8wL{+$uO0f1cl#B0y}{`Ais EKV&am9{>OV literal 0 HcmV?d00001 diff --git a/BodyshopUploader/EmsBase/EMS.PFP b/BodyshopUploader/EmsBase/EMS.PFP new file mode 100644 index 0000000000000000000000000000000000000000..22f94eb21ffed911a8b53b383a76d23452d7bd99 GIT binary patch literal 868 zcmb7^rKy#I!u{FQH4 z0I<&rcm561gx6h+~IAVGtuXsCDs6wigF z==|-~8?^oTZf)J z^1bixXY-Rj<-0HRu}}HlgP-&%-+iHveaiP9{G?C$?hAeFQ@;1$mwmf zPDP(n(WiX()!)zVW1sT9@9$^xlRo9UFZ8ib`QC${^eNwcp^tsa_a6MDPxfE=8Y9(WiX()!)zVW1sT9@9$^xlRo9U zFZ8ib`QC${^eNwcp^tsa_a6MDPxCVb{hB^JO(v7i>u>lzyg1MI{G(g|k|KK38KUqs>%sR)!6j#fKX=!<0N=lC zwk`bjs*5LCmd`iP+r!UZx2dSngBNeRatL240W&{&S2Hl;E3RO(Kfu)l1;0B#&+i6{OZjTlCC#%Q6VNC!Xc(HL^i?2xFa8s2o*_&~#+sxdBRFmBV`a!KYNCBwn1 z8?uN{CKj`0yqBG55-ihC{|_o{RW56UuGAW>1R70;n+#iW@P=(#imo3r0d z2BX8d$OxqwhzBlrR-M2t9Q%)D-Hg$so9+P(jUmm*$3az9!%tGIi`i2(hBT97O%;KL zH{CTp(6Fa!3~6R0FIUoxc)1!&GAXXc#f)LkT#`9F)Z_*pRWjm1=`u=!P;BGYcCPpJ zDGhB0pa^sfALoMMR;AZGNs9!{IBez-AE@?TN+y literal 0 HcmV?d00001 diff --git a/BodyshopUploader/EmsBase/EMSA.AD1 b/BodyshopUploader/EmsBase/EMSA.AD1 new file mode 100644 index 0000000000000000000000000000000000000000..d80de5b59418dec6da2470210d57beea5a3ce252 GIT binary patch literal 6120 zcmeH}&2G~`6om&W1T6xwVF3#iDN@x9$VrnbU5;$0vFbm?6QyC}m*6dUD&CBH?~E;X zm^nKngfg2r{(SEI_#Dst{BiN|g;MI*`|C^k`J)we*QZTiWJ;wBUwKbBURRFK16*g> ze&P5{gf9V43v(iw^#3KG?~L3O{xZP77cJiv{x-l)Ra|ANAkvp6vKT>yv94kh~vx zQ{MQhylUtcSxhN^{%unh>8Y>j0nz*Z$nvb$l^BGksMMur5aylH=FnNahn4OgYN_t( zf8rvOCOp%I)`udZls`Y==F|@B$61@Uw5(kD@c5ZG+mr(+^YimJa0;OC`LsA)Ge`Lw zcr1U+QT~{t{4q!QllmZk%u)UvkNV&8c>WxRdXzubqx>;P`Exv)KjtWZP9M$R$Rqh< zj`G*)Q=a#A)j9tkJbw}It-ZtfVQ%9Q&Ij{!_c-n!9|HBK`MvT2%6jyD&<_UgUyhIc z`}tvx@-y&QexyFwznG)^Fh}{3`XE2dQGOhc`rq<+ejJB-lpofk{4huPaXgwI$D{ce zc_bgqQ9hW{4#eMZ`TqL*PuX;x3qWvx5T0t@phWNQ55gz=$7?Siwtn7`SoGH(H@kdm z`l6=JOGbWu>Kg7phB~nFuwMGN0SxZX>7gS7?z!vW{OJ6V$?3%LIX^jR!ujnYZaqb@rSK18-UEu_lI!c58=Qcwtn0n!ht^q9(%uzNBuEys0aQKJ@AKc;E#8+<6<_O z9raPyd8cRO=fhstX-+rK?VntM)!k;bUajI|TPMl4Bss+&SSE{gvRovyBv~cW?l-ra z+qyTvz;p$Y>7VhM9X9?sU;L*lu*LJ5;HG95G2&V4zt zCUd7zcUAGiark_O>p63ehxE%HiT>8U@z-?4$k&6xBW#u+pBZ7m$~gP>e*iAw!g^PUgoyHR6p6vyz8i+?PYHJ zi+bRX^Kbjh9PRb#(O%{*J=?46*g~PjZQPTo;uHTY4Enr&zc7FhmmS%=ejcfGT{=&eQb9=b^139+`*XI~No)_Nw zfa~?4vd)*d!E!zyDuuhBZ&Jf6GM$@}>$ClxUz=%dRz=g_c7G7BN*tTUxAj>L?h z!1~V3Y^C3DBrl$UtIHSP`p?}s-LJRnTW{IZ-TtTdh9f-AKzjzvb`wOu54)h+?(Xh3 z!D;_89DNP4!_zW456>=x;l*JaREPa$b7;%|<~m;A?sva7iZr@1=ih^~Z$shX=y9krf}pr|?akq+7b1 zwu_oWKjt_8`AYJ&9G&e1LGV3V+E-_#QpHRILBK5B^*mNQYWStcxlBL`S)f^3bm;RL z7+?h#tM~^VS6QqDNsegAJI1S@Jw^7^XduJOMmy7&REEQrnk literal 0 HcmV?d00001 diff --git a/BodyshopUploader/EmsBase/EMSV.dbt b/BodyshopUploader/EmsBase/EMSV.dbt new file mode 100644 index 0000000000000000000000000000000000000000..84b106a06631c88fa727207b941c9205a68a12bf GIT binary patch literal 2048 zcmeHI+iu%149$uS7zXSg_yb!uY}g+5WNgKr8@~qlyOhlFfT5g)J@2FUnkzJ1h8)@chS%zz zR?3GwRflyvab_H{Q)Fs1qRqGmT3%~v&_)D2~ySb%}EHCaG}L-F*RwO-Dk?!%i+y)rj5+I z7WxP6vi5ds?cG7-m+^cWrQt%cS|OxX_}pypa3C3#82o+E+3;8Z9RlD)E&w?9deGeVuHa61b#+tH&?v&hEJ%BJr3ZkBGD#iWg1aj zEZbmA>xSI58BeU$!n%6_e6wEUE^i-$CAlgjP22ib$>O$~jpg2-KXIqAX+X^FX%9_3 zrCO{h;%IS3N_WCZtWTae4HiqORtLGRS27Y^o9-R RBTkTQd3w5}++Y14@&~jkq{;vQ literal 0 HcmV?d00001 diff --git a/BodyshopUploader/ImEXOnlinePartner.csproj b/BodyshopUploader/ImEXOnlinePartner.csproj index 957ab28..c2d8475 100644 --- a/BodyshopUploader/ImEXOnlinePartner.csproj +++ b/BodyshopUploader/ImEXOnlinePartner.csproj @@ -187,6 +187,7 @@ + @@ -257,6 +258,54 @@ PreserveNewest + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + SettingsSingleFileGenerator Settings.Designer.cs @@ -294,19 +343,19 @@ 6.0.0.3 - 3.7.1 + 3.7.2 - 3.2.3 + 4.0.1 - 3.2.3 + 4.0.1 1.1.0 - 4.1.0 + 4.2.1 4.7.0 diff --git a/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs b/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs index 2aab1e0..50102ee 100644 --- a/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs +++ b/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs @@ -105,7 +105,7 @@ namespace BodyshopPartner.Utils.Decoder var reader = new DBFReader(fis); var type = reader.GetType(); - + logger.Trace(reader.Fields.ToString()); reader.SetSelectFields(new string[] { "INS_CO_ID","INS_CO_NM","INS_ADDR1","INS_ADDR2","INS_CITY","INS_ST","INS_ZIP","INS_CTRY", "INS_EA","POLICY_NO","DED_AMT","DED_STATUS","ASGN_NO","ASGN_DATE","ASGN_TYPE","CLM_NO","CLM_OFC_ID","CLM_OFC_NM","CLM_ADDR1", diff --git a/BodyshopUploader/Utils/HTTPServer.cs b/BodyshopUploader/Utils/HTTPServer.cs index 2ad980d..2b92a7e 100644 --- a/BodyshopUploader/Utils/HTTPServer.cs +++ b/BodyshopUploader/Utils/HTTPServer.cs @@ -69,6 +69,16 @@ namespace BodyshopPartner.Utils (req, res, props) => { HandleImport(req, res); } , "POST"); + Route.Add("/oec/", (req, res, props) => + { + hlog("Received an OEC from ImEX.online"); + res.WithCORS(); + res.Close(); + }, "OPTIONS"); + Route.Add("/oec/", + (req, res, props) => { HandleOec(req, res); } + , "POST"); + logger.Trace("Starting HTTP server..."); hlog = HttpLogger; @@ -92,6 +102,29 @@ namespace BodyshopPartner.Utils } } + private static void HandleOec(System.Net.HttpListenerRequest req, System.Net.HttpListenerResponse res) + { + logger.Trace("/oec/ - POST"); + //Input will be an array of objects containing XMLs. + + var requestBody = ParseBody(req); + JObject HttpResponse = new JObject(); + try + { + Utils.OEConnection.SendToOEConnection(requestBody); + HttpResponse.Add("success", true); + } + catch (Exception Ex) + { + logger.Error(Ex, "Error encountered while handling import requests."); + hlog("Error encountered while handling import requests."); + HttpResponse.Add("success", false); + HttpResponse.Add("error", Ex.ToString()); + } + res.WithCORS().AsText(JsonConvert.SerializeObject(HttpResponse)); + } + + private static void HandleQbPost(System.Net.HttpListenerRequest req, System.Net.HttpListenerResponse res) { logger.Trace("/qb/ - POST"); diff --git a/BodyshopUploader/Utils/OEConnection.cs b/BodyshopUploader/Utils/OEConnection.cs new file mode 100644 index 0000000..40ff37c --- /dev/null +++ b/BodyshopUploader/Utils/OEConnection.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using DotNetDBF; +using Newtonsoft.Json.Linq; + +namespace BodyshopPartner.Utils +{ + public static class OEConnection + { + private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); + private static string workingDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + + private static string emsBasePath = workingDirectory + @"\EmsBase"; + private static string TempEmsDir = @"C:\VPS\TEMPEMS"; + + private static Encoding DbfFileCharEncoding = Encoding.GetEncoding("UTF-8"); + private static byte DbfFileSignature = DBFSignature.DBase3; + private static byte DbfFileLanguageDriver = 0x37; + public static void SendToOEConnection(dynamic PartsOrder) + { + GenerateAd1File(PartsOrder.job); + } + + public static DBFField[] ReadDbfFields(string dbfFilePath) + { + using (var blankEmsFileStream = File.Open(dbfFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + { + using (var reader = new DBFReader(blankEmsFileStream)) + { + return reader.Fields; + } + } + } + + public static string GenerateFileName(dynamic Job) + { + if (string.IsNullOrEmpty(Job.clm_no?.Value)) { return Job.ro_number?.Value; } + return Job.clm_no; + } + + public static void GenerateAd1File(dynamic Job) + { + try + { + DBFField[] Ad1Fields = ReadDbfFields(emsBasePath + @"\EMSA.AD1"); + + using (var fileStream = File.Create(TempEmsDir + $@"\{GenerateFileName(Job)}A.ad1")) + { + using (var writer = new DBFWriter()) + { + writer.CharEncoding = DbfFileCharEncoding; + writer.Signature = DbfFileSignature; + writer.LanguageDriver = DbfFileLanguageDriver; + + writer.Fields = Ad1Fields; + + writer.AddRecord( + Job.ins_co_id?.Value, + Job.ins_co_nm?.Value, + Job.ins_addr1?.Value, + Job.ins_addr2?.Value, + Job.ins_city?.Value, + Job.ins_st?.Value, + Job.ins_zip?.Value, + Job.ins_ctry?.Value, + Job.ins_ph1?.Value, + Job.ins_ph1x?.Value, + Job.ins_ph2?.Value, + Job.ins_ph2x?.Value, + Job.ins_fax?.Value, + Job.ins_faxx?.Value, + Job.ins_ct_ln?.Value, + Job.ins_ct_fn?.Value, + Job.ins_title?.Value, + Job.ins_ct_ph?.Value, + Job.ins_ct_phx?.Value, + Job.ins_ea?.Value, + Job.ins_memo?.Value, + Job.policy_no?.Value, + Job.ded_amt?.Value, + Job.ded_status?.Value, + Job.asgn_no?.Value, + string.IsNullOrEmpty(Job.asgn_date?.Value) ? null : DateTime.Parse(Job.asgn_date?.Value), + Job.asgn_type?.Value, + Job.clm_no?.Value, + Job.clm_ofc_id?.Value, + Job.clm_ofc_nm?.Value, + Job.clm_addr1?.Value, + Job.clm_addr2?.Value, + Job.clm_city?.Value, + Job.clm_st?.Value, + Job.clm_zip?.Value, + Job.clm_ctry?.Value, + Job.clm_ph1?.Value, + Job.clm_ph1x?.Value, + Job.clm_ph2?.Value, + Job.clm_ph2x?.Value, + Job.clm_fax?.Value, + Job.clm_faxx?.Value, + Job.clm_ct_ln?.Value, + Job.clm_ct_fn?.Value, + Job.clm_title?.Value, + Job.clm_ct_ph?.Value, + Job.clm_ct_phx?.Value, + Job.clm_ea?.Value, + Job.payee_nms?.Value, + Job.pay_type?.Value, + Job.pay_date?.Value, + Job.pay_chknm?.Value, + Job.pay_amt?.Value, + Job.pay_memo?.Value, + Job.agt_co_id?.Value, + Job.agt_co_nm?.Value, + Job.agt_addr1?.Value, + Job.agt_addr2?.Value, + Job.agt_city?.Value, + Job.agt_st?.Value, + Job.agt_zip?.Value, + Job.agt_ctry?.Value, + Job.agt_ph1?.Value, + Job.agt_ph1x?.Value, + Job.agt_ph2?.Value, + Job.agt_ph2x?.Value, + Job.agt_fax?.Value, + Job.agt_faxx?.Value, + Job.agt_ct_ln?.Value, + Job.agt_ct_fn?.Value, + Job.agt_ct_ph?.Value, + Job.agt_ct_phx?.Value, + Job.agt_ea?.Value, + Job.agt_lic_no?.Value, + string.IsNullOrEmpty(Job.loss_date?.Value) ? null : DateTime.Parse(Job.loss_date?.Value), + Job.loss_cat?.Value, + Job.loss_type?.Value, + Job.loss_desc?.Value, + Job.theft_ind?.Value, + Job.cat_no?.Value, + Job.tlos_ind?.Value, + Job.loss_memo?.Value, + Job.cust_pr?.Value, + Job.insd_ln?.Value, + Job.insd_fn?.Value, + Job.insd_title?.Value, + Job.insd_co_nm?.Value, + Job.insd_addr1?.Value, + Job.insd_addr2?.Value, + Job.insd_city?.Value, + Job.insd_st?.Value, + Job.insd_zip?.Value, + Job.insd_ctry?.Value, + Job.insd_ph1?.Value, + Job.insd_ph1x?.Value, + Job.insd_ph2?.Value, + Job.insd_ph2x?.Value, + Job.insd_fax?.Value, + Job.insd_faxx?.Value, + Job.insd_ea?.Value, + Job.ownr_ln?.Value, + Job.ownr_fn?.Value, + Job.ownr_title?.Value, + Job.ownr_co_nm?.Value, + Job.ownr_addr1?.Value, + Job.ownr_addr2?.Value, + Job.ownr_city?.Value, + Job.ownr_st?.Value, + Job.ownr_zip?.Value, + Job.ownr_ctry?.Value, + Job.ownr_ph1?.Value, + Job.ownr_ph1x?.Value, + Job.ownr_ph2?.Value, + Job.ownr_ph2x?.Value, + Job.ownr_fax?.Value, + Job.ownr_faxx?.Value, + Job.ownr_ea.Value + ); ; + + writer.Write(fileStream); + + } + } + + } + catch (Exception ex) + { + logger.Error(ex,"Error when creating AD1 file."); + } + + } + + } +} diff --git a/BodyshopUploader/ViewModels/MainViewModel.commands.cs b/BodyshopUploader/ViewModels/MainViewModel.commands.cs index 48ce442..aef4ab6 100644 --- a/BodyshopUploader/ViewModels/MainViewModel.commands.cs +++ b/BodyshopUploader/ViewModels/MainViewModel.commands.cs @@ -17,6 +17,8 @@ namespace BodyshopPartner.ViewModels p => true, async p => { + + // Utils.OEConnection.SendToOEConnection(); await TestGql(); }); } diff --git a/BodyshopUploader/ViewModels/MainViewModel.cs b/BodyshopUploader/ViewModels/MainViewModel.cs index b25f3b8..cd3fb0e 100644 --- a/BodyshopUploader/ViewModels/MainViewModel.cs +++ b/BodyshopUploader/ViewModels/MainViewModel.cs @@ -144,6 +144,10 @@ namespace BodyshopPartner.ViewModels private async void _updateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { await updateCheck(); + if (UpdateAvailable) + { + await InstallUpdates(); + } } private void MonitoringPathsChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) diff --git a/BodyshopUploader/Views/Main.xaml b/BodyshopUploader/Views/Main.xaml index 57e1a0e..fc3b8da 100644 --- a/BodyshopUploader/Views/Main.xaml +++ b/BodyshopUploader/Views/Main.xaml @@ -159,6 +159,9 @@