From f64e75970c79c3bf7479d63b6acdc2ba4bb9e28c Mon Sep 17 00:00:00 2001 From: "muhammad.faique" Date: Wed, 26 Feb 2025 13:20:58 +0500 Subject: [PATCH] Add save tempate in db feature --- .vs/DevicePolling/v16/.suo | Bin 161280 -> 161280 bytes .../AttendanceMachine/AttendanceMachineDAO.cs | 2 + .../MachineUsers/AttendanceMachineUserDAO.cs | 4 + DevicePolling/Polling.cs | 80 ++++------ DevicePolling/SaveTemplate/SaveTemplateDb.cs | 144 ++++++++++++++++++ DevicePolling/ZktecoAttendenceService.csproj | 1 + DevicePolling/bin/Debug/DevicePolling.exe | Bin 30208 -> 33280 bytes DevicePolling/bin/Debug/DevicePolling.pdb | Bin 69120 -> 75264 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 1449 -> 137 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 9338 -> 9336 bytes DevicePolling/obj/Debug/DevicePolling.exe | Bin 30208 -> 33280 bytes DevicePolling/obj/Debug/DevicePolling.pdb | Bin 69120 -> 75264 bytes ...enceService.csproj.AssemblyReference.cache | Bin 11 -> 22429 bytes ...enceService.csproj.CoreCompileInputs.cache | 2 +- ...denceService.csproj.GenerateResource.cache | Bin 1014 -> 130 bytes 15 files changed, 178 insertions(+), 55 deletions(-) create mode 100644 DevicePolling/SaveTemplate/SaveTemplateDb.cs diff --git a/.vs/DevicePolling/v16/.suo b/.vs/DevicePolling/v16/.suo index 34eaded8df704ddcfb9f68d1037390e2a12a6833..dad6bf614da43fb8103e3e1b7f5da8a3c484f8b9 100644 GIT binary patch delta 8262 zcmds64OEm>8vfqP05b^4&wvOdph&0;%nSp}5ZOp%Y8VJeu35>?priuQVCJff)*4y5 zI=91h%UYW@to+HC6JKT7Sk`H6D@EI5X&x&zYdLC$*{`$jJ3nTmu9e&IbkBLd``+L0 ze)oOed*6FMTaU`tqgtUI$|PTikff<71|d$n-EPVaKnzFR#8=K3&>8X|*jX`D@)VY& zim2~Cy=lo_sNpTF6(;eM>>ZU9jdigbiBDao<_Ch+VQTDMff*D=b5IOvjYkQ4_XHKn zH~Z29Fg75DBKjj}2niU6A*eES+l82d$VN;;ynwh8k%SnG*omk|Oh&wmpmyth@d$6+ z>i&~2qZDHeA`6j=P=F*EF&>0?8ZitJgUCaCg}53q3Q>T#4N-;&MbJPgT#s@-;!8v_ z!kg=M|A2xC(?<{{2$3Wg3Y5t+0+XQ^XEwSu5VL|2X2dNB9fIbP`iR0fOBm zBJ>_}w%(~v3ZuD7ndH$w=^7`(qx*gsQ>kC~B>Sh7bf1dot9z<*A>C6s@q=_vDk0qy zA5itJo~b{V?y1p*bWi2y(*3pAF_rm4GNwt_6~27Zy}!&w)6)cNaG9iS=7J8 z_%|cQseszt|S z`=GPT0E$m&5XSNf#SbK`D7VnoC(dHrF{<-xknmd=nJqXFd$| zU8zp>lU#}Or$U4v{CWPE8!OX82Vy}yA_2i?R>pZ+rePu#F%;piosRM_#8n9XWaUc= zD&W&^TII+Ow>R6wv&SJt{QVwCdfe3v%u?FE1V;Y8BYDWlicf>R+6vLUrP|H<0iRPd zo?m-VPhaoz44m!~VDK4-=GJo#xpM{1Cb=Shn)I8Bi3brFxch}ihSGOGg$X@k9fIs- z17aiM8N?>UbF|Y&#-Su55)s7iv9zSEY*N@aDR`OLdLN)s_ z^CMqNYW*?Fht5imJWDR}Hdgb0ZB7qm__fr4f@4yMut?vAG#ekRd(;jI%#y_ena_(N50pite zFbmsmFmv1bYy0U88OHget7hI|S-@v+9LEPdn+wZP%HisbQ#?{q=a^oAaDH-ZYY;ga z2`WBs+_$9I8}4_^W%hP!&}96~@gaO(`;7|n>%96x_6sXq$y-E;XK5mb#;?iH!Pue_ zGblLbGvVq68@E~S3NFiqxzS}q9W8LKymK+CA9m$q6q@kHWRZCclKA=!>5AN(3>RNpX-N3_HU+j}@I6PCp~W0!mmoe$U` z-kOmywS4(awO>E|)rR(~pEbVo?~;MH8@nTKmi#1nZrKf@dlw{%)w>|IuX61#uD(Pp z9rBx5dJWEkmx^w;_Ixb0yLzFHpLE^GUsLOXO0Y>H^>18Pws^xrY8?fJ;)!h7$(GyE@NeQYx3>D z5Wjc)6URTIv7p5xgsMMY-fEd7M2)#klKu z-bwVK{jNZ2ks72Kh(`328zi!83f}&Qao04n!_Hd$lNf;gW?=Ccgg=jB|0+++3`Nk+ zN%@h!nB-`mtj0J75qDM@Z2(k5ol^R+?-IelF0W=FRaw zFIz6`VfF*)u+b=Qz%lz*W^O&Oo7?mm-1^Z2_7Ar4qKpFjUMmX)=bXJu74{=VylAV| zX+81)oOh)-Sj^&xcjV;KxrL5>Wc6h6yf%5Cf~=Dlr4%PyP@tN0q9I4N9zkc?83@Yf zn^H>8?Sj!U((9*PLQg>T8ug0dUGM4`_v<}^!`PGmgm}!`nnG5oNk6a&=mv1QO-v%U}$&H-k%wvmntY zi#MCWD5EcHhW5#jC*L_49u6kM@*F~dm-YJUhlfp;xlSVsQhyR|oD-Mr!%@CSKB$D1sUxpI0^~ir8vM z73OMiiR}##A$H6Ht#CC!p)k*eB=NW7kfce#^TT)OvZfkybMvxuvQ3)myxeMyL2J^Z zWUA3|ObbUrn47>Xo1X+56E+k@$|;yGRt#clG5>BT z;#;4I7augiVcB&LPDV#Qpy#v}Y_e?$*r1~TLPgZo%)qx4hKukpbV+V)gKCd&4N5V# z2ehq)S>+Y^I=v}hoBwBBU5#F=uQh0D4O$(JF}p@%GG-ezIn{cdF(=PZU7ee^z}p~O zd+`l4_y%wF8bh7MQdOlfQ;H9YnrWbtS2h!kI}g^{evD$Fk;4OSk9GO^=6$dqj_qdJ&njy-K;$14D$FcQ*4 zaRMt6%S)J2ZoU=P1YF*Pt;w!63nq$JjzN?t`VtZ%Jr@xk^Nn-SnK@lF zeF+bXgl&*Uccs!aDO2cPhs=-wDbr`rYh7;xC=MKTyG4o;hKRM>U?B7tTX%w5EPEYB z2-j;6BVtf$--e@a6I<^E_aD|Sy0+tDAe*=0Q#|$-B#6E5z@cADZDHFCHeuTdMWS;T z6tvUf(X|`NZ|;Uz@nScciLD!4p0k@cy!62C%|&>2Yu^H{pPECy$ln7?gc%RO9q$AD zoJH$?cOJ;De}e006D2-<3kHh6?t}qi6Y=K)Uu{1BxsO(WKA-&iy56q6;OaLX_cHpQ z5Fl+4O^uKvyN;kGgHyVZ8-HHFtqJ6yocOKs1YnG5WWcG0e2!y{%@)i?CL7ZU0~*3;gDZrA1ECHxNB zogDxpWiT*zKzj&#RDQI8od{rSB!Oz3G`2z-EtTUXg#~rngnu6A;9Z>6BkS-Noeuw3 z8u3@40e>GF@aoYZe6z{{2{mJ7dzh1h*Ciz6>l zEtXuz=7|+?ELlz-!}0@vN*@uP$5zOnk7rGQEOMQnMKr5H%nf4U`)E~bQdy9^x`b^B z=uk2RH>bwS@eyne`#;R|gi-8nIU<^kW1=C0#mm-mb{Ky8;im(;iW&OYN0V3-*Pf_2 zKA3A(y zN+#rq3FRuxsgr8Y!x;L}I8Mx-!gAzCEldGCYVH`>F_FCy?0-4lptuse>+EIi%_bHHMd z0(^nzQyC6$rx+VI5e5mcqYMV1e!i6d2l9fu4?LbFE*rQ;}h4Rw_`INF~Mt zj}lFYdz6S#D}kV|66H5$NnT1u44=&MAjh%c3hGO4ILU5)fgCCYO7 zqn<}9QO0B3p;V%$%%w!BRG5iJi9u3{)4>dI7E-?T8(NblWdt6r`62FUQHIykTB2R& ze~PSunnL-XUecz3H}C;6uP*_}3j{%+ALtKsAQ*&z0YDEzK^Wl0ffK!*4K$TR^Vb5` zG?g3q@}M>Uvd-+w`{xmVGc;*)kB$Q6%$Jgtk5%`kC!h5y{K9~IKk1@^fyc%841{f_ z59f9II`Ze|_4TCXwW0MsOHrp~62CZL(oKJ|`%XsF_#>$!d5zuX%Nf zmZTe#DtG1{e>KKxsG$M&TEi6LuZ0@Lq!J3eR#t4BJ0);IWrW#Y}ht?T+%TTv0-efeQD|%uN(PhvwcwJi^MIdN&a#m_+LEsE7`1HTTKrU zEnDb z)BxZIw7?(8-w8w*1o{DPGQ|hV%m{ZOuQD0pVv!gM;=mAh!7zmJV7NQYUodrO?nQ#n zo&21g6<^U>^J~bL*XH-K%L-pIa4cqK+XIYmDT=x4aeVUxcoM7yPl2bwGoTSz0S3^^5v~L4K{I$3 z$o!umd=5MhcE|<2sX8gU4GBAV8SDhIqUU+bo&F8N4)6-t1$Kki_^UGp)W43{UhoEZ z6Z{tJ15%Jf5z3aNvHlJm1n+=D;9Vf+`(ZE$Oavjo)AKQRd|aQr!HAy#QgpK3pB05E zpUO3D@F{mzwmU3zho0spyGE<=m6JY6QPke)n0&ScOs6Pc7rQuknT%H{L+qH%?osde zVMSz}Xb~x8WZvwUNa8_6nop92TOM8JJ7mU7o7Vre*j7*f(m9v?tZgY9I07S1{l=)} zv=8DBHitJ=YwG(WA;qCX7~+nHxkHbb!jaB$HzLj87Le;sM>B#u zQy&krhpqmUno9oPilEOE;5)47cDKqWxI>SgJXYlAwjxDLy+kQuhcA1^?x;3X+Zqc+ zydJTv=cx_3Wzn>~6w(ZeuUiEtgHWKOV7ZJ{xP#dA2k7 zx`SB48yoyZM>m$^Kb)f|Zdo**&swFWNBD_tW5xC!3gCvtiGitUNvRpjCzMnzu6PP1 ztG%+4()f{WV|c^jnS4>hk7*$fnwTcKYMDPzTa^%GG9{&&T=i4Z_~{o7+_GvY%Tf5q zRR$5#L6PG5E*c{LuJk+l&7|+Kvzzy!-=DX-2TGCC^WWyJ-e=YsEw{XY-}o=^Gq4Rv z?=~FaOCXs4dPZb$J7OyMHFyyiq%~NJG+NKWE2#WNIM_snYBN1C?u ziKLOIG>>`lnvAtKYP`XxF{3@^8tyUUA;NqL%V6IrpY5E9-`Bj)%uGs2`?h&s(oN>8 z*KE0xi&>Xxo;uHmO(*N1JzC1cr~~?p+}<-Nka+Cj2z$hPACq;-c&+o^K#I#HoI#=T z#NB6idbd1}Xr+RYkFC??-@e5(K8U&9$vSpLu`f}d(AbXM$o|!l$G*>lK-d4touV`q zc|gC>o#F?mdj!aX{6Dx;{0yI#fz#j&=muwjXN~jh6z#p|yqPan0QvCXbK(5pi3t1X zgRhb8W7Zl%KHT##Scxf~ixW>`sr#>-^ zmiXDO1hyI|@Vjeic*t!b;!GOT31brT;pXESHOZgeBiluP(HTG?YDge;;V^a=jZ)Fo zUf#(7F5*MI7hHyRIHRTj9?*dBNi%^N{teu zK2%80`-k~&deLa(;YBKoQ?Z#2%@e?$&6TS{h;s%I<3$~lxHETuG#S8veq zs`Yvv6Jtmr*o&h44U1@;u{0wyJ>686Y${19O-?U2RwS2XRAwa`Q?j#DDzc2F<&~LU zim)7}pNnH<6es3%lSvfRP_!s$Ab+`pWs9Q=>0`0hj;;1IaM@pSL5sG1K(CNX_^<1gIgvJhV1V=Ls6pSBFz<1^J$oPW+A2Mvr{W7l2c6O>7^N! z6)6?zrblx3i4}ILlU*9cZ_2O>i9AaNEoJ3aEV;j|qCj<2qf_3$!RUoN;n+gqJf=wwXq-iY4v2)Doz+{D|V* z^8Dv?)jo?H>}C{`X39(}Dap!6&df^7N>0xxsZ2JNWoIOpm8N8tm6ulSE+q6Q|Uk!i%(ZW`VCpG3`DFzNedh#6JPs2bZyN1EeZy}cs33KKi0nj)KbqYwGl zq!Z@d6e=%{ylFTlyRhs=rv(ehSAFbtT88U~SCD42S(vD*Vi7mlTJtV)G`~TUSpbQ< z-k`3&(z0 z?-NM4|9%P=#{HxZRZNxo&MTc!d0RG=za*kgXXhygcYf80c>e%?@LM_%owu*Zq)}vP-(64B5)R>xl84TP@EK z<1eb?q;$lay5TqLPSXULh6|c{9tv>$6|biAgl(quz($t)p&Zp6sso!u5+}OoCn`Mb zYEAG}CL$ai^t?E5jxtos=afWZYB%W_Da{QyY5w#a1vxLx#HO=QF%DP#zTArX`xXDr z-)U_ks)HiLpU+d2YWadzkl1pGR;Vj4(WB(t4hn1s-``4qgM>paQML2@${p36SaNg3 zNAp>f8uclalCYfi48`Hg%&OUsVb)@NYuuyq&Ha#aM;S-i%|Dz#!pEQO6z^Q3LZJ^} zr)acFnXH$@@er1(rjBNBdo|ik}5jpfvSi6}uGRW@snRK7}ALCgm6Msx)>x6j> z)2lB`WLLaZcAkDp!B@E+DWU?=sAqBNzI=uoS@t>Qi8cdE7uErWpfbqWeXrJy<4DDeV9Sr zHI1G07Pl9%GU2#Pep0~eTOr?e$c?0E``zRvn-pIN>-Dl$VKQBY+&tU(P}=rS?z^cUl;miQP-BiHt7deYq y;Z|!key3ZtMPgnvnp?&+1~*I=Xjj} diff --git a/DevicePolling/AttendanceMachine/AttendanceMachineDAO.cs b/DevicePolling/AttendanceMachine/AttendanceMachineDAO.cs index 2be33f0..08cb50c 100644 --- a/DevicePolling/AttendanceMachine/AttendanceMachineDAO.cs +++ b/DevicePolling/AttendanceMachine/AttendanceMachineDAO.cs @@ -12,6 +12,7 @@ namespace ZktecoAttendenceService public void update(AttendanceMachine attendanceMachine, MySqlConnection connection) { + connection.Open(); string query = "UPDATE `hrms`.`attendance_machine` SET `machine_ip` = @machine_ip, `port_number` = @port_number, `machine_name` = @machine_name, `site_id` = @site_id, `status` = @status, `last_sync_date` = @last_sync_date WHERE `machine_id` = @machine_id"; MySqlCommand cmd = new MySqlCommand(query, connection); cmd.Parameters.AddWithValue("@machine_ip", attendanceMachine.MachineIp); @@ -23,6 +24,7 @@ namespace ZktecoAttendenceService cmd.Parameters.AddWithValue("@machine_id", attendanceMachine.MachineId); cmd.ExecuteNonQuery(); + connection.Close(); } public void updateColony(AttendanceMachine attendanceMachine, MySqlConnection connection) { diff --git a/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs b/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs index c5d52de..65d5f61 100644 --- a/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs +++ b/DevicePolling/MachineUsers/AttendanceMachineUserDAO.cs @@ -216,16 +216,20 @@ namespace ZktecoAttendenceService public void UpdateTotalEmpInMachines(string machine_id, int total_users, MySqlConnection connection) { + connection.Open(); string query = "UPDATE `hrms`.`attendance_machine` SET `total_users` =" + total_users + " WHERE `machine_id` = '" + machine_id + "'"; MySqlCommand cmd = new MySqlCommand(query, connection); cmd.ExecuteNonQuery(); + connection.Close(); } public void UpdateFlag_InMachineUsers(string machine_id, string serial_no, MySqlConnection connection) { + connection.Open(); string query = "UPDATE `hrms`.`attendance_machine_user` SET `is_deleted` = 1 WHERE `machine_id` = '" + machine_id + "' and serial_number = " + serial_no + ""; MySqlCommand cmd = new MySqlCommand(query, connection); cmd.ExecuteNonQuery(); + connection.Close(); } } } diff --git a/DevicePolling/Polling.cs b/DevicePolling/Polling.cs index 75b9900..c6dd784 100644 --- a/DevicePolling/Polling.cs +++ b/DevicePolling/Polling.cs @@ -57,46 +57,38 @@ namespace ZktecoAttendenceService Application.Exit(); } - - public List StartPooling() { List responses = new List(); + AttendanceMachineDAO attendanceMachineDAO = new AttendanceMachineDAO(); + AttendanceMachineUserDAO attendanceMachineUserDAO = new AttendanceMachineUserDAO(); - try + using (var connection = ObjConnectionClass.Connection()) { - //timer1.Enabled = false; - - Ping ping = new Ping(); - string mIp = string.Empty; - Int16 mMacID = 0; - string mInOut = string.Empty; - - connection = ObjConnectionClass.Connection(); - if (ObjConnectionClass.OpenConnection(connection) == true) + if (ObjConnectionClass.OpenConnection(connection)) { - AttendanceMachineDAO attendanceMachineDAO = new AttendanceMachineDAO(); - List machines = attendanceMachineDAO.getAttendanceMachines(connection, "0"); + var machines = attendanceMachineDAO.getAttendanceMachines(connection, "0"); foreach (var machine in machines) { - - //if (machine.MachineIp == "192.168.52.17") + + // if (machine.MachineIp == "192.168.85.202") { - - - bool Bconnect = false; - - Bconnect = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber)); - axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false);//disable the device - - - if (Bconnect == true) + bool isConnected = axCZKEM1.Connect_Net(machine.MachineIp, Convert.ToInt32(machine.PortNumber)); + if (isConnected) { + axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), false); if (machine.MachineId != "100") { + + //Saving the templates to the database + SaveTemplateDb saveTemplateDb = new SaveTemplateDb(); + saveTemplateDb.InsertFaceIntoDb(machine, connection,axCZKEM1); + + + machine.Status = "SYNCING"; attendanceMachineDAO.update(machine, connection); @@ -108,27 +100,25 @@ namespace ZktecoAttendenceService Console.WriteLine(machine.MachineId + " => " + machine.LastSyncDate); attendanceMachineDAO.update(machine, connection); - - List Newresponses = new List(); + List newResponses = new List(); GetAllFaceInfo(machine); - //Delete from machine and db attendanceMachineUserDAO.UpdateTotalEmpInMachines(machine.MachineId, empList.Count, connection); - Newresponses = (attendanceMachineUserDAO.DeleteFromDbAndMachine(empList, machine, connection)); - if (Newresponses.Count != 0) + newResponses = attendanceMachineUserDAO.DeleteFromDbAndMachine(empList, machine, connection); + if (newResponses.Count != 0) { - responses.AddRange(Newresponses); - + responses.AddRange(newResponses); } + + + + empList = new List(); axCZKEM1.EnableDevice(Convert.ToInt32(machine.MachineId), true); Cursor = Cursors.Default; axCZKEM1.Disconnect(); - } - - //for colony attendance else { machine.Status = "SYNCING"; @@ -145,36 +135,18 @@ namespace ZktecoAttendenceService axCZKEM1.Disconnect(); } } - else { responses.Add("MACHINE : " + machine.MachineIp + " : NOT CONNECTED"); - // return responses; machine.Status = "NOT CONNECTED"; attendanceMachineDAO.update(machine, connection); - } - - } - } - ObjConnectionClass.CloseConnection(connection); } - - return responses; - - } - catch (Exception ex) - { - return responses; - } - finally - { - ObjConnectionClass.CloseConnection(connection); } - + return responses; } public List poolMachineDataColony(string ip, int port, int machineId) diff --git a/DevicePolling/SaveTemplate/SaveTemplateDb.cs b/DevicePolling/SaveTemplate/SaveTemplateDb.cs new file mode 100644 index 0000000..a769c13 --- /dev/null +++ b/DevicePolling/SaveTemplate/SaveTemplateDb.cs @@ -0,0 +1,144 @@ +using MySql.Data.MySqlClient; +using Org.BouncyCastle.Crypto.IO; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZktecoAttendenceService +{ + internal class SaveTemplateDb + { + + + string empID; + string template; + int length = 0; + long empExist; long templateExist; + public void InsertFaceIntoDb(AttendanceMachine attendanceMachine, MySqlConnection connection, zkemkeeper.CZKEMClass axCZKEM1) + { + try + { + string sName; + string sPassword; + int iPrivilege; + bool bEnabled; + int machineNo = Convert.ToInt32(attendanceMachine.MachineId); + + // Create a list to store emp ID and template + + List<(string, string,long,long)> empTemplateList = new List<(string, string,long,long)>(); + // Get all emp + while (axCZKEM1.SSR_GetAllUserInfo(machineNo, out empID, out sName, out sPassword, out iPrivilege, out bEnabled)) + { + { + + ( empExist, templateExist) = CheckEmpInDb(empID, connection); + + + if (templateExist == 0 ) + { + + if (axCZKEM1.GetUserFaceStr(machineNo, empID, 50, ref template, ref length)) + { + Console.WriteLine("User ID: " + empID + " Name: " + sName + " Template: " + template + " Length: " + length); + // Store emp ID and template in the list + empTemplateList.Add((empID, template,empExist, templateExist)); + + } + } + } + } + + + axCZKEM1.EnableDevice(machineNo, true); + axCZKEM1.Disconnect(); + + + SaveInDb(empTemplateList, connection); + } + catch (Exception ex) + { + // Handle exception + } + } + //save template to db with emp id and template parameter + public void SaveInDb(List<(string, string, long, long)> empTemplateList, MySqlConnection connection) + { + + foreach (var item in empTemplateList) + { + + long empExist = item.Item3; + long empTemplateExist = item.Item4; + if (empExist == 0 && empTemplateExist == 0) + { + string insertQuery = "INSERT INTO attendance_machine_face_templates (serial_no, template_zkteco, created_date) VALUES (@emp_id, @template, @created_date)"; + + MySqlCommand command = new MySqlCommand(insertQuery, connection); + + command.Parameters.AddWithValue("@emp_id", item.Item1); + command.Parameters.AddWithValue("@template", item.Item2); + command.Parameters.AddWithValue("@created_date", DateTime.Now); + command.ExecuteNonQuery(); + command.Parameters.Clear(); + Console.WriteLine("Emp id " + item.Item1 + " Inserted"); + } + if (empExist == 1 && empTemplateExist == 0) + { + string updateQuery = "UPDATE attendance_machine_face_templates set template_zkteco = @template where serial_no = @emp_id and is_active = 1"; + MySqlCommand command = new MySqlCommand(updateQuery, connection); + + command.Parameters.AddWithValue("@emp_id", item.Item1); + command.Parameters.AddWithValue("@template", item.Item2); + command.Parameters.AddWithValue("@created_date", DateTime.Now); + command.ExecuteNonQuery(); + command.Parameters.Clear(); + Console.WriteLine("Employee already exist"); + } + } + connection.Close(); + } + + public (long EmpExist, long TemplateExist) CheckEmpInDb(string empId, MySqlConnection connection) + { + string query = @" + SELECT + COUNT(*) AS EmpExist, + CASE + WHEN COUNT(*) = 0 THEN 0 -- If no employee exists, set TemplateExist to 0 + ELSE SUM(CASE WHEN template_zkteco IS NULL THEN 0 ELSE 1 END) + END AS TemplateExist + FROM attendance_machine_face_templates + WHERE is_active = 1 AND serial_no = @emp_id"; + + using (MySqlCommand command = new MySqlCommand(query, connection)) + { + command.Parameters.AddWithValue("@emp_id", empId); + + if (connection.State != ConnectionState.Open) + { + connection.Open(); + } + + using (MySqlDataReader reader = command.ExecuteReader()) + { + if (reader.Read()) + { + long empExist = reader.GetInt64(0); // First column (EmpExist) + long templateExist = reader.GetInt64(1); // Second column (TemplateExist) + + return (empExist, templateExist); + } + } + } + + //close connection + connection.Close(); + return (0, 0); // Return (0, 0) if no data is found + } + } + +} diff --git a/DevicePolling/ZktecoAttendenceService.csproj b/DevicePolling/ZktecoAttendenceService.csproj index d17d660..7156e46 100644 --- a/DevicePolling/ZktecoAttendenceService.csproj +++ b/DevicePolling/ZktecoAttendenceService.csproj @@ -134,6 +134,7 @@ + Polling.cs diff --git a/DevicePolling/bin/Debug/DevicePolling.exe b/DevicePolling/bin/Debug/DevicePolling.exe index a858f52d85bc6cd2d2c45ab82026d5f944c28d18..95103bb1aa775e5a649b9ffb278864cf50ac5ee9 100644 GIT binary patch delta 14666 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 delta 11631 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 z z9*2y*4%X**q|apA%e=E>-C^q3!al=VNrvp*Y)2Yv3l)p;q=yVtO|Y5)KL delta 9948 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 literal 1449 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 delta 11631 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 z z9*2y*4%X**q|apA%e=E>-C^q3!al=VNrvp*Y)2Yv3l)p;q=yVtO|Y5)KL delta 9948 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 XTMlTK$Dx%q`zA~#L%(03SSbDjLlOCk literal 11 QcmeZu3JP{+WMlvW01Ze1dH?_b diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.CoreCompileInputs.cache b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.CoreCompileInputs.cache index 783f36a..9bf3c12 100644 --- a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.CoreCompileInputs.cache +++ b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -e624d2b121c7896fcfa753a70d1d65c9f169c918 +a4ea5cb743704c01c21ff9b787f6590f17ead844 diff --git a/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.GenerateResource.cache b/DevicePolling/obj/Debug/ZktecoAttendenceService.csproj.GenerateResource.cache index 83f0e74a22cf32cdedbbb53ca60ec6ded2eff072..bf27e7d700999e92ed456348e5fc339e7cba1713 100644 GIT binary patch literal 130 zcmZQ$WMW`oVB`tN&&kQmOV=w(Ev{e$il7OB6fqb3%lf>z&B4eh8Bmm8kXlrdnOYnZ flvuif>`CJ< z=wI>A_y>IQz5hXH&M2ilO6Os2GxP0y`+XVD_dM@61%Ejj8nT0_LnX^K7TH|c0)$9$dPR$(B!L+-V^pj^v zuP6Imu_pp1ds@u#4)7JE2e5=xLON4`Wdes5@cp6EfX$_`PE0k7)YJ+~{hg^m`jyT> zGU7m4m^outt%(y3xU^4z_9q0ZgjU}`t`(HazW1c~6<7J$kUPRQ7#o&2@vCb=z~?($ zWZ<2XA!xYCihr! U3Ew^*UH-iAn+)e@a*w0_2Y}iZ@c;k-