From 06d83ecbf49f064c21807b1051e209c4aa531c1b Mon Sep 17 00:00:00 2001 From: Luis Rendon Date: Wed, 18 Sep 2024 16:56:43 -0500 Subject: [PATCH] Se Agrego el backend del proyecto de aminusa. --- .../DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 164428 bytes ...1292e3a6-cce8-4945-9ed6-8b74ab24e6e8.vsidx | Bin 0 -> 7790 bytes ...1d537255-f345-4248-83f2-e13f4f4be5e6.vsidx | Bin 0 -> 26797 bytes ...f0735fb4-11ba-47d6-b737-561c9143aeec.vsidx | Bin 0 -> 106830 bytes .../config/applicationhost.config | 1021 +++++++++++++++++ .vs/AdminusaBackend/v17/.futdcache.v2 | Bin 0 -> 139 bytes .vs/AdminusaBackend/v17/.suo | Bin 0 -> 73728 bytes .vs/AdminusaBackend/v17/DocumentLayout.json | 150 +++ .../adminusabackend.metadata.v7.bin | Bin 0 -> 252278 bytes .../adminusabackend.projects.v7.bin | Bin 0 -> 944772 bytes .vscode/launch.json | 32 + .vscode/tasks.json | 103 ++ AdminusaBackend.sln | 25 + AdminusaBackend/.gitignore | 402 +++++++ AdminusaBackend/AdminusaBackend.csproj | 19 + .../Contracts/ICatResponsablesRepository.cs | 24 + .../Clientes/Email/DTOSendEmail.cs | 10 + .../Clientes/Email/DTOSendEmailBcc.cs | 13 + .../Repository/CatResponsablesRepository.cs | 163 +++ AdminusaBackend/Context/DapperContext.cs | 19 + .../Contracts/Catalogos/ExelController.cs | 129 +++ .../Catalogos/ICatChequesPrecuenta.cs | 20 + AdminusaBackend/Contracts/IMenuRepository.cs | 10 + .../Contracts/IPerfilesRepository.cs | 19 + .../Contracts/IUsuariosRepository.cs | 25 + .../Contracts/Reportes/IRpRepository.cs | 19 + .../Contracts/Reportes/IRptBookPrectacs.cs | 16 + AdminusaBackend/Controllers/AuthController.cs | 294 +++++ .../Catalogos/CatalogoRelacionesController.cs | 103 ++ .../Controllers/PerfilesController.cs | 167 +++ .../Reportes/ReportesController.cs | 72 ++ .../Controllers/UsuariosController.cs | 173 +++ .../Controllers/WeatherForecastController.cs | 33 + AdminusaBackend/Crypto/Crypto.cs | 48 + AdminusaBackend/DTO/DTOItemMenuPerfil.cs | 10 + AdminusaBackend/DTO/DTOLogin.cs | 8 + AdminusaBackend/DTO/DTORolesAsignados.cs | 11 + AdminusaBackend/DTO/ExelServices/Book.cs | 24 + AdminusaBackend/DTO/ExelServices/Precta.cs | 18 + .../DTO/Reportes/TotalHoursWorking.cs | 17 + .../DTO/Usuario/DTOClonarUsuario.cs | 10 + AdminusaBackend/DTO/Usuario/DTOPINData.cs | 8 + AdminusaBackend/DTO/Usuario/DTOPINUsuario.cs | 8 + .../DTO/Usuario/DTOPerfilCreate.cs | 8 + .../DTO/Usuario/DTOResetPassword.cs | 8 + AdminusaBackend/DTO/Usuario/DTOUsuario.cs | 14 + .../DTO/Usuario/DTOUsuarioTransportista.cs | 9 + .../DTO/Usuario/DTOUsuariosPerfilParecido.cs | 8 + .../DTO/Usuario/DTOUsuariosShort.cs | 9 + AdminusaBackend/Models/CatRoles.cs | 9 + .../Catalogos/CatRelacionPrecuentaCheque.cs | 11 + AdminusaBackend/Models/Menu.cs | 11 + AdminusaBackend/Models/Perfiles.cs | 8 + AdminusaBackend/Models/PerfilesMenu.cs | 16 + .../Models/Reportes/RelacionBookPrecta.cs | 41 + .../Models/Reportes/WorkingHours.cs | 46 + AdminusaBackend/Models/Usuarios.cs | 37 + AdminusaBackend/Program.cs | 164 +++ .../Properties/launchSettings.json | 31 + .../Catalogos/CatRelacionPrecuentaCheques.cs | 102 ++ .../ExelServices/ExelHourWorking/ExelHours.cs | 174 +++ .../Repository/ExelServices/ExelRepository.cs | 124 ++ .../ExelServices/ExelRepositoryPrecta.cs | 98 ++ AdminusaBackend/Repository/MenuRepository.cs | 35 + .../Repository/PerfilesRepository.cs | 107 ++ .../Repository/Reportes/ReportesRepository.cs | 84 ++ .../Repository/UsuariosRepository.cs | 203 ++++ AdminusaBackend/Services/Utilerias.cs | 52 + AdminusaBackend/WeatherForecast.cs | 13 + AdminusaBackend/appsettings.Development.json | 26 + AdminusaBackend/appsettings.Staging.json | 25 + AdminusaBackend/appsettings.json | 36 + 72 files changed, 4732 insertions(+) create mode 100644 .vs/AdminusaBackend/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/AdminusaBackend/FileContentIndex/1292e3a6-cce8-4945-9ed6-8b74ab24e6e8.vsidx create mode 100644 .vs/AdminusaBackend/FileContentIndex/1d537255-f345-4248-83f2-e13f4f4be5e6.vsidx create mode 100644 .vs/AdminusaBackend/FileContentIndex/f0735fb4-11ba-47d6-b737-561c9143aeec.vsidx create mode 100644 .vs/AdminusaBackend/config/applicationhost.config create mode 100644 .vs/AdminusaBackend/v17/.futdcache.v2 create mode 100644 .vs/AdminusaBackend/v17/.suo create mode 100644 .vs/AdminusaBackend/v17/DocumentLayout.json create mode 100644 .vs/ProjectEvaluation/adminusabackend.metadata.v7.bin create mode 100644 .vs/ProjectEvaluation/adminusabackend.projects.v7.bin create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 AdminusaBackend.sln create mode 100644 AdminusaBackend/.gitignore create mode 100644 AdminusaBackend/AdminusaBackend.csproj create mode 100644 AdminusaBackend/Clientes/Contracts/ICatResponsablesRepository.cs create mode 100644 AdminusaBackend/Clientes/Email/DTOSendEmail.cs create mode 100644 AdminusaBackend/Clientes/Email/DTOSendEmailBcc.cs create mode 100644 AdminusaBackend/Clientes/Repository/CatResponsablesRepository.cs create mode 100644 AdminusaBackend/Context/DapperContext.cs create mode 100644 AdminusaBackend/Contracts/Catalogos/ExelController.cs create mode 100644 AdminusaBackend/Contracts/Catalogos/ICatChequesPrecuenta.cs create mode 100644 AdminusaBackend/Contracts/IMenuRepository.cs create mode 100644 AdminusaBackend/Contracts/IPerfilesRepository.cs create mode 100644 AdminusaBackend/Contracts/IUsuariosRepository.cs create mode 100644 AdminusaBackend/Contracts/Reportes/IRpRepository.cs create mode 100644 AdminusaBackend/Contracts/Reportes/IRptBookPrectacs.cs create mode 100644 AdminusaBackend/Controllers/AuthController.cs create mode 100644 AdminusaBackend/Controllers/Catalogos/CatalogoRelacionesController.cs create mode 100644 AdminusaBackend/Controllers/PerfilesController.cs create mode 100644 AdminusaBackend/Controllers/Reportes/ReportesController.cs create mode 100644 AdminusaBackend/Controllers/UsuariosController.cs create mode 100644 AdminusaBackend/Controllers/WeatherForecastController.cs create mode 100644 AdminusaBackend/Crypto/Crypto.cs create mode 100644 AdminusaBackend/DTO/DTOItemMenuPerfil.cs create mode 100644 AdminusaBackend/DTO/DTOLogin.cs create mode 100644 AdminusaBackend/DTO/DTORolesAsignados.cs create mode 100644 AdminusaBackend/DTO/ExelServices/Book.cs create mode 100644 AdminusaBackend/DTO/ExelServices/Precta.cs create mode 100644 AdminusaBackend/DTO/Reportes/TotalHoursWorking.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOClonarUsuario.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOPINData.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOPINUsuario.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOPerfilCreate.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOResetPassword.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOUsuario.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOUsuarioTransportista.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOUsuariosPerfilParecido.cs create mode 100644 AdminusaBackend/DTO/Usuario/DTOUsuariosShort.cs create mode 100644 AdminusaBackend/Models/CatRoles.cs create mode 100644 AdminusaBackend/Models/Catalogos/CatRelacionPrecuentaCheque.cs create mode 100644 AdminusaBackend/Models/Menu.cs create mode 100644 AdminusaBackend/Models/Perfiles.cs create mode 100644 AdminusaBackend/Models/PerfilesMenu.cs create mode 100644 AdminusaBackend/Models/Reportes/RelacionBookPrecta.cs create mode 100644 AdminusaBackend/Models/Reportes/WorkingHours.cs create mode 100644 AdminusaBackend/Models/Usuarios.cs create mode 100644 AdminusaBackend/Program.cs create mode 100644 AdminusaBackend/Properties/launchSettings.json create mode 100644 AdminusaBackend/Repository/Catalogos/CatRelacionPrecuentaCheques.cs create mode 100644 AdminusaBackend/Repository/ExelServices/ExelHourWorking/ExelHours.cs create mode 100644 AdminusaBackend/Repository/ExelServices/ExelRepository.cs create mode 100644 AdminusaBackend/Repository/ExelServices/ExelRepositoryPrecta.cs create mode 100644 AdminusaBackend/Repository/MenuRepository.cs create mode 100644 AdminusaBackend/Repository/PerfilesRepository.cs create mode 100644 AdminusaBackend/Repository/Reportes/ReportesRepository.cs create mode 100644 AdminusaBackend/Repository/UsuariosRepository.cs create mode 100644 AdminusaBackend/Services/Utilerias.cs create mode 100644 AdminusaBackend/WeatherForecast.cs create mode 100644 AdminusaBackend/appsettings.Development.json create mode 100644 AdminusaBackend/appsettings.Staging.json create mode 100644 AdminusaBackend/appsettings.json diff --git a/.vs/AdminusaBackend/DesignTimeBuild/.dtbcache.v2 b/.vs/AdminusaBackend/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..7c91df1c760b9ef24f13539aa535f89e3271d46f GIT binary patch literal 164428 zcmdRX1z;S<_4he@3Nt4SI1bZUWK09HWXDPjiX__s1y*+}>EhGf<-oEWZpv-iG-;bM zGyKcU%*@P8yWKK=zc;Wu3um9sv+I6No@Va$cl+M(%$qlF{?nDoWDXy)CY#fD43y^= z4~}fPBXjDSX0cQlH1jjoV5QtJi{<)=S!)!{(vaCOGhOSgio+S}Xhd`|`_I6}ruy{_aUL--B=ax~F<3r38mHnCH7~8S=a(<>(DHnHHwZTfk$}H;3oH=UME2SNlU^{9} zSv9Mix9USyy*OPSFV0%MnbQPlureD5$ec7-DU~4fSaW*XsyD2{wn}Y#sbUuDnVfhe z-cZ0Rs>PDoC|1g`uNoO#J+Y;3)#?))n#KC!QL9|2lqYiK=CswAsG9lhCOAx(yP7pC zm#@^UiJn~VvRwB>sW>@Nwi*;2U=IiJFjpv*GB+>ajm3ghZWJ5ycsuzpB_>1c0ejPxZN15=R!hzL#EM*Bu19^*+K~}_ z&t7!n0$!9u6|-tnCdzzbIi!nw=dcH1ueTQR`uaR-#B8omGv`pJTe2AAuptg(Y;FS^ z)XV9bIlFjWu>|=Fl?Do#)r0!P#$vu!saK{Nxq*6hlht4)K2WXZP_d9Z-MO9>6E#Hf z3(DtsIEs6!QbSXlXDshslmgFYV}`0(p0$G9z+}BqGxO9Uc;VfVx(I`n%J!ngxzFzd z?xLkOQfE#5!!xPK_uS>odbQ20S5c*?^U0aPqP%skF=?4KG;^wcyy7~owf7M)L z4f{Q-i@Q?Kj?Dv*hw-kb!@E)|?&7V0N+P8M`%FhFrDC2p{JWA*Fb#c`GFpB;NBQiF zL20k1%AYvyNR{KdN^O>RFmtK$9kXgXtQxD+DReJN5pT058P`-QR=JGX7aKq#qe(4| z?55#EX-v1K!L!Dz)9oqns?Ap$G!3cF%;(rtsBD&4;og(NbYW2Cezi3}WYvm0{7y5C z84E2?FcE9;N*0~5q|mZLB2Wi*ck(44;<|Qc!z$OkiCPLxd#Gqmmn(Hl7BOgqCyFV| zk5&GZ=P4(7y=9gfGlMf$emigNwDL%JNkGX=VfwQkrHVxjmR?vDvCbrg=?^g_c9E(y zn|!`X-ju&-bXt<1m;pqRoWeY0ePgy1&FfScH>y#_ccxIt4KRj!%bSm2Ml@R~v-+LF zgmZnEJyo_8W+RL*@oJ`&#i5ZXjsA+VcAaH5pn2ncaSAg_makA9HcMDEQU0bdwutGAVR{jBmBLc4xH&EgWCnr;)u#uD7j_9zWhAq@b6jY^4>?K)GCL zuoWg}T}-}bAlB4KQc5Lhqs#{8-u2v7bum5JnNBJd*4JWoNQq8iVnq2H=$VLbC7l$H zn!75gY2YZKjNu4v6te71K|4WQ$Ia>WRtbB2oNG#jy0vJ{1!iTG+75R!Dpjj&R*QV^ zY`MC%7`u128SsH>k>zm;lcdefMzz_XjchqHOJN2vYBsD5#o3}aif>Q8&G_vlg2Vf>dg(8a*lneJYj{*oLWFvL;0o11U^k!ZM^Z z^m%MU*`9*-XVjXj6&vZ*Ffs9t6mA+xRVMu@j6FiXMax#$P_Sl{!e*l2Iy^kaIHs@* z<8!1f80^N-h8JU=!lY3!zZ$((%_{k;fb_~&vZk)$z7)F2P>RQEW*Plvt&zK?S>$u| z$L>oh#wz*kmQV_%(5AFKKcVHkIH`UwhWAEmwjwMtpG~98 zLh{%0H|g`0@>FrUDW(dhvVT6Y5(auL?DJH40xyV6CetX5fCOub<$}<6CT0E5GW9eT z!47&uvCL=jB!G@`>8L1ZxOjY0^N*HUu(rIT2>bb2wA-y_t!PfdCYd$M=WDB^Q?PUP zYj8(-L*t8*1j?$Uwwx6<*z{G}+Hjfcg`S`-V{V0>wxjIu6ue2XNIq$_{MKL$}|077?7hsgmFYSa66J zM9Ly5vz(R^U?i_r>QWn*)T*l``?a%^R-s@OSf}{3y%->Z1q0*UI?mLT+8iXPTlNcO zMEsb^v^Rqm$;3}QO_wT@lh~?QfIR#R)Rp3gOqLX;n9@)#QZbWS{wp;@@}@o^DLXBd z9T_nZucUTX6keXOi)S*B)W$*_)3F9DBlzSrg?UF{YdKPnl2SS-=?(}$1)M^=kw#*X z^d_YY52TkHs0C-;l<*WPnM^pC+@{c=BwKc_nziB-Iw;AMvNowL{g`rHy8~-X z@Mg(OVb&^>$@q>{nzcMH))ZM|haqn%tdrWrQgVCqB&`%iDiv;r^OzK-=$otjoK~RW zDk4!mOJPDN#fUTaN}*Lr_LN$xVjb#{;2wcYGj`x)czgQ15$^}AVI`&VSIQIG@U`VU zoGl2mAnKkMl3FY}m`8$~P#5>-`d8$7rELx!LWcVQI2BM7;r_(K*Bd`$q0{UT-<;)Z zRcGs%WP{}@=&gm@g|_5Sa%Cf4!AjuKoys+fEX6i~s?uE!#|pkqH@F&;d9soHEHYv< z1w|*t!o?un)SNZhsBFjaFnBmYe6J7EII<_#@ArHDPNeEzL^X^go$Eph4;zEf z+R~AA9>5cgvQZV!4_k!7T0;cXnr7N9vW0AWZY|cEW@(KHMT>6(lTVscV#(Q7Ecf;1 zLX(22B$C59jat)1G)3-lf>ulmsTuH|17W#t$)e=}xd2k?M$pL!XUG*wY*Np40bBJY zZnln5ALBpkAgQ% zR$8Ak>ob$h{C2E)6(=zG8g8#@7-*E~2bIQ{f>&G=;cLRP#IPs^357tvGJtbqCF`pGwNX5*1mR>oZ;EoW`pJNn2Sb2G(K zqFFaqweoP`2bX$$Kcnq4H4Df_;WkLDT|$Sm+E%=E$}mnvpmE6e>V6=VR3j5l85DC$ETntkpOt z7X_~J@;4Opx5fY;&zX;+=5Bj zRE7068rPvQi9r&yqyFiFWHD~?=B~dPl6{fy7G=;Z!EVwNi(372!yq?mDsAsCwq5u^9-%2v zds`}^Wy)Qe@lA1}=i&UA+Eb7fBn&Y8lQe3S2hhWJREx-p6F zfzrd%l1K&LQpTAr6n`PIrK?{vfRkajv1-<~lh(GY8GAL{eZi#FcfYH@k7I0bDT|5Q zOt^iD{y~-TxTc8jHwg0x~seD5}SAe>Q?G1ajKTeQ~M?g1_Oipbyi@Y`HAE+o5o6K1Yo@pv2 z_(~KWJ@ile7$d7Ohl`15Nq#pWz+oAU;lKx>h&-wLbyiqJUe zZ!O%apYN7aKIxxWWZ zifk7`+Fbp;5=}knyi*E6(fmc`D}P>BU_nsen}>aZzQs0we7;E{jNiJ4ke{D zlt1t{!Dd7C+?I0PoZ@PywvQz4Jy&j^JjfEOf3Hm4T++W5l5Y>y_yoFpQD*Dm&PVF& z^iTI>a)gDyS23tBY}*sbf@?&W+g0Wcb1YvgR(Xft_F3q?W-O8)UTh{;ZIE(YB?QZS zK7G?a1(gN50T=st$B)QHi$cyjuG8goeME!Q7 zvbch5J&jaa=}dmU5L=Ye^^kr|lBZIL?hxqjsy$|dC9^0l(9~aYJ{R?_!GY2=?kH`{ z2)6pCMDc6~#dT<@@vHOGXZkyt`1Db0*KgV!&x;*BmWs%>-Eg!$_Qf-$<8Nbit}(uI zAzK@DsjSPZ)v&rfA9K80>~O?OFoK`3DPUSnCDh41b&-Z-!?FW926#%MogN(43?6OX zefs5ZJ!9RrU6Sl&*$Dfa>IdzLFN_^KVH)u`BD!RjG;f-%e_hSqkCVjBl35FzMCk9A z#%JI;fK}7M858ahgmJh=r`j^xJVsRG^jj+V389-7OUzt}6@T0F%!Q0jKDWpXLJ2e` zFYCt5Ixb44QGcpbnPbV*zb5h1#@SJM=^v-UTw?kNy*tujh5<)jujs(tR$;F zXXrV*O0-_!E-9|p*1xZdqa4sIv&}a?V@aUTQ&}+2f~;`#Z|rR~OHFIMSrzuj`YovB z5U0Pe>CNO*g{@h7!u|RK5&>WIp&o`@-y&e7M!iY^!dq`cq{s|}X zxpt_Mhssx&(CDwPjK^##z$KX+11Fhjq7&3VSz@UfF&i_iW75B~?7u%)E*g!7MboC^ z_bd@73X7l-9J9n?2)n=*ykB5jHnaZ_P1b6e{o!*CuGKR8uN@gFHS3wK6}i4#Pv+v- z%P9w%jT!Qs2Q37dY2ZN48q368!I}NZX-;o<=9Ji<3D->=)w4WvqK{&_6z?{cOc%Sj zC38f`olItb?s+D2e7yIUOc!$#lR1l7Jnq0kjwRRgUXM$2hO9a+MHJhOV*dV^K1B7<=*k@C0S&jNJ@+#-L$hh;C-lszx1W{de+ zg*ojp>(#Q=AU}dRGx%zpzM5o3$IeNj&M69>F zdu8U}rBlsP2}V^jb;Qe+dZPd@Qx|5AS!&g46}ZHqTj*9-YcM!yWDZ!$UbZ6hl>L?# ztSKA}Sv@{FFu3-Tp|xwaTzLt!nM5mY?xtXH^XS@vkr9e6ySe-3&7(J8i7&?2j?y>F zBj4axA&huIPwNLg@xSP8^^4w{TmGUq{#AXgUeyiiD#!pxCN%P0amp8x~}nH!g~Us8v>dP!Rq z$K2IKTc!q$V+y^BXDo^iu!n=x+A*bAk|}lgdU;$EEXd)O@J6bhgy5XyAx+M0%YwND zx>U)AIP(6Pzjl1VuT}e5^{u?i=5M{V!?)&Oj%?MY;8U4AlG5#IB6mn^!GIY{FbL;W z>y%eLaIU>2KcVW8hr(IW-xcE7)}me=h^o~bCJStE=vg5zQlmur{k96noB-zk@V~~^ zEK4#^S(LH>!O<=3igron3Hw%{!AfPjxVdjh=CS))7TH1EyKebq z3I}VDH?`$$_;Fz=lWtH!X*Scun@e)fK9B?k3%fj9o+X)mkr}=SBb8DyFS?m0rJNZw zGpm#_rsE_lO2ik6RpmR=?ei3282kJ7U1pHk71J9o$vk@BNkJQkTsg2LlXlmp6oya_ zF2UtwX;%p5SsN>JR8Pf+JMTE|PFoln@zlmTm$m@>EX)#IX_+!-)zF5`2662)FNFK| zr6{;LaR`=~JCv?G?Rgrl^)Ymk4Gt-gqO~;bb{i6ib)-*DxsXCK1o!09??zPrY|#Qr zd1avr!wM(uPE{2kaQh>ZCcL&wcv{GKrac3s+vMPa1nXX5VwC<2P+n*kt&Y3W?b@Xv ztRT|vJSB56&xvM6+HN|MQ=Wn`AsFLF?TfMq52UGgoOCaydSUL8Ov;mRRsh%&YnHgn-zAxphi?)C7G1VK|M^q zB$M`duyIE|W{6C?TV_&Ji!iV)RbV#2hsLza0XZ=U?)#Ft=!w$a2%zkz#pXcpwu>d1 z9qD#SBnO)o?28Ogj)+Qo@+Fzaq&z>N98d%y%OI8^`=VP2^pH%7JJPQXqvo!P=nv9X z0Z~~n_TKT2^wq~C!?-!U-YUT+OY{!=qAqMLT64h}Yos(f+@A~D|Lk!)P8c5XR+09k zadWd#Z8iqY{ERnQNO|5AKHsn;voqZ`skFzmbDy)82klvhl=hCJ@S!(kRj zJWycqh8@ScB`af8&5`yTE-Vqtmb3?QPl#~&q^u7dwdUwT5#CLuUQ5MlCR!)b&INT@ z6&WxR)`<&kC}|pC3B^ky<(+sT!tn4IXP@?lqtBmq8*!ho^un6Ht&tGrY6~~A!rQaI z(Ar1ULJGoqsRvT-yhEA64q1_%ZBDv?U6Og|e?=t42j-GY%KgU}cR_n@Y;mlU+b1PZwqR>++O!wYZK9hg-b+7M5gE9!Ow1 z6ljMj*F&)9Cl5VS)yN*&LRNp1`4TREnup^J-)I^p(=eKb+4}?zruZi1J&IlN8vKl1 z9U3;I-rmU)h)yU}(5wd9uxK6}n=xz5Z&7r;wUC4tVh*FoG{fhNl2+2j<-FrhDNZAm zy|LCyi&VPe7)kv550+$J5gs5HQV^E!ES4XiX^Od#shGz_JzMw&!m4oW{Ed7;bk3d1 z?7yWvYv650D%77G&axzC;4LMgU2nL+#6exLEQ*MuqXauDG&a0FW1r^E+VYNKtx~2l zxm!(mNyITAv1WNqSS}sel$(P4Sico?lxs8`Dy7XbF%?S_g(=J`aQIC&zTq;voNYd>_4@h9tEebs#tgdYKVA2w9FzaiG-^Y^?trQ?081q)6}N2#BG^5YiB3n zfYK`P-tYzCcGlszA1uM@%siY{o252K{9ta4h#zwSbq%s4AV1PNjk|Iuv9-1U;rJm} zx{{WD$OTJ##x3n{qm?@ib&XP;q#&&ONyDa7UQ2xcfZDA#|*2C+K}Xos$zvEx=w3^G)rU14iaL3&{v9>)@gVH+BmD zSpB*F6*=#c<2)uaaBl|RX3ExtKiw)7@nha+yd>OK_Cko9>sYFQ|EgS{G!1M^ zC?&%-;uT!Tr|A%K7XHAoeWmUbEQjYe?A{2EKf#r-%q{LDJvtSMD4ROTI4%>ZC+Dom zMrFHICND(o3PsvU)T(jzJDyXKsaoe!l`3rRvjBPIz{Hw)M5WWYBvrYOyZ~9y<%_*% zCe17L)gVur99h5?3weG(up`;XD0aAjaf6N+@)C>~u6Leq3$9RVO^Td_U634=T+PbQ z=b3Xfeib{J51F$Qec>BA{H}U{Ia^%4 zP(+&-ew`u<)rHipIhGEtX|!nRMLt)R+7!)JLnwZeWK>@^)&nnV!Tx5UQ~qfZdh~pn($nV z$SP{j3E#aK(^h$*lHfXKE=)ulwYS1Fiwl)y%P>0GJk!sJKCT~S#YK1upyF!Nb zT*XlB)5~p5a|+&9MXT-TluX+R6V9~d>OJ3t(^t7NnoTs3Drc6b9cleLO6c(HY_maj zD!l5Xm&2PXWp8y3&?HZRZuJ*!>4m2qoLjg#P&wX zsUc?{s{u-Ax+6M_kOZu>(@iuR`N?a3fmxpN3fIxbey63bMcvdXbGi~9T{h<9@bbhH zAD%Mku5*g+lQT?qltAkIeUOBvU0!XL+mp$T3CwnwtSzOFp=7&e#*Y4sSq(+)#u{s~ z8Ok`PFzTshJ~V;BK7}+{OK24&YK+QQ*(>Yl@I%{OK!9n{oTfVgig|TkrlSE@^$On7 zL}@C`LY%BM@;JIR(akRC8Sh{NjADw_>xa$_No^6SOYhtu#GsL z;D{PgZ+EY<@XVMj{s_PfRTvN?;@ zR>1W_Ih4>gloq@kaUaC2iSg5{mwTdyexek)4;;9w28cJtWamth-?%BJxgCvhZRaT2 zE1D(gJb%zE;o=xm>MD|*VFy{WCfU(8eurrd&k#GlWIL`P>+q19cz2-`^ER`AE8WD%lmt>NiJ}`#YG;x8Oztt1& zf!dz>a}%Ci0m?#V*x?x(s{6)buE1*zb4$v5pqWHRZ^4d@XjY<}$Wn)~Nw&3n20@Hh zvbECV!5%3{U2gPo3}CE37!tUvq?)N--cM&ku+AoA7ohY_yVZ`DEr- z%;OF*_z&V;X|l>8sxblgOUd`9u*V)$%6}!m=~j6%B4Z zE(zxxL&Z8SOwZ3KwKiG9IfXY%X-A9Vwin|Hx3xGL#k+xI_ngBlhc_?_FJ=CbtX3_| ze*&hNowg0&%}~dO)Kdo)28rdM6#VEP3D_5 zC~R}1mgzZVOFF?mPafOIlrln>m{x-MzCLeCojDI|zxQh5K;x{%c3YrEgoi0MS*+)_ zl(lb9q?}HdOp>JmH>H)b&krp3Q1p!h^KniCWHV-j&H%O5JCWGdIzI9kM9nWNq(d z83$$X^_%-73sRme#Z~~%O=7b9_?}KFW}7V8amC|2STc*VqOv7i+&)kBiui%jbOm~~ z87V}vQ^j~02BlNAeZsshPEaS?)5WKpb+HMbHi_rV{CjxX@Q(a;wLM*qmw*m*kJZIi zM<<6Rxv5`WDu(lFwXSZ@$M{+i+kWx#jNm7H(!5U^Vz}RZUU-hx_6}%^9Dy|$bW3pl zNIRo&AQJQ@viq!&zx7W;L=KedodU)e(Y4FER}JEvP;mLd-W>2qW)J zOm<_(W1hky%j1R0h?^6t(y2|d)1VlxI2d23%!%fhQpe21u;9kS>lKroZ;O>3S1vBeJG!yQ5*JtgUjsQlKnDU{zs@)4JcK(-%2!;28v7x%D#H{jMNu z)|8S}@z$jL*Q=53BTpGbS7&$-_JeT@oY4W}hpozsXul`poDC`w}ymOce1sG*pQDmeixgtmq~UPDKObjHWNL?VzO&CVw0AIIPv0pz3K*NvS*oz zXHaR)8hNr)cw&0(P$iG;32Bm-Y*SziXG=kr$!9Fs%Dk1mb+YqHmd+8gF~d8}WUWDb zW}&i7=)8vLT*$o+Pu>Ab3*-_0!pspovbu^(ap~Ma=J2Ic*ht5b+3E7?Wj(!_gO^s| zEqk`O%epvo{!&~sy}B}a>jd+WK^I7pAGm?SY_Z&|n`_|F0LN>IL#B@``(x4g9@eC> zKRRS-!>mnPjn&ppD|6V=IkQ%V#I;(bc5&vArOn3FO1!b!Y%r;@KLxh%T~N$lm^o@` z$t+J}j!tJjSNFh|W#;LNmcjs|G{4KL<(Z%F)k_9fPsGmN>V@rWHP_qSJ26(+URQiD zL%o~BSGiGhSEV+=#j8)`auXBW$m3%8qqA_OAx!Zm7-o!Fo(Q9=N-bBTA3{CAWmuBA zJ}lK9vs1ha$9u-sG>fIe+CmZRa1;^uvE?lGfxkQhb)>!|Psmr*CnkyQ1ZTp(t{3Yi zcy=t^yyE79HDxwSjT~JmW0qtxcX^WRRkmXwR^)&-+xI@JE~Z2|3su=&Y4YBTUaf8NeQE}f>WFbhVdTWcsj#{Y34<#aCP+>^`qw9b<%dNVbi+7Qm6*p5o8OdE=mHM2G!D-FES$b_YoL-8e*bgrls zCPs@EDkG(TZ9iAkek$mWN#<~T)d~G>AlS$3OHrufSy$XCcb=ZwNnHu04(6iF&rHt> zzq^lZP|EMf=C49t6LG>fm^lw8ERome1RJ}eIg+0By$U3Trf0V!Strwx=xoIAgp@pE zQX{>w1MzCxyt(%_ijN6@X8!+E&dWZJgs&Q$G zN7E9PaWDH{%eX*C@10<|e_x2HG}!Q!M4IMs(RD+#p^7ocKMq#Ug*^Ut^V3tm z!JHya3=f(O*tw$ztg|buN3CiF*K1bbz&&5joaX&v?JQ2xP7IB29>da%eW2%O?B@BJ ze4ZdaQ~%WyyJdPJNr$P|#1L(i&3>IWzQF&8C8|t^jQ9@;8+e_}lpy3h|6_e(n+1gl?zzSaH*eM( z{v&$Xk%P<@X@Upz&55XnR27FC)+`kn7nq(LA)a8|ES6R1D6Y<{57eQJFbfryk?bW@ zcf>Y+eS)%@eseOtB=Ce606jZ{p2B>Wa8CTI*uDZ)f9P6R%gZrqjZig}HPmaPyv@>kkM{Ab zIO)5?#dlNqf9)^jsX63H(lo>(a9W2&e6z?Mj zyiW}_Ny#siR#rXxl^+G_B7Gp%LJC$GvL%K3)Z@HXOOsGCcxSnGbf_mGzP)?aj4_qdmO2`6 zJqO#Hdgk)TZ*pSYjw=x^5?*F6-9fjJ4Akq^>||+vpaEm2$tD@n;RW517lgH&@^{QR z7JhNMs;9hg^`deNm37I)r4Ef&bMR``< z3teRgO0!J1QEOV6TH;(I>axsTo%7V8A zt*%TzFWciZIA5>UD!1m?j`TJhog3R;ta^QW<}mCkm5TXdgFVljKtTgz{HzX#@d-B;c0vf#(*%HQ+Er@ zbmiFV)@qSEvqogeUZg!U(P{wSbKCdk&;DM4w097e4w*p>Z_gYRd4J}>oaAtACt112 z>PbCyM{nL^<)Swq6Rsrm8Pqi($_&%iM}H`&-DssF?X1;c&yPZ6e|<3 zgz1H{85hr$;cjk1Se{G_^85BC)}RHNvxVjTiaiFQ;XP46#8TTU<bS#_OLojzEwaV2>PlDFHD%%^+{~tdT}|8?H3(JaMT@1PpeNUh zJ1=wH7cCxyi3^@zTDF={z?UvsJkp#*2Y0nK&%E1Tx~g|Ye{avSRaQ^0)!(0AnK}CQ z^)PcHgR*tC$}DL-@624oc}Va0Dj(8Fbi(FRu50&S)k`mG=T+q<>g@2^k&#lf?*Dv6 zt}h4csXZsyGLhP;f@!W;iHO;g8RxIcF_VWW6PfJ4bvfSI)?3ZxtNIHorurtkS9Py2 zm-l3@6>k-58gVU02XF4}>t0#tTh_mPResf^neWcz{o13gcVLZ znPL_uSFKppx3YH?4wzcYyEBK~K5EX9lWp=bdS|8{&l9@=*wvuZoU|-duddf2L%AKM zgV3QD)gtRW&D-1Kr?#`snN799Oh+c()&`#(Zn#)uLE~Nva_nuZJx1zIsU4P^X)7tn zt}|{{OK$Ltu#4499c)@B%43rosi0@o()_BiiBebM$UTp-j`U6Lfujx{Gkf5XBL^-@ z@7sCnD(;CBY4gL?y|elk-;kA}f>v8c=C!I4IKU{5>geu&3oSB{I$V8KU73j~!x^SC zS}MY9d>T||6Kvdv9hQzls_mH_W?nw`>nWN7^G z737oibrw2U#y2$eECV7btQy$6nXEJG zGxUU7YIY^QtZ?uW>u`TS=8JnBWfwnlqLZE~LmiyrhhyTTR5a?#!PE8_t5bj4dYZT!rx2@>e7(5qqF5- zi%f$Rdr%|Wc~#pj2Q6(fUhzelMHB6Tav4^q%o~J`I&ed5+XOQmFK?X^#WyS+u+zcp z)>bKDdJMC{9MR&$v<_aaTaMZr=-_0wOcgVB(7_^p@ksTJv0!e+lI1gQPOrC0RUEt4 z!KZcMY%N-II_DeleF6F69HtX!>$0|b9G_R*CP;XP){%<%b*Q+)Yskv`mqzR0)`-tDeqzTGRY3cSDt^4i9GcDv zNv=AQ7e7LHjP&MZ{F;8$nuE_~Ww*BTxj~Dn!RLh93#mnN^vyuy2L_>ncJcLEu)ErV{=+J1o09IfoCGr+iE767MWIA_ z$9!^hgQ5<$I~T@Q+}Ngrb9@UM!wv45s!5BIqho5NQPdBzM$wUw`0;(rwAP4#b}9?weXRwPLELr?9Ns z>@zbrMQqB1Pnb53ufP-4Qn--8v_bLMqF8z>OKe)e=f-X;@nh4z@XR`_odrT~pOs%R zmG3Pqw@kC&T$WL$9KOmnm(;va>91nA@hiFgRCPX)QZ{Z?KFkoe$w%oH)2Ws1)~(1= zt3^%*c*0;2_rU2$p|X?OGKJLtbmN`Zq4-+cioK2mE7Kk&cXjF+}&>?H2ou?jkhtsQlzt_=5a85^Vk^@*ulTu)G%ks+DxEhuW!c&)y&Z6@gpsX*Iw5cq0wAlDsEq&zauGNah zFp#EcI$Ri>-RVeNeD#ot!(_4!7e+c5#aDO9h_&}bo}Z1csG&)OYWTY#I6 zq{L63WR5XT{Frd^%%EM(Tl$zOns+4+H&4<;l&;j!k)XNQ`QT=F14o?>wj*B#9gO2= zFp_ZswiNMIUNF>=qWI$SFFW*kbUt-Zbe?{3(1llP>25MjTlC6Kur~mPbz<%2lzI?k73sqFf{8K~ z1(|rde7{QX1slcIx&@mY8Ep&~gt@R5rb=TCGSyf}iavIDGkodf=kp~}rg2Ryu3xmw zSwAtT-Rku)Sy5Me=CK`1*= z{5gEo!wY9eXVW9em`b83f?~2nD6=d6l&ekH^jjJ7+AfdC=Hk_}^?apPDk|qg``hg? zCs(X6m*tl&?^)H?Z*{L+mD#E`Pg%<+d(GvhWfd~!*qm9PnQZ2_&Wmt_j98o&$nyO^LSZVa<)X1qazKsB$@^q zv2TtF?mNNPk%U_lO+vt5emm&~*-GWh$|{u^Q#NB&xE04Gal1O& z(ut&}lxXQF!muMX%$(o{(xO|9f*$(o5zR!e=KPt^E))xsnJ$9bVo(NSWzCEcC^60@Xj^OB|*JNap8yKjhedy@&IMG=t+ zFQ=I(gbp{?B4X>GW(wh$z?;0>Rt>h>&*bnTRpa7Mk&KBdr;yCzwPQo}NdD@dLMj3> z!R4%reNTVJtcJf4(n-}0=eqt`SG=r&Dnk$*!t1XxOn7zjuG(s$_A^%@ovZ;Pl}G>N zJyukf?>C4Bp&~lnTaP3}qspz7m@E-;;0h$7Xik^O=}x}mZRm&+O8>yMJBeA+Zi-1b zn~-#7GZ0CVFzU*wf{?A3a0yGdzWB|tb5%@L`!Km1fmz1g7?W|>t%ILdEp1ezQoOaG zEFoS;?^Wn}4o7?P+nJ4pj>1WxqmPx9C1*A!x#LjyZKK1jHI}9g(D~Cf<2ur|Gtr9I zLU5MQxSn+!wklexU$Q+b6O$!EDnr!Pws*EYkwHSgGNgsDEJ1PI0wpM5(As%Fmu$Bn z1Z4>s=IzLDBb`sL$F;W+nkGpFhVWqx3#txJiAKgOxgLsm$8J9h!e{IBuZLu^DJ$ef z?eaT+-R&1&=XFk8DuGksvx{ly_U?-BSWOU>lU2FvWY;}kHfOQb-?_7jNGDLxUImAO zLb3#G6$#*8eQ*|`UheTrplw^UNQIP(NcrAzvy-ta@>>0iNJT)FA+mcXn|@MnGrs~j zm07}3AG4zktw_o0@7`Mo%Mv8@JOPYf#GN-X{d%5&h)noNQ9XlC;uiItr(;%oLu(~1 zOOn)+##xq;|9HP>_QGsV?xw-Cj1-(WoVhxIx7_5MK_g9RQe3;+0#pOW@R>u^f+E5<`9@x^6{l1s1<>iS}pfPRWPFB|b8=WB}o|&m6o&3 zY~*o!y^e~O$bc9Xl_f?lo{-{UY=7YjzXF{>G^ac2c*DJy{>4*NPL>R*$i-uB^}f-p zR;>ahT8l=gm_#=mk(4DxE~Ai?kz&;WNr#R6ITb8tWHj6M&#E&wF!vGgqKS% z_T-u-?!==rN;)cy{-sw?Mkc=0Lh%O6oN)WHliht=hZG~d@`$LF{I&iY+wK7(Z@fW! zT@*>CE^MO^7w5EmS=(P~hI=b7h$O;WD{W z!rc=c`3sHIcm1>XsGKYrQUk;uTaCF&4R?r7;oiYcJ@H18qJL@{FKeVCjcD5XOr|1{ zbWCJ9I8&g;OcNXs9gLc z@YqJS6RIUGNt8Fu5M?^{IW zWclvRp_}DKan{PMhetL|21g0Zp@TxQ1W2uxOrLP-Dcin|CZS)e)k0X7pi-!@hZ2;# z%G_a&*XbyHiVURDPE1aJPY6sui(#P}NRtuN@+q z%jCKZUrv?`sq&K*c|%3lTu#5rFDN4u-4^>Oh!XevLtxxQ1K8Q z9&(R+bz&jrAad zC9^oIMIWbs8XFQa(2o3PwfSnJ0<*&E%zSR3G+lv-!i=62>F)veBz2%2#e)ac3&T1e zef77amg2UPsCp;23#8CFv`AFF$`U2#7O^NDJ-Pn5MXabSG13iaJc3;YqshQczoW_B z%gmBDE!I)-P`WK*tlo(oXrvO>v@e}@D>6%*oHWHFN4Bf0rnbE^L{cVapDno5ir7@d z=|wH0Nm_kxXbvNtDz!>trGc$%s}OXqx4i931Hwk})!kOgYnOGe8icdZ;uNl=Z0O0? z+f%BYVcA(Vl{3Wn-0f_J7+Kp(GZo3i?}yu8`IWk*!b_+H3MMh+Kv6e@FCdItSVx0vJzd0Da|qddb~xNJ$&c$nZQuZqeNBQ-i$ zR+B|6cV7%cuMS#C#J#tEjZRofmISF&6AvT42s>})`gLkS8JYM}5l=4fa&lUQy|{uk zf>WYO6X|@Qmgcts7JdnL-j(P#zYU1U@<-Z@1)u2MHqvi5)=FBIB-y_QKy|W=_6w!$ z(vA#xV`37)-X2ttb^g*oEye9o&5~Kue3DlGb`i^gsIb8@n86)+1v(5fIAfN}R!43m zBW0j}j2(~2$&%p}wtVc@pw651P1+}gzVx&QEL}GE-)@Ez{1WrqphJHBE*s(`W%)1l zfj(dqQ}YdM>C=&BCQ_BW{!f;0ZrrSIud`#wQ>DtBjtonn|7#&F%QUHV^fQemNk>Zb zYaK&EvINNWb@Bc+=(!D*d`C)!NMDt}geM{=ONKmivDGX!t?_16^&>+0-_{M@5%Kk( zx$xybR~ncU>)==k(&Ql)fEWI6oPm)vgtf7wbq zEG0{VyzYP=LVcvySV{kN2N5w@BBTb2o?bgt$-{1}qm%cM$%}psR6s-~yzCO$li89^ z@%49!At57G2+w6L(lhZ&rV0hbWQmZP4wk?XvoYg$KmSXb4o^HLv^*&0f2+0j>pv(K zBPdJACNW~s6_b9(w>?Tl_69V1`%@%iqFx|;GYnR$^W&Ax%|^A^7%JA-N$>gLhBZ56 z)r-^RaZKtnBV5yUD<0M-aIN|@6oC^1h1p`cSvS|xns%|wJfI6*UF{fErF-;cBK{nwxR|}I-cJ$@p z1G}0v3wtp5L;A|2`Df{CpM7`m5Tq8X!h_e2jFg&n_Wf}p&dm6yOggYfuQ*A3Ep+qp zA`p7iv$2@3RqB`x7!+8K@Q+zdKO@wxAx? zCpI*T^~Iy8$CdI#uH2lq8WVJX3GFRS;Ia|Hc`{$hne}<>GUJx`8k2jXCx`zgO2tVk zCo~Sax}wmFuYB%n@UsE>Stz+@>={CSxfUW}0T&qN>bI5hr6TfWVi|<%lfuE`LJ^8x zC^&XoiF*ZM*>Q?5Pt4PE{HMMK55*t8FSM@>+`weLfoqSLW`MC?*2a&>S+T;IYQ=?Z z{ERkt7>{_t=&jfd-BHAGQTWjf3$`?tL-0omjMI&TjQSWPhWQ$K7P%VhX;?hfy0IE}-g_F(k1cEot>`MaXj%%w{Zf^7Hu;xmZVJ1u^mH;4GJiIN`HgVwy!tG3!L4T$dh&qhPwt`ql;e5tCmZ~ z=FIxcWHZ0LWT|}{zMh^IuReSC7&vrb5}dVr*p^|2x_?nyol1Qk_u$Ru@__~(_{3c_ z*Cxo6%j*KEml6GUux|)_5@(v3JQptvev*L8(ShIW#oly+cqA_xq8pajgEPg0V1*KO z1EU559WOwN2V3?%Y3=sh2iJLa)r4Vu-ptR?G>MtHsXee@B2PXHavWoH@@}4;EuML1 zH-oAPHyJCkSBN@?YRTQs<$^FYG_)9QipTKeyrb>3)#Xbuq|X-FH8=H^3G^fw@xhGc z>EV=w0ZRlRu<`HPda#$A8i!%V0qpUy>SM2^(XL9{iJjxdSD0Bz{~IlnD(2QXrMsp6 zK+4$S@qAm-%zBfL*r8oixB5i0T->QvGrzBj8OoP+_OqQ@B}N9fEpWdl@Irp|`1U%w zR#}{@my0>Un9ZbmCR8ylHfysJWlTJGSgog3W1D!NyRze7J~8n`EbnhS8LPv|Sio-+ zE{&ZF5G7a|3;AWziCDS3?Xn0ZVgbLrXQ5RJjSkb9Ive4zlrKXKz_dw$_8=QGtyTTr z2c2KsOei4yf__OS1={Y!3pEq6Ph%28w}0+IXfbBQ%qx1-YOhM$`X}Veqir$8>vO?L zLmX3Ob~P$y8tM$9w}aob*}?GA&v|ozygL7=V*W9~?B-fl36WLav>-S!k@J^J;}SqM zs=c2-uf3YR`?SbO5)HUw%#V{wDT)?}k}qN-FwF?oX?oA27nIBfrZ73HoUbqgJ_J^k z={4FauiZ_;0;54pv)J8l?^;Ov2&AB%o3kdvm2I*HLwT#VCn5Y9;wrBw7W~s)3lSaN z583cXr;#3iAf(tzl|sMCeixck`ZKo${p=i}?PdP&ci;-Ep{wCg%c`MPSan6yyG-EL zG>fGI9omJXBc@s#M)jG68_FWq%OhMdru^(=zrWu)hIi-K@7X=x8D(Y8UGj`InuTH| zHwLS`!5PbHm@}C(1=}sv@d_G?h41s*=^YJ)$ypJNXjoNAO>EC7(p{d_mfG_ykzMO> zx3NV|_ha)+(H3l4JI>Uh1J!EgGSm`iEIPfqBeOq^ustg>C;E9iP_M#IuE$}ZT@JzD zLGv-iMnb&&RFUz67}IfEjwso!(1el0!OY3xaZCnei~&-4jGDVDHQ`UvqU%p9WxPr$ zwG+fEWTmOhl}m8vQO}$eSLR|L!ryv0TfTd&S*=!TSi0hNV`yhRi3UnVvz|E&y4O4u z(a<*Is+r7TIh4d=%BaQcqx!Tb_!J-gr?{d`1=A05b&LNWRV9fbIXV)PAaiTH+M^bNXo@eRd}rVSq1t~Q#r?N%*w zpj3lo4&7WULO(|(-{MrnS?n!-J9h0Fo0Jgs`> zka3h|W1x;XR3USu6q7cl#;R66bHq^5oGxQKq?q48n@gE2UGI^}k}JbZmZioRvl^M~ z)#yhvN35eX^2)`Y9n5PHiyyeIS>owGV6;-9O|Z;?q^`v+<5uP%um8;)GHT)aKdkl$ zageuHmN^uf#3mXHe{cdz3Fe&0H`oKEHh7_s~WJ47;dJSLx$`A>kq~;uu6HFiFEiV zpT~N&Yp_{rU}GtB1Qj%$;*?L0i`}ct92Xg^HkV8DnFD2=p**TgQF4#srA~!|A&kj; zY~U-&=@9a{Tr%gGfLHNuc46CU;h`yCucAI2p5gxt1Rw6oWIh7=DCl5({usiKgFXTJ zBGtXptSuA z^mEWJK)(dh`+f!bHHh-(H=y5weh2zJ=no)DlMQk}e*}??F6d97KZDe~pgi~szWXbP z-6fau--1kpPd;Te?+h5r)azY)^Er>}zynfvTT_I|cuXYDR~ z|G%AJAMoI!2kZms&p{7n9)$0Io2wNF5Bf@`0M;6&Fx3BgIO zeKLZRUHcIT9^u-jAUMUfPepL5YoCVTG}k^I!RfBO7{OxKJ_ErSuDt}o64yQx!I`do z7J{=}`)mYfyY@K<&T;K?5uEGV=OH-Hwa-UzzH48A-~!ja5W$76eG!6-T>D}K7rS;2 zLC&?8B3SC$-3Yo}y9Ys!Yxg4Pb?rU`eXiY)px?EZAz0?x%MmPh?G*@Cxb{i}D_wgP zf>o})8o_GUz68M~uKh>^k96%z5nSrpmm#>!wJ%3-xocm6;0o6sK!E?(5V`gsf{5y3{+-h^P2 zYi~xd*|kRyjJWnS2(EGMQ3Ru|J%(V+wZ{>RyY?0YTU>i9f~~H-4Z$|oz81l?u6-SX z>sbnROa-0Irf5o~wu5`vOz&mx$0?J|P0YgZ6d zT)T>(>e{yldk2CYu04lf&b4i{M_@eiVX7x%Pbs?sM%&BY3oH zKL){LT>G&I9_!kVL-07)emsK5yY>?hJi)b}h~SB?{UiiWa_uK0c(QBXkKlgSehPx8 zxb{;KJk_-yK=6QTKMldtT>C);54!e42p)3nrz3c}Yd-_QGhF+b2%hQM4 z`*jFj=i0AF@Osz&KLr2h+HXMc2G@Qgf;YPMn-ILowcm{3&940x1aEQew<36}YrhS_ z+g$tY2;T16??CVl*M290ce?hw5WLH^-;LniuKgYa?{V$-B6zQBzYoFtT>Je9-tXEU zK=1+A{vd)6y7q?JY7zVF&UK=1?C{vm=Ny7rF{{K&O`jNr$v{SyQ~aqXWX_^E6E48hM_ z`{xLL?%KaV@C(=eC4yhN_OB59%C&!u;McDG8w9^`?cXB!t!w`d!S7uA_XvLP+J8Xs z2iLX{*skp$a9sP32>$5WE&|uJ|AgRAuKi~Oe|GJ^Aoz=G{}sVsUHfkc{^r_$NAP#o z{s)48xb{C0{L{7nh2USV{ci;ScJ2Ql_>XJ<7r}pBC$ngP{M^NMlM2@7$k%$~ck)sefnj%LdatuX|LF8D99E-?t6gdu&<0*1HA}3Jf1Vm1x z$cc!YM3IvaIhi6SBk~A}JOYtZC~^uSr&8opL{6i~X^5Ook<$@bOp(QioI#N@5LrTz zC5W6!kuwoFiy~(sayCWIM&uldoP)@@6gd}>^C)s2BIi@&d_*pw$OVX8NRbN>xribc zA#yQAE=D9rksKmRDY6uiZi;jx(nFCRM0zRGi%1_u`Vi@-NIxRWD6$NZo=h)tX2cUA6+O8QPl}72Tg4M0A3eDNPqr^|O5%x-l%Cv(C$o#3 zvUnn7rYAS!NoA2!h3x-+!y@OlMOQdAP#x3&H9{y#@4E(Az+72fYLIPSCqR?*_dG^j^^WK<@{A0Q5o7hd>_&eFXGT(8oX@ z2YmwcNzkW2p9Xyf^jXm7K%WPF0rW-Cmq1?zeFgMY(APj;2YmzdP0+VM-v)gL^j*;R zK;H-b0Q5u9k3c^L{RH$=(9b|W2mJ!{OVF=CzXtsV^jpyHK)(n50c3+5&>ulA=ueiYBG7&y1C#}If%XR-06GwK5a?jgA)rG+ zhk*_U9RWHLbQI`l&@rH6LC1lP2b};q5p)vhWY8l(r+`icod!A`v>0>-XbI>{&{?3f zLFa(Z1)T>vA9MleLeNE^i$OWiQcyRj2h}4|)OUg`gLKUJQB(=%t{S zfnE-J1?ZKaSAkv)dJX8cpx1$35BfjQ8$fRay$SSY&|5%n1-%XQcF;RO?*zRI^ls35 zK<@>;5A=S}2S6VLeF*en&__TY1$_+kanL6~p9Fmh^l8v%K%WJD4)l4@7eHSGeF^ks z&{sfT1$_4bI>n9zXbgX z^lQ*>K)(h34)lA_A3!$90sRr=g8l^hGw3g%zk>b-`a9?!pnrn?1^PGWKcN4DG6vc| zXg`nv%7VH;`-2Vu9SAxIbTH@;(4nBiK!<~l038WB3UoB+7|^kx<3PuQP5_+#yXJmNQ3@fYB-k} z&gF)4h2ad~2l#4@;S3tikm0N~oOQ;Pl^Hk=Lk1s-fPoK1$a znf+n}JeW3XJtj~FW-p@#v|7#>qWFiX_ZOcIm7sA0Ixi1&Cy05KB>*(XTQEd~^a!55t%FegfkX+WzO#GEKFCrQkt0hMDA zbCSTEEHQZl`p6*WWPy2v#1srDD}$Iv2+S!GV;Rt71~I1y%&8JHWkAgt#GEQHr%BAT z0Uc-%bDF@ME-^C(6r@4S=>oG@Vu}W|r$NkOfjL8BZZ+&PLYOlIW{JdXH=uV7zGsQR zoGCFS14`K-=1hS(OJZgXXl#R+vjpaBi76XU=LRun3(PqZQ!$|H4Pwp_m~$njYCsVj z#GETI=Sj?M2DHRM%y|NHzQoiFsE~u0^9AMtiK!dVF9$If2+V~N(=ecX4q`48n2RK) zX+Sd_#9SmW7fZ|z18VCa=3;@#Nz9x9opunD6PTqEv(tdWJBV2-Fx?U}Z$KL!#B>Wx zkHqXUpeheydIY9dVs1B}M-O6p1*T78?l7Qa4`TWRre9+2G@yYGV)_MUnZ(>>Ks_JC zEEAaJ5_7i!-F*`??U zmkG?}67zTi8yG>%k?nV%Eg}@9*%o7bL4TG2gfmtIlPcpDC62w3sLjUYR ziFvYtO_LyIP+*26=6(Y^DnZPUz^s*+rx@6731Zd?%sPpAs)4G-D zvkh!l1u-K6bB)A2$G~1z5Oa;dj7rRN4QzA;F{1)ACNa-5unQK%j0w!R#5~`?7FiH8 zE-+gp<^=}!&w`jO0<%?OUT9!*Er{7FFxw>NMFw`>f|zXrbFIX@*ub`25Ob}-TqiLv zF|cPB#9SvZ*GtSx4Q%KIG1m*s4HEM*1G{}e%nbrFAu%sEuoW1@ObE=467vcJ`-DNv zjRJF%#JtkLCSnkClfc|8F|RVP!x+TeEHJl7%&QG-KL#}m!vd4VZN%yVFSD8LCj8pnU|Q47}#15V&(;Am&AP3z`lDBvrAxZmza+k z*p&A&@pgKQFW5i(4hj0Wfi3&si|!DZJ0<252KMuVm^%gLE{XZ1fz5u8*$iriTRQN zn};CgaRT#riTSc&KR$$cyuds`V!mR)S|a$KCkV_FCFZLJOeunxCko7yB<5=d>@0$q zCkf1xCFbh}j4*F6%=ZlYA-_UDM33!<@CX0w zr%TZH4g2Y#7d>5Io*^+mFkp(}wTx%57qGv0(K99JhXxE)JkT>4i2ViVVF~(?VL$AH z9%dl+7ocZJ(2ormxp;4S76Y-r06klReqz7`#sfW@f!JSwo+Cj&HDDm)fu6%a>@Psi zm7t#)FrV>2&t)L?7og`!(9aDR*La}kF%bI;(DNne7Y0mkJkawQi2ViV1rqd21BN-l zl6wImfq9|C{K|mUP7w1#fq9X{{Mvv?kH_pq>;>#EUi4xK`i)_~*ay9sf!JSwULrxi zHJsmtCm1gg>|QECzc-vegh4MApqELIZ8%OC^fCc@xdi>uaNIEH)$^*TQf!JSwUN1raHk|*21%Evg z38q#O^k2itWJ6Wu{{-j_60|7m>=y>TL4e*UK}OcehCy!>pf^cSSJv4-40@9Qy;*_| z$T|mxL2nkIw@A=IS?Ay|=q&>DRtY*J>l_*ey;XqTCP9Z~ox{VRw+YbOCFqE(b7UCw zb^&^a1Ra%ijt+y~AwchxpkuPmv0>0V1?XK8bX?XsJ`8%70KHp+PRKeZhC%NZp!Z17 zNm=LQFz7u3^j-;iMAkVa40^8sy-$Kp%{r%rLGKfw_e;>}S!Zz=^nL;QfCQb9b(Vxd z9}u7qO3;~E=d3X3g97v+2|7FLoD&9pNPs>pLFZ~<{eoTQM+D}h z5_3V;xiI{qj|$MoBdrbnVbCW8=#vuEn|1oa zpic_WrzEI9>nsa{J|#e(mZ0TXXGIwFX#x6-1g*?EtHPkq2+(IGXmu8rk6!omS$d2w z*gyMo5_Cz{d1UxapA(?ZOVFiR=dv*9^8)k*3A#M%ToDF+L4dv}K?7M>TzWEnksjj< z_Rs#31g*(BgW)%QNr1jAK|@(*Z5Z@r0s4vrt;;%BhCyEupsz~M`m8e?27Oh4z9vCe zWnl;E3H~*Dj4#+f`|A>Pb=KJse$&?l=o=EWG3#s!gT5g^-;|)uS!W~+`lbMVOM1d*3($8YXiL`F8U}qwfW9k1+p^BJVbFI4=z9`$UDmli4Emk` zeP4oZ$T|~Y(Dw!C2NHB+*10JR`hfubP=apGI=6&DKNO%JNsyU!Cc~f~3DA!vD4&Hj zZm{S1vB3O9VhUNu3cu(l0`yY}n#wxUVbD(n=w}i%lXZ$=(9Zl*4Z8g{ak>4 zAwi|AGaCl|LV$iLLFKGd34?wqK);fpYSy_e4EmJ-{aS)*Sr{LC?cmq+7+O@Ef4$7P+zhe3Z9pub4a6SB?|!=S$i&|f9!Nm=K~VbEU%=x-8qf7W?Q81y#* z`nv=@HS0VO2K`-t{vkn6%Q_E+LH`h-e@f6pS?B3t&_4y}UlR0;tnpUwA`nLf6M}nT6b)FLj{YQZQD?!iAI?oG({>wqIftRS~XPp;>P-G#`{=q_C!d{ql zUKEDGexAej^I$K|Ixh*sU|r8)h6j6T)_GYNW=L4pgS|ZKydn&PWj=pfmj`=g)_GMJ z2D^O@+uwt|I_tb941-lahaKR-UYm7Z7ly&+pTiFHV6V?Q{}+bgL;!~!0|; z;k*Ec9qhs0ly%-5hT${;haKX<-ja3R8iwJl0f!yx!QPg2-X4bGBm##W=E2^Pb>10< z;hX}89qz&2m37`7hT#+ghaKU;-jj9S8;0SG1BV^y!QPj3-XDhH1O$g2<-tCXbv_t| z;d} qqwBlyyEFhT-%ChaKa=K9Y4l8iwI)1&1B$!9JFCJ|2eQL!9JIDJ|BkR#0Q6+b-oye z;XDY3o$SHBly$xwhT*gbhdsiBeI@IBH4MX95)M1XgMBUQd_4@qNfQn`)q{N_>wGf| z!#NZVJI#ZAE9-na48tiE4m;h0eJAUDHw?oW77knN!M>Muz8{7ymasEC*blPK55q8= zf8lRi;=z8Db$%R%;dBg#o$0}Tl68I>hMg&4XL+!nWu2dgVK`aC-*&bK`$g9IWf+EY zHyn132m2M)xQo1*55@6M1c;pL0e_u!eiMElPVMmbo#(-Ri{-HLKE&yLJV4}p5BR&R z^ZW4oaOQ`2eY$|6Mh@c3vt**9_)`<#|^`9nux1!^76eR0?&9_-LA=dkeGa4L+$9_hgj?{ba^ z!*FJd!!Gq;M|L?!g<&{R#$lIvu%o-2W5O_;H{-C&J=n2b&T(NFPNQ+y6&~#PF6V?W z>vB#H!*E89 zziq7tTioTG5r*Le9fz&+U`x83Gs7^Puj8;QJ=j@Y&e>rYPTz6ZdJlF^mve3ywqC-9 zJ=l3&&iP>&PVVuyUFE?p=yEO$!*H&T!>;yV7j-!ohhaGN$6*^hSgy-i8iwIaAct-A zVBK9#PZ)+1gB-TWgY|YfePI~R6LQ#Q57v)%ABN$yA%~54u;pFOiZBdk5jpG{54N() zSrvv|BVnt%aAaZ7xuk2@d1M#t@10A#oXflqmv=c=cpnD3oHgEu!7kYNv){nlA9nsj z{0Tm+?XnM%57u?rhsyYsUG`xzzP`&oT*imH>?36SsxJFT8Na&AK3>K*blF$S_{J`0 zlgDgxmowshxTec4OVntWy}SgO4PExbGCt8|KTF1M?6RLN<2QBL&-s5nn@3UuK@3F~)V~~M&OpvN zXBct@V@z<_1{;IHft)k!S+L;}toj!hKprD4M*lxaJ&UQ*bT4Mqm%~NXSHQ*8SHi{B zSHUIJSHmUM*TALK*TQAg*TH4g*Td!1H^Al9H-b&}u$tjMwa^0hrM?yJTYVeckNS47 z!xnc!jx}28f}BYdy1^c6>y@dnN?&2u)3*M?&ZaN`4%(U_aM)l395omN#|=Di!eA1d zGMENu3}(SOgL!blU=dt0SO!-NR>3ucAh>Q20yhl8;HJSAxGj?u}?B_Fn z%=$4WG0Hs3cmke^oPp;e7vQDH6?iRj1Kx_xxITfXniKl$ai3-^8hxo6ItIdf+2y=bv%);1fbbm*Qb{>;xv-D0t!uk)nU zE0-=_)8E&>X3_E$tCsf_mK?ug)ye&fW-eNM?9x?B{_lR#2`BU~U9(26{Z(CgOx4Q% z)vMlH^Wnyujed7jVZ%JZ`hkj+bZwoIGSIbNN?WGXl+wDe52ngOqd) z8`V|>4b-K!JjbT=_Rw&3>1vEiU1~@x!c&?r&8~)K*YMmPh(^AZy>Tc*^~#v-!|fbI z#@vuScS(mWBO3#e!^mD)M&9Q5BZmx*Sa?q0e{@vLrIN}s&pzy+TlJ2Nxh@tf&-Ee` zbq%C+#n2R^W4%prtFbwnick^lY{^FHaAbwjrOIo#qN)AYRY=O>wJ+;!D-5W3x6TjnXB{Ko}KSNvcQ3K(u927y9hUc1S zUfpKR!G~|NQM1V6s(!RZia!b)e-yw$;wP8j`cR|d-tS)fjD{OQ$FO}9s2axoW^i-p zDeb3Rf?Gl56ZhM|ZQ*usd$!v;7V9t3B=gW(~t5fPA3Opc z2^Yen;39Z5Tnv}MrEnQs4v&E=;7WKbJPsZYSHacr1b8Am3HHM^@ML%jJQbb>Plso~ zGvQhAYvOGI%+>0$vHPf>*<9;I;5Ncs;xU-Ux4k zH^W=tt?)K@JG=wl3Gae;!+YSp@IH7yd;mTOAA%3VN8qFIG59!q0zL_!f=|O|;Ir^K z_&j_8z6f7}FT+>htME1WI(!4Z3EzSrgM;wn@NM`G`~>_Y{1p5&{0#go{2cr|`~v(U z{1W^!{0jUk{2Kf^{096c{1*H+{0{ss{2qK4z6ZY#e*k|7e+1XTAH(5BN{`5&ReYH~bIu%Trex z1=oY?!wukua5UTqZVWepo5IcD=5PzRCEN;b4Yz^Y!tLPpa0j>}+zIXscY(XY-QezU z54b1X3s%4}uo8}i9yky7!ufCk zJPaNV``{7qNVpIl1sB1i;bOQ1E``hBa(E0}0awCf;c@VIxC*X@C%_ZoNw6QTfhWUL z;HmI5cse`-o(a!_XTx*gxo`lkh3CQZ;RWzQcoDo9UIH(Lm%+>774S-U6}%c=1FwbG z!Rz4-@J4tOycymCZ-uwP+u`6Yxp+ z6nq*!1D}P@!RO%%@J09%d>Ot1Uxly1*WnxRP52f(XH&iO^=Gtxm8m98l{V;CnF^^G z+A5uyTBOC)A#IBOrc_e9l-i`TqCH#x!>>|)?b6opY>QFt`ky+LvU+T%qE@D^@b5}< z)$UHc(q7rerb%g98ZVuiCd6D5BJu?Jx1_4*sghrp+RmgZdaIN{LG89QU)rJnKB&?x zZQfdl5|pq1WvZ_@Zv(!e8wTfAk#e3@Y z6l0Fc(8-~7(xQ6mm5r-1MOCejsP!?fUU@Xftc5roHBwi-A@%9+bVV*mz5CO(!m_kS zYn`FJ8ZRxVe}?W0(r(4JmQ!QwZz0ZtcetqjyxX3CWIVTfWSOa-Pi;-8{hQ)+lwxdi z*u5hKou^i5YiOtL3YyRUWv$C6tQ6{eyCSb{wF=70_U<%0)T4SLg4gK!79)dFXqU7_ z{;ryPd^)_}lce4spRj3C$MarJ4(*VZBA4bEHCr+AQ)g|9c6+Gv?NDykp3pvNS$9QQ z{rq&tSXZ)1b2mu68@bZfZnZtTciojLX$M`e7HNm_v^pD)EyXH)Qf={WmsE2<|K2@o zu1%-f#W-c2-x2FV?c?`|wWPm(X049argKqJ-QC+BHS@DjlGVQDu$MJMu8Y-?%i+@% zy{=#>?p?Jy&Fc4<=dP6&l&`fpv`6aIG)Hx;t!j5DUbEu*o#OTSjn*cerGEd~rOsxS zYFiomUzWCLPQUd^p{}>bd&hjjyffCa)H`6E5o&v0tLJwHRiXJ@mZF{QKAWwY(;3*; zd02a-9inxiw5%Ps_DSc-Hb)VQQqSVLH^dySsGkq3+s@FdvZbV1tn;L~Dvs?Zq*=d? zSbs-Y{8Y4RynFqmw5kGr<9El?ut3kPzX{`|ep=gN7rfssYWuw9Q|xnARNJfZ38)P1 zlg`(BqfIO6Q;*|V8>Id|v@539o!>ytyj>Y|OTCA#j=wbCCD+EiuDZ27{<N7G_9ar78w~uRJwZ*G(cD4+y zAn%{EaTc!Z9R2*PS{=b}X{%@P39#DF=grT&$2w=LeOxi023r=&;+i%{{SLF*;;*>X z-^f<|zp_q6@ss9x{MGD`cEzX#8qpas{f(KfFOAQOpT-8Mzs!CntE7JRth1#)=hhig zzd5Xq>-u{=b)oq^>+|Z>Tf0L2uJT@3-P;q9y~g~s`+WE5&N=uU=XbNeGyZb;&ff>? zbgAD-*0R)R!0NX5&Gm5Ay(Y)#)vsIoY_(6fezv;Sp3CnA*U#tA-zR(cYh&$``Z@Bh zy6zY~5#cs)KZ-o@@XJ>Ic7YP;T^wI$TOUbi#wxpu#wEBo}y#})CnE?&}s1V z*cYSxCGqNgUcDzRQHhe&F}zQeq4u#?-Z^V`w0q;Ew!}&8h<|}vHqdV??pDKBHq4DT Hw#)o4OpK+s literal 0 HcmV?d00001 diff --git a/.vs/AdminusaBackend/FileContentIndex/1d537255-f345-4248-83f2-e13f4f4be5e6.vsidx b/.vs/AdminusaBackend/FileContentIndex/1d537255-f345-4248-83f2-e13f4f4be5e6.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..2612d332841fd603ca82171d1371b4231c893dcc GIT binary patch literal 26797 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

#J1$sm+3( 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

|0gRotpBh+c~wubgVAcDAWw4 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 literal 0 HcmV?d00001 diff --git a/.vs/AdminusaBackend/config/applicationhost.config b/.vs/AdminusaBackend/config/applicationhost.config new file mode 100644 index 0000000..269dc55 --- /dev/null +++ b/.vs/AdminusaBackend/config/applicationhost.config @@ -0,0 +1,1021 @@ + + + + + + + + +

+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.vs/AdminusaBackend/v17/.futdcache.v2 b/.vs/AdminusaBackend/v17/.futdcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..f70b4c709af7eee505b2f56a1edf62c8812497cc GIT binary patch literal 139 zcmZQ%U|{fawu%WT%FjwoE-8*FE=f$!%uA1POv%m6D=kiRN=(j9%}XJ~*Gn!g02;vr zG>+FfKQApay|gH?Br`vc)g?8lG@T^nxx=wC Li@R6x#vKj-bc-|1 literal 0 HcmV?d00001 diff --git a/.vs/AdminusaBackend/v17/.suo b/.vs/AdminusaBackend/v17/.suo new file mode 100644 index 0000000000000000000000000000000000000000..a5549f7eadd1db3892a6d496c8e72850a3677d0b GIT binary patch literal 73728 zcmeHQ37iwv{hvS;1?BL-Ft2LX9^CRt$1qSks< zty+(IRY3)%Xl=+N!NqtNg#;dGj)p$u-Gl7Z&pJ`DSL` zym`NO{@(BX-nIVuQJZeRfB&}>i#bjitbDU&S7m3D{UFo5GEz}?!}DO^n=M2ZAL3Q#q#^x8NNDuig(FgLtk@v;qLrK;dm-2 zhLqXLiJ;z!y9Q-J24CV|k5&f7=rhUV-zI(m|f1=GqxgIv*RD^YV(yzq*PJrF`KLWQky9*EY!R2dH zS!G@RmhRU${VHGYiD%Lo4lw=30HXkYGaA?ZfTMtefnmV00KYvR*B0Qr`tymn76E$z zdjW?5hXUh){Q(ATEKmlV1<((Mk#tg-5xTon@6Gmm>u!hW*9ObCESe_(2kQ1G;rbn5 z5-=I~AHeLNo%@3<-yC9j_TyRA?S70fc}~;2a~!;`m_GKUY$^=|HzMRss78dA^Cu;W0D83&XW&N4v=nB)&G6rM%MpbaL@YB zy3g-q{WsTBbN!co^UC_qwuJYr|Ku0EXV{#$F99U4H~{x%{zZ40jI95=>i(vx|3~QW z^HKkcb-!fTww3zta45~oL0#5-? z1J3|!fpx&Mz;nR!zmi;APz`MX-f%ky-fxiJC03QN>2R;Hm2L1v36Zi!96ky!`h3mh8&w($1{{UYCGTvYF z9@t{CE9C!;bc|524G zkZhxnd_$0QBf?qAfAoJGDE2Xv(xK_aO}O7hf9`<9Oqx;C`)qD^)9Is`(_|Do-wuVN zi}(SIo%F8|PLuv4{T(j6k$sY+jx3hVcqSjEX+qq6=wU`eTHI?9Rv+jy#S~>i4)o3OpN!N#RT+~I z-!V!fVjk2|o$*X%4$Fal5j?w5PXIgRuTcL}r9O3_g8vNE`Y+`Ic^!hN%6s#580>cg zb_a$7BY=^BbhD@FUfPi-?FUe&!+zSK0N)*i>%qVn{h4+xxE~9Q0}cZY2gUq7m05w7O~=K<#f1^#cp z{n?)Q|4lmox7LqB{ok?b{~6$T0dScpI7%4YX$-iWDCZmz5^rc10*B&wh>*s>ICKN~ zFKhXGKE6Fw|GpkRN5N4kfg6$?CC&)={5+*v5=wE+MgH%GUl;2B*^z(Po}@CAzpL<) z;RLJQlFFUgz6TG~vC-I}&o(WU$)*4G19r!KtnfuiWMv!57%`%LfaAs3_Ys0TUx~6t> z)EW9Y1u!kvjJY&=#L`^8g?E(WXg2g){K?(K2s?YW?AejWHG}JsulisULTa-Io@mD& zc~DDl!GD=v$@~+k_RXFj4()m3uv4a2)-3CJY1+eOGY^>HdH4I}O}j4ps`!f~0mfUV zmc8=t;wMQ>F6DnYe0o&(%^v;K9DwDYvb&5=(m+})|BL7MbUSfk@vAf7q|G8~DS=Zu7F+odw_m+?N4e6B$xaj4f?O>(UJ3C1mB$woAmgc>54;oQ=8qkxkz<(Wj^G@{SUAQ*lt`xs|Jby3N zIwj7^sR4cVS!5Z|y-j=B8E>h}ps`1PI^0dxICUpd$86llf0mAH=|m?jUym>lFUa&uY!tn{hfrAB-X zQYECNe-yePYNxwklb8}^I{(=Ze%eicwq`^1=-8p3NLBwB7s}t%$uUlL>F)!#Q5Hg& z)Y6!IL)n9A!SWz_iQP#gwf9b+^VzZMORqcNrIQ=K^4+oi#hpHW>%8C*_f2{0gteD6 zJU5=S%;i)ID+JF~{U(1Ui$^+XG+q3KoK<%90qbXZM!tXM70-S$s`w`NJ~!;W_U(o5 zPyJ}8WB>BYjm7UIi*tKW9oJma(bc9#n>&5}Id}A1{FBLx5%j}5G|7`AE95ir?LoSd z$JmkYi}rUI?(LR8>YTKX@t27{b0M9<_=jU89E<__fe~{-biFKM}Pm zprw5WdPG6wMkDH4P_tqGAd`{lPkxe1{L{5RGZ6PM>il%@!xrd(#MmFd2*7rh7CMZ7 zIS$fk+oex=LGs^p^k-_VKnG;BPJ~3XgVyu_|Bd4-*7wPt+4gqoFVfMk(`BI$+Fhd! zI2oy7w8I#GbQ}o3*q+&q|6sV4?XO+>(@`o|E~tSsw?mMB9DBpR{j;Dy$V9(Z^LLIW z<%QAeB}!OuoW>jg`W%lr1h5%hk8t!iQw^a0kMTJ) z3;GYkEz2N{7v+k5?`}|H`Q~_VNGoqn$ewj*AItIcLIYHd|0;|vv86Q(^^ArW-6RwT#qH6Myac5o*E9#R{haPb0q3(Ywu`l_6Fv*cXUO3wGg+}jzIkLlC2(p za)5aN^}n5(WI-*lkq!$M{``^2b2gpz!GBl2dTq^ywPWwQV8gFJ{^pURp1yA3@|%9z zoGcwgM5n2pp-6i)6z*>3Z8)k%VmI<#S*5?sUsYB%c;na>PnoN%)$MWmOI>bfMU`6N z^p#dtIQ_2D%IXTY%T-ZT31@0~d9}}{dYmm))gEU>iw}3c@>XY+r>v?a;PzBi`74#j z)=tnR=4Zz!&#hd4ma^ut$)SK6G(ylkGZdcF-qT;jPc)}(VCfX!LCdrraXQ2Pfqy!z{Z95-+a!h|2eomS<+THYwM~#m5r`iZ@IT>(WP6x{K)$9 zn>W5(yZeT(zBqH~E1gY854n8b*T=to;TPZDdE)R_Ti=~sdQ7s&G*r3_v#6)4tk~7l z=nF>FMR1*UT|(XRb#_M7XcW~hQqm;qU&-u9sH110q~qj`x?h{ysO?k@31 zQh$EWoQjgoXFTNDBEZ<%F)RBm|D*)R0w~AWl8yaP;vqLM+#BOX zqS)TC{KM4?x-Yr4CYKtkQ2ekEobS2Y26`fS} zoQE<3FGpZD*?G8TTj)4*tAEBX^RGV=Gsf5xoDNWnXExN563NUuSf(FuEzxH2TJ?4% z3Hm+^Hd6It9@uTs3g{eUvKZLS^q$4RN~l>mIzs?|HOSA5V}o25>WHcfqRsW-9%@*B zN?YqC!{BvMPpP}Ov{F?2tC29-79kmga3~m5!=?sGHku5Pc$r0@$}1!*;&i@or$*E; zB$HOF{?FHjMp^Cb40c7Dt4hjCN}I!~FECdvi7tqy=6dn*k157RJnwj}mw6>XNe=p-qY)0-|BCNrbB4Q^ zWzG>0YuKb7${a=ZKiQw9PCb|S*JJL}Bxqf^)?3a2kaXDp&19(mqdto~)GmFFSMnPg zqlL)r?zw(zKa=y{WG$$$qkHq53Fb80Ev{#vgzZDi!BM7jG#mCrIO8OG`~wf3vSFWl zAH075MNhb^9&7WvawKg|^qhKV*XKyMF4&ID)m0I?dZNx3ou)=QLmd%cOHj4j z_luW;%8K10GcL+8U`h289c>dsUExSpIa6LG0>XKwxzq=v>)YJ0Kn*sj;d$+TBp4rz zcOpoqf(G0E2EeN5GUV1sGg83B=Wp+Y`yDCi2A#Mx$eb#b{~@_yO}p))dkDwssnmqkf*R~J{5iK2K@s*nk} zvkg5^F}`RXkL3J&U5l48i#h(bC*E>A%dY%68E%i#yS8@b-^Gu(#RrA+kKC~08Zf)` z*_7U|dt--w>e-iK{tf9;y=Ip_>nz7WX(mHXn2WUMzFRU6lJz^}$_r!UPkdj2^k;vD zbK30E=a+K)(dg!TEouPSGn8t8WRgpBOv}I#+jyx++9dlyEzYq}?y=T6cQ&PiI}pa57G2V=xNA9+JwhR89#ojf1P1brDPYLNZMo zGD^VaN#L2ZB@<9xSYwFm@)=s0J2JPLF$0gKagIJhGZ9Z52bKLJu>;s@^qmH-)=g;I z*gI@e(v1y4HDz$$_!d+&o}mu%L(X0_jdS#-I4alb=NNK@Xb{pT|0pbS7ENb6N7JfJU#a4 zTVQ&;+c!@QLkDJ9t*E0K&L3?LbzGC+**!rYB**9sU$D#ciSRnN|Mk7?KY{BBHEC}A zQ)>GYSHs9RvIfT2OJnAud@pP0{mqv?RCi1H!~b1=(e=*B36ScFU*MWn(Fu)7hs7hoB>1=pVew*t2Ti-CUu*74hAu)7Pm8{l_8$8`m8kN*4% zT<-&Z3H(a8Td7|k!1Y1kH^6U!hk)M!tAO7Fs{#6H#vfrvmiQR(IPe7UB=En$Q^3=} zGr(Gaqi)Xv&jHT^>wy=54Zxp(7lD_6mx2ESUI8`&uL7?DuLFMu-T>YNHUVz|e*xYG zHUsYf?*e}X-UHqT{sw#id67&z0i41dj?9+jI)ZK{i~?^MB7p_U1CqW*$|} zW&W?bSPq^VjbPdlFKho%4iqB%w#<$`|2KaA+rZrafn$`ilG(}ho#ALV-QkYD|HHO0 z{%;xWcg1+XRmh}VxRAj+GEbn;8K5z)XxvHOxIGJ?+3(}UU81=*Gl((4WaGc_;}q7> ziS23pkmEiHE3MM>*!o0(@8tj{`Q`jz8z#$^J*W_?!2ik#hr6 z?f-Hh{IpyC2ASx~HHNg)?>WaTYm@8uOoyBZ>LE0Lzu9@>J0lPAeRkoe^|gD9cxc>j zHx7E8_bcyuX~S0!zxn|0i+ZZg7&`t(Js04fUIcXdLvZEybBDjbX?LZe_Urk+?sJBp zJ90Sg{l|T@!hP%fokrvSwO?Ft`*A~8+(S2{(J;AjI{nGjl+S3I%J?_bHBHUUkHK0T zFH@GR3V+bDg5et6zW8$2W1&Yz;$HLfd?W5S(JK~rzGFQkeIpM#C)6xlw21HQ7<2mT z3%`qM78Y^+2qtmWScW$EstMDr{i^Juef;}J78cEH?+AqEH|6quxVxyPNZU@WBouBd zDlTf86`BvBW?s8GUwB(o6AgE%;zhmM$(0sSHPDE)9_oDTKoIX}nmRW$PlYoqi%~oL z?P{c`rj-lgi;J*GgTdzenB9pT{$N)?1--BuRDBWSO%tB|q|+XZs$qoD8w?_JF`v6@ z)mgrI?IFIJ6q=7oZFmdEDn_DPgYEvPSDONdw^*1mw=>H1qi`{$lM~}24GTJb2w)%< zkS5IjgF`Hzjdq`mn2GP01=Vw#ym^w$Ek1lK_ZC>U6 zdyG4c`CY2}QF!q!{pED{+KKh|VmE%V!zJrK_kCm7xc8?^JAEp-Z%qH=@oGF^mwvYO zuPixf%~saG;wgh*ia?9%^pv&W(dTLLlzV)x%GR>;FWxvd z&=ROrTdLg7s@7I)o~Ty(oWAN7kF%__#pSB1aAPmVR_w7@;cqE-d)#h}Mf+QwuY z%3J~LvFNKTEiHGKRhE@HHjZ_bmRFZn1ge~YGItrM`pTT1R$qliwL&c~^Y}_t_*U(1 zEp08wj*YEVbmkAhnHs2ex;-k(IS*czi`Yy%t7K6!Q|G*VGYedX%Sh*IVx3%E%9Xh} zr+j`wzCbKwJr%JPB49JNW9ouX7*WP(i<>#fOX0H_8w44LMUxANloQ8wa44L7jz?+m z0F`EJ6glYriQud8C>N_KDTYOz;)EzS?};#Yx+=)_YU>^zv=(1_k#E$q3cdzF%0%`JAF zgtWRt*68MwP387A3o{5!GguygU}U)_H1hj%xQ{==!|&&*x6 zcGdC|Z>Uw@yy!o-H6HQtfn3}M25H@;LV-SlM&yf3QO!#KqaDGNUu|KrJb_-GM%bW> zGjfK!`TQFZLTWKqJ8~`g){rL@4NC(j)5yAYgbbgtgM-y3*_R>)e>=3W{#%MZnbKdT zs<|8(tMECF5-;@HD?ef+nA$LE@Xbb+Q?s4CUx%CY;kCQ}t1RzgXIPf~U~Eqpb4*LL z6XArI5!GDyHBl~r7Qzd3YdW*>aMhr3KaMAGr(?12-7(;~++S!8&R&n-KRBYD@GkhQ zh#lkoMawD2KRM)2qpogJ)=ar`(CvIfdub%sl+Wp|=I?kP-?C5_CXI9{uJ$;{dVJhp z93XiK%=ZqMq9jru!V>9~iKAbcHZq+oue5d0nM!41XiJcO9OYr`vfHmSx9`TMX?ezg z`DR$fJr9NNB5XW-m!kt^|U&1GA@(XOT)k&@`U7YtpB^B-})~z!3fySbI>5Ru8uB&M| z{OrFTbKR2Tx<47&vFx*=zb+nj=P~tFpWpL3H&?Or*tTrRe*D=y{tw}&5)KmOyy`(Iu0{GQ8Zj+msZU-i$^E-m_9!@V^x`EUGu0jH+IG%23ey&nDM(Ss%} zy)|&(4F`Q(oyw((8Cx5NpUJp3_V&g_9$W7KN*Q8PDV_wqcLl8IF7pz zv2B1Z$OHfCP!hd}ckU?=fKof2ZZ`TOaqc!lxQlj%LO#RB1|#3G6;e8DGW&wooGDRS zQGQs5!~qt{vQsl;JnwbivwueZW-I988k`fvQvYepsZ*EH)BhK*C( zeEPz+7X8#V>vPyR+>E!{=9luuc*nKlJqx|=x~hr_ugB?XsPH-~8tdFnkH_tGy4)3I zo^n@Zg}bU^(UW}=wMZz~#VNO#AMA^^&r@sqJRWcNNj!R)MVND~Z$FMZriCAA!nxSm z=Ba*T^HiIewZ2axnN4QpJ4WyHNsMyIHh=86qeydHEVUeznWsh!cUjc34Sf>Lj2UNy zwGZO-W}n02 zEG(1Z`V^jE%IxE_w!O5?JbR%}V%e)a>ur>_N#P?+Jkb)wL2#EHkReKaK?v+cFEXoY zm3P7R;5xmFGfnT^Sk6^&%&yD!Y;yf*RCz9`Bw#(lDd7l*BO9&#?mCl5Z{Hh7d%p#_ zAuk~=_Nir6K6i`Dsg_q%I?=iJIIG=(R%fN^Yb~#?P}OpGbqRI~sVevM2+nBy@2fcE zAgOMtD=wA#?YLEg(#RO#%zPGb^3gmw%QtZrs(e$J|0~7>x4HSh`BUO$#eQ>^YDRe> z%NgtpvYg|T-g2n~FP-VQQG)BO9)LWsy`?ceIA+b`xStKw7c_}EYqT>~29s_hP85;q zwO;5(4?+tsg%IpaVLhM9(PpkM7`)gzvlR;Gzc+VcXk%-i|1MUS@ML2#lj(4F|^+8JK28tQ`KK?>^|kx+0)j%e96iOPP(S} z;j5><_`#B8LpPuM@_D~v3{5L-wA&C;fO}$`piL3rtp6k_A?FW>f!zL^4J0KoW7_xD zUQ3l}ep2E5Z-nFB{h!4KqQL{+|8$e}(ybsn@3V$NarW)Yrx#W~;`-`aI2;ZWX6MPSeq> z%Yz^Boz-nTuzAqKOkzJoGev6-z?I8d>icr+E`Db1jxv9fYr4h!PYP7Mng1#0Z{|Ax z)9(DuRK0BO-*9uv*`e{xNwRsW+#<9v=@N&EH_O3jLo=7fM1j4@A32n5@JXts&oryr za^POlSM4171n;ZUFxd288Uf=zoGe3QD*|d+z=zFaJXPhT*qH|V!?d)xFj2O=wAvMD zDf6jn=`PAseKH}!pTqoL^GQ>B%9hNIggP+Yx7y`(*Oq&$oOPw%a%Y9hRqgb0D6pZd zvC&iAQ0;E?x)wdyCo##W_w8-4`?4)4@PfR|M=1=O49H=V!rYqyJNKqA0lT)Y+Edx+ zs`aATTV!|HO~%G5Y;^k4Ob^X^I(cCNcJ521dX;B|3E124>aR34EQ^lFc05&WpiNcc zkPX!fH0=`#Jtuu3r=`=1vdy)hJsBBWZ+lL=DD{Or*vfgZuQ?N&gz8!AwL2!|qA5w` z+jvVEYfj~GE0MLUC@#hNWE=C8d7d$raTk^k^lA}$Mh0YFl@m8-FCXh-GcF$(Xmjxk ziwD^5qf&0$5}8^1Z{?cSXG6Cg(?`c{jCW|zb5~5;<&0@oaPS0U&7ALAGf}_o(;>8+ z)u#E8_R4gvaqJuGzmqZp84>TvNUdTg@D=Z$!?{+vDB@vTeE=~~X@5KW-jA#}n zk8tOkB+D}LP!Ick@<`4t9}93{;kR7)Jzysf6okiK44LIJ>A}SKw*}$RI&09jE-&x# z7}bC+a;C+Gs}K-lic5~Als-1e4U`hRPuIms|K+w7utF9_e6_k()F?mA11SqTLy`7q zDBO)gp9dkrt#_Ff<%l&?aLI(zx18RVMpLljfX;a(p&Ed~Q%Wkh)#E2Z9Ms1X) zTE)H}5P{4?MLRN9(e_=_fO|gI7p6uG(5Vr-v1m`!_vmxX%6C1Z&olMi0L_%@v#D&U zJQ-lY%|qRbRXyBriN#oeCkdO+A;RMhV0ycLAb$IxOl$b%KG@tA$j%vX;y;$Fn zUHFo%Rkm}+*F-GRN%X;M*VDf!LKj%Qv&h1&+Z}F1pp1A+GIBp=> zdwctjXI^2Fj~uAO5=!nS5k&g70bDXI?3iQOof^fJ=ZbcsKglJ>qGdd{-^!ynQMC>H(}zt7 zB==$W^QnFdL$3Tk*>{YO*c8SWi_LJv=EZ)CO){=-aL#1h)UdPiRTW$_nSU~$_C(C? z=(m`qT0YM+J9w4{+lfw;BA$A|vxST@Jq+Rez8=p0KlEFiI@_D|n%T9csnV%QYfanq zT5nDtO2N1FTRzs~1l=hnIjIRb7JrIrvRbqU!uUYHh0!SWOndHzC1nqzw$M(>dWQQD z%3)B8k*p=$?ckYy3_17p5_N#}*VwJcycds*4QqTv+nb1cf60?u)9qL!wxjt&KgLI# z&1sclCHIv(4jJ*3HtF(&eZJNG76%#D_#BY7GQ5c~kS@&M$x<~0F<72s3@*mE)_u>u zhQ%eYzZCce_m|;%IdBE=W8g}FXQ)*H)^7{X11kj*&p|3Ek5i2L#Wd8t)o|xQfmKi* z=lKY-Z020CyBK%0PH)%M6_m&3arRVd>b&T>^HBHD>cz}}R~~2ApOA7?L4V6NHwFEz z&vX)I2hPAWQx@#Czk< GQTTsa11x9& literal 0 HcmV?d00001 diff --git a/.vs/AdminusaBackend/v17/DocumentLayout.json b/.vs/AdminusaBackend/v17/DocumentLayout.json new file mode 100644 index 0000000..f92e325 --- /dev/null +++ b/.vs/AdminusaBackend/v17/DocumentLayout.json @@ -0,0 +1,150 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Projects\\staging\\AdminusaBackend\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\appsettings.staging.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\appsettings.staging.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" + }, + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\repository\\reportes\\reportesrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\repository\\reportes\\reportesrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\repository\\catalogos\\catrelacionprecuentacheques.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\repository\\catalogos\\catrelacionprecuentacheques.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\controllers\\catalogos\\catalogorelacionescontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\controllers\\catalogos\\catalogorelacionescontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\repository\\exelservices\\exelrepositoryprecta.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\repository\\exelservices\\exelrepositoryprecta.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\repository\\exelservices\\exelhourworking\\exelhours.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\repository\\exelservices\\exelhourworking\\exelhours.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\repository\\exelservices\\exelrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\repository\\exelservices\\exelrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|c:\\projects\\staging\\adminusabackend\\adminusabackend\\controllers\\authcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}|AdminusaBackend\\AdminusaBackend.csproj|solutionrelative:adminusabackend\\controllers\\authcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "appsettings.Staging.json", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\appsettings.Staging.json", + "RelativeDocumentMoniker": "AdminusaBackend\\appsettings.Staging.json", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\appsettings.Staging.json", + "RelativeToolTip": "AdminusaBackend\\appsettings.Staging.json", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAYAAAAlAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", + "WhenOpened": "2024-09-18T21:19:14.988Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "CatalogoRelacionesController.cs", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Controllers\\Catalogos\\CatalogoRelacionesController.cs", + "RelativeDocumentMoniker": "AdminusaBackend\\Controllers\\Catalogos\\CatalogoRelacionesController.cs", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Controllers\\Catalogos\\CatalogoRelacionesController.cs", + "RelativeToolTip": "AdminusaBackend\\Controllers\\Catalogos\\CatalogoRelacionesController.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAB0AAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-09-18T20:45:12.815Z" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "AuthController.cs", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Controllers\\AuthController.cs", + "RelativeDocumentMoniker": "AdminusaBackend\\Controllers\\AuthController.cs", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Controllers\\AuthController.cs", + "RelativeToolTip": "AdminusaBackend\\Controllers\\AuthController.cs", + "ViewState": "AQIAAKQAAAAAAAAAAAAgwMQAAABqAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-09-18T20:33:41.6Z" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "CatRelacionPrecuentaCheques.cs", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\Catalogos\\CatRelacionPrecuentaCheques.cs", + "RelativeDocumentMoniker": "AdminusaBackend\\Repository\\Catalogos\\CatRelacionPrecuentaCheques.cs", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\Catalogos\\CatRelacionPrecuentaCheques.cs", + "RelativeToolTip": "AdminusaBackend\\Repository\\Catalogos\\CatRelacionPrecuentaCheques.cs", + "ViewState": "AQIAAEwAAAAAAAAAAAAiwBwAAAAJAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-09-18T20:27:49.884Z" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "ReportesRepository.cs", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\Reportes\\ReportesRepository.cs", + "RelativeDocumentMoniker": "AdminusaBackend\\Repository\\Reportes\\ReportesRepository.cs", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\Reportes\\ReportesRepository.cs", + "RelativeToolTip": "AdminusaBackend\\Repository\\Reportes\\ReportesRepository.cs", + "ViewState": "AQIAADUAAAAAAAAAAIAwwEgAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-09-18T20:27:25.522Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "ExelRepository.cs", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\ExelServices\\ExelRepository.cs", + "RelativeDocumentMoniker": "AdminusaBackend\\Repository\\ExelServices\\ExelRepository.cs", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\ExelServices\\ExelRepository.cs", + "RelativeToolTip": "AdminusaBackend\\Repository\\ExelServices\\ExelRepository.cs", + "ViewState": "AQIAADYAAAAAAAAAAAApwE8AAAAIAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-09-18T20:26:57.606Z" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "ExelRepositoryPrecta.cs", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\ExelServices\\ExelRepositoryPrecta.cs", + "RelativeDocumentMoniker": "AdminusaBackend\\Repository\\ExelServices\\ExelRepositoryPrecta.cs", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\ExelServices\\ExelRepositoryPrecta.cs", + "RelativeToolTip": "AdminusaBackend\\Repository\\ExelServices\\ExelRepositoryPrecta.cs", + "ViewState": "AQIAACoAAAAAAAAAAAAYwEUAAAAqAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-09-18T20:26:58.26Z" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "ExelHours.cs", + "DocumentMoniker": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\ExelServices\\ExelHourWorking\\ExelHours.cs", + "RelativeDocumentMoniker": "AdminusaBackend\\Repository\\ExelServices\\ExelHourWorking\\ExelHours.cs", + "ToolTip": "C:\\Projects\\staging\\AdminusaBackend\\AdminusaBackend\\Repository\\ExelServices\\ExelHourWorking\\ExelHours.cs", + "RelativeToolTip": "AdminusaBackend\\Repository\\ExelServices\\ExelHourWorking\\ExelHours.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAkAAAAkAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-09-13T23:37:12.966Z" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/ProjectEvaluation/adminusabackend.metadata.v7.bin b/.vs/ProjectEvaluation/adminusabackend.metadata.v7.bin new file mode 100644 index 0000000000000000000000000000000000000000..e6b31a748c1b40e9d0a2331748a8bda209e8eb1e GIT binary patch literal 252278 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 z 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 ZvI^)5JfsTAO9XD0^cvHzQ??qF+9l5Dy zPzq_O2eccvwjs{v~OYXR#3>j4`88v&aDsesLZEr6|nZGgr2_4}{b+78$O*a_GL z*bUeN_zmzoU@ssIkPg@f*bn#vZ~$-+urw#ZpV;~fa0qZ1@Hb#BZdy5lt)qZ{03-3r z_+!}0QG_4`kQ0y#kQ!V(T=(>3}l;H34S= zY5{5k>Hy9H)CJT7oDDb!P#@3$&=AlFa4w)Rpb4NU;5xoKyyF~ zKubU?Kx@FofHr_j0G9&V0xkoz1GEQR4(I^r2)F{!3D6mECEzN+)qraNT>#ett^-^T z=nCitxB<`|&;w8&eR(6cZUXcK+zhw{&IaRZvfu{z5^@-d=FRz_yO=E;3vS(fL{QM z0ZRZ&0m}f(0V@D20jmJ30c!wj0qX$k0UH1t0h<7+fX#p{fUSUSfL{UI0XqOY0lNUZ z0eb+y0dB-ISZ)IJ1Y7~=1n3O-9hAL*G(b9FA7DS=55NJyLBOAYzW|2-hXH>BjsT7V z{s9~V}x-1;`D^1IP==2gna704NA31SkwB0w@Y71}F|F0XP9r5>N_I8c+sM z7ElgwBA`5=0-z$`B*4jlN`T6MQvg)}RRPri)d4jCrvgp`oDMhxP!n(_pcbGupbp?H zKwUsRz}bLv0QCV401W|+0OtZ41DXJu0?q?81Dp@I0B|877oN0r5w@BGS^!!CS^-)E zE(Wv#TmrZh&=znRpdFw+;Br6*Ku5q8fKGtUfGYu40j>sI1Ly*{7H}QldO%k|H^2>m z?tmVE8v!=~dID|++ydwY=nZIr%JjijU%;(^+W`Flw*&eE1_15=3fJuPKfL8&p0Y+dJor0~`0aF2Q z0Nw<=1(*hy4tN_d127XXA16TXU~3j&HsD>rdw}-=9{@fCd<6IyFbD7nU@l-D;8Vb7 zfX@M60OkX}1bhWp0Qeg44d7eAcYuX}?*WSdKLCCN`~>(J@C#ruURUJU#sRU;|(yU=tt}uo9IFU=QFo!0&*)fHXil zU>{&V;19q7z(K&DfWH8T0EYp81C9WW0{#IU1LP=1kOIgF$OXs^$OFg=$Op&|C;%u3 zCd^EE&yBzxCqc3&;rmB&kgRZ?PGB*^IqyM$WSjJbeM8Msee>bpsoyQ*K=g7=>TU{b{M?8RD!2q1Mjgt-bH1g;%jXd`VqdKD~wD^po z7~?Yv8H@2mV4jyoI46xTle{X&!bo*2s54}al#=%25Rt-TK^Tp(AdJRXP?+(tAdJRX z5JqDx2%|9;gwYra!f1>IVKl~qY2>kB8hI?3Mji{Mk;j5!?2kQ+k3+(!4iJSFA0Ub` zK0wHrEf+2k2FXY{NT#TRh|=Rm9werb2Z?FqL1G$tkSNCZAQ47&kO<50 zSdt^KWg4G}8)>Mh3j>15W1g=)N5`3Q@;icnafhXno?w!op>VGyC_-=u*1^y2Oo4|hn literal 0 HcmV?d00001 diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d37ec09 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,32 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/bin/Debug/net7.0/AdminusaBackend.dll", + "args": [], + "cwd": "${workspaceFolder}", + "stopAtEntry": false, + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+https?://\\S+", + "uriFormat": "https://localhost:5020/swagger/index.html" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..e32cc98 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,103 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder} /AdminusaBackend/AdminusaBackend.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/AdminusaBackend/AdminusaBackend.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/AdminusaBackend/AdminusaBackend.csproj" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish for PRODUCTION", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "/property:Configuration=Release", + "/property:EnvironmentName=Production", + "${workspaceFolder}/AdminusaBackend/AdminusaBackend.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": false, + "close": true + }, + "problemMatcher": "$msCompile" + }, + { + "label": "publish for QA", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "/property:Configuration=Release", + "/property:EnvironmentName=Staging", + "${workspaceFolder}/AdminusaBackend/AdminusaBackend.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": false, + "close": true + }, + "problemMatcher": "$msCompile" + }, + { + "label": "Clean & Build", + "command": "dotnet clean; dotnet build", + "type": "shell", + "args": [ ], + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": false, + "close": true + }, + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/AdminusaBackend.sln b/AdminusaBackend.sln new file mode 100644 index 0000000..8a6daf5 --- /dev/null +++ b/AdminusaBackend.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34714.143 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdminusaBackend", "AdminusaBackend\AdminusaBackend.csproj", "{8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E58CCFA-D856-4B9B-AA47-BC985F0BA3A7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DC38F6D0-0858-4D61-AD80-C7901816A9BE} + EndGlobalSection +EndGlobal diff --git a/AdminusaBackend/.gitignore b/AdminusaBackend/.gitignore new file mode 100644 index 0000000..6bcc92b --- /dev/null +++ b/AdminusaBackend/.gitignore @@ -0,0 +1,402 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +*.dll + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +bin/* +Bin/* +obj/* +Obj/* +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml diff --git a/AdminusaBackend/AdminusaBackend.csproj b/AdminusaBackend/AdminusaBackend.csproj new file mode 100644 index 0000000..4da7a79 --- /dev/null +++ b/AdminusaBackend/AdminusaBackend.csproj @@ -0,0 +1,19 @@ + + + + net7.0 + enable + enable + + + + + + + + + + + + + diff --git a/AdminusaBackend/Clientes/Contracts/ICatResponsablesRepository.cs b/AdminusaBackend/Clientes/Contracts/ICatResponsablesRepository.cs new file mode 100644 index 0000000..dcbe39e --- /dev/null +++ b/AdminusaBackend/Clientes/Contracts/ICatResponsablesRepository.cs @@ -0,0 +1,24 @@ +using AdminusaBackend.Clientes.Email; +/*using ZINCBackend.Clientes.ZincInternacional.Model;*/ +using AdminusaBackend.DTO; +using AdminusaBackend.DTO.Usuario; + +namespace AdminusaBackend.Clientes.Contracts +{ + public interface ICatResponsablesRepository + { + /* public Task> Get(); + public Task> ResponsablesEmailsGetAll();*/ + /*public Task GetByUser(DTOLogin data);*/ + /* public Task searchResponsable(string Usuario);*/ + public Task> CreatePIN(int Id); + public Task ValidatePIN(DTOPINUsuario data); + public Task resetPassword(DTOResetPassword user); + /* public Task> GetEmailsByResponsable(int id);*/ + /*public Task EmailAppend(I1868CatResponsableCorreos data);*/ + /* public Task UserAppend(int id, String Usuario);*/ + /* public Task GetEmailsByIdDetalle(int id); + public Task GetEmailsByInvoice(int id);*/ + /*public Task DeleteEmail(int id);*/ + } +} \ No newline at end of file diff --git a/AdminusaBackend/Clientes/Email/DTOSendEmail.cs b/AdminusaBackend/Clientes/Email/DTOSendEmail.cs new file mode 100644 index 0000000..71b4b30 --- /dev/null +++ b/AdminusaBackend/Clientes/Email/DTOSendEmail.cs @@ -0,0 +1,10 @@ + +namespace AdminusaBackend.Clientes.Email; + +public class DTOSendEmail +{ + public string To { get; set; } = null!; + public string Subject { get; set; } = null!; + public string Text { get; set; } = null!; + public string Html { get; set; } = null!; +} \ No newline at end of file diff --git a/AdminusaBackend/Clientes/Email/DTOSendEmailBcc.cs b/AdminusaBackend/Clientes/Email/DTOSendEmailBcc.cs new file mode 100644 index 0000000..9041ba9 --- /dev/null +++ b/AdminusaBackend/Clientes/Email/DTOSendEmailBcc.cs @@ -0,0 +1,13 @@ + +namespace AdminusaBackend.Clientes.Email +{ + public class DTOSendEmailBcc + { + public string To { get; set; } = null!; + public string Cc { get; set; } = null!; + public string Bcc { get; set; } = null!; + public string Subject { get; set; } = null!; + public string Text { get; set; } = null!; + public string Html { get; set; } = null!; + } +} \ No newline at end of file diff --git a/AdminusaBackend/Clientes/Repository/CatResponsablesRepository.cs b/AdminusaBackend/Clientes/Repository/CatResponsablesRepository.cs new file mode 100644 index 0000000..1d153ca --- /dev/null +++ b/AdminusaBackend/Clientes/Repository/CatResponsablesRepository.cs @@ -0,0 +1,163 @@ +using System.Data.Common; +using System.ComponentModel.DataAnnotations.Schema; +using Dapper; +using Microsoft.AspNetCore.Server.IIS.Core; +using System.Data; +using AdminusaBackend.Clientes.Email; +using AdminusaBackend.Clientes.Contracts; +using AdminusaBackend.Context; +using AdminusaBackend.Crypto; +using AdminusaBackend.DTO; + +using AdminusaBackend.DTO.Usuario; + +namespace AdminusaBackend.Clientes.Repository +{ + public class CatResponsablesRepository : ICatResponsablesRepository + { + + private readonly DapperContext _context; + public CatResponsablesRepository(DapperContext context) { _context = context; } + + /*public async Task> Get() + { + var query = "[CatResponsables.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } +*//* + public async Task GetByUser(DTOLogin data) + { + var query = "[CatResponsables.GetByUser]"; + using var connection = _context.CreateConnection(); + var hashedPassword = CryptDecrypt.Encrypt(data.Contrasena); + var entrada = await connection.QueryAsync(query, new + { + @data.Usuario, + @Contrasena = hashedPassword + }, commandType: CommandType.StoredProcedure); + return entrada.First(); + } +*//* + public async Task searchResponsable(string Usuario) + { + var query = "SELECT * FROM CatResponsables WHERE Usuario=@Usuario"; + using (var connection = _context.CreateConnection()) + { + var usuario = await connection.QueryAsync(query, new { @Usuario }); + return usuario.Count() > 0 ? usuario.First().id : 0; + } + } +*/ + + public async Task> CreatePIN(int Id) + { + var query = "[CatResponsables.PIN.Create]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @Id }, commandType: CommandType.StoredProcedure); + return entrada; + } + + public async Task ValidatePIN(DTOPINUsuario data) + { + var query = "[CatResponsables.PIN.Validate]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @data.PIN, @data.Usuario }, commandType: CommandType.StoredProcedure); + if (result.Count() == 0) return false; + return true; + } + } + + public async Task resetPassword(DTOResetPassword user) + { + var query = "[CatResponsables.Password.Reset]"; + DTOLogin userFound = new DTOLogin(); + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, new + { + @user.PIN, + @Contrasena = user.Contrasena, + @HashContrasena = CryptDecrypt.Encrypt(user.Contrasena), + }, commandType: CommandType.StoredProcedure); + if (usuarios.Count() > 0) userFound = usuarios.First(); + } + return userFound; + } + + /*public async Task EmailAppend(I1868CatResponsableCorreos data) + { + var query = "[CatResponsables.Correo.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id = data.id, + @IdResponsable = data.IdResponsable, + @Correo = data.Correo + }, commandType: CommandType.StoredProcedure); + return entrada.First(); + } +*/ + /* public async Task UserAppend(int id, String Usuario) + { + var query = "[CatResponsables.Usuario.Append]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id, + @Usuario + }, commandType: CommandType.StoredProcedure); + return true; + } +*//* + public async Task> GetEmailsByResponsable(int id) + { + var query = "[CatResponsables.Correo.Get]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @id }, commandType: CommandType.StoredProcedure); + return entrada; + }*/ +/* + public async Task> ResponsablesEmailsGetAll() + { + var query = "[CatResponsables.Correo.GetAll]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return entrada; + } +*/ + /* public async Task GetEmailsByIdDetalle(int id) + { + var query = "[CatResponsables.Correo.GetByIdDetalle]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new DTONotificacionTransportista { Correos = "", Pedido = "", Factura = "", Direccion = "", ResponsableCruce = "" }); + }*/ +/* + public async Task GetEmailsByInvoice(int id) + { + var query = "[CatResponsables.Correo.GetByInvoice]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new + { + @id + }, + commandType: CommandType.StoredProcedure); + return entrada.FirstOrDefault(new DTONotificacionTransportista { Correos = "", Pedido = "", Factura = "", Direccion = "", ResponsableCruce = "" }); + }*/ + + /* public async Task DeleteEmail(int id) + { + var query = "[CatResponsables.Correo.Delete]"; + using var connection = _context.CreateConnection(); + var entrada = await connection.QueryAsync(query, new { @id }, commandType: CommandType.StoredProcedure); + return true; + }*/ + } +} \ No newline at end of file diff --git a/AdminusaBackend/Context/DapperContext.cs b/AdminusaBackend/Context/DapperContext.cs new file mode 100644 index 0000000..fa3999b --- /dev/null +++ b/AdminusaBackend/Context/DapperContext.cs @@ -0,0 +1,19 @@ +using Microsoft.Data.SqlClient; +using System.Data; + + +namespace AdminusaBackend.Context +{ + public class DapperContext + { + private readonly IConfiguration _configuration; + private readonly string _connectionString; + public DapperContext(IConfiguration configuration) + { + _configuration = configuration; + _connectionString = _configuration.GetConnectionString("SqlConnection"); + } + public IDbConnection CreateConnection() + => new SqlConnection(_connectionString); + } +} diff --git a/AdminusaBackend/Contracts/Catalogos/ExelController.cs b/AdminusaBackend/Contracts/Catalogos/ExelController.cs new file mode 100644 index 0000000..cdbfc8a --- /dev/null +++ b/AdminusaBackend/Contracts/Catalogos/ExelController.cs @@ -0,0 +1,129 @@ +using Microsoft.AspNetCore.Mvc; +using System.IO; +using System.Threading.Tasks; +using AdminusaBackend.Repository.ExelServices; +using AdminusaBackend.Repository.ExcelServices; +using AdminusaBackend.Repository.EcxelServices.ExelHourWorking; + +namespace AdminusaBackend.Contracts.Catalogos +{ + + + [Route("api/[controller]")] + [ApiController] + public class ExcelController : ControllerBase + { + private readonly ExcelRepository _repository; + private readonly ExcelRepositoryPrecta _repositoryp; + private readonly ExelHours _repositoryWH; + + + public ExcelController(ExcelRepository repository, ExcelRepositoryPrecta repositoryp, ExelHours repositoryWH) + { + _repository = repository; + _repositoryp = repositoryp; + _repositoryWH = repositoryWH; + + } + + + + [HttpPost("uploadBook")] + public async Task UploadFile([FromForm] IFormFile file) + { + if (file == null || file.Length == 0) + { + return BadRequest("No file uploaded."); + } + + using (var stream = new MemoryStream()) + { + await file.CopyToAsync(stream); + await _repository.ProcessExcelFileAsync(stream); + } + + return Ok(new { message = "File processed successfully." }); + } + + + + + [HttpPost("uploadPrecta")] + public async Task UploadFileP([FromForm] IFormFile file) + { + if (file == null || file.Length == 0) + { + return BadRequest("No file uploaded."); + } + + using (var stream = new MemoryStream()) + { + await file.CopyToAsync(stream); + await _repositoryp.ProcessPrectaExcelFileAsync(stream); + } + + return Ok(new { message = "File processed successfully." }); + } + + + + + [HttpPost("UploadWorkingHours")] + public async Task UploadFileWHours([FromForm] IFormFile file) + { + if (file == null || file.Length == 0) { return BadRequest("No File Uploades"); } + using var stream = new MemoryStream(); + { + await file.CopyToAsync(stream); + await _repositoryWH.ProccesHoursExelFileAysn(stream); + + } + + return Ok(new { message = "File processed successfully" }); + + } + + + + + + // Si La ultima Fecha de los registros de la tabla es 14-08-2024 Las Nuevas inseciones Deben Ser > ala Fecha actal del registro en las Tablas ejemplos: 15-08-2024. + + /* + [HttpPost("UploadWorkingHours")] + public async Task UploadFileWHours([FromForm] IFormFile file) + { + if (file == null || file.Length == 0) + { + return BadRequest("No file uploaded"); + } + + var fileExtension = Path.GetExtension(file.FileName); + + if (fileExtension != ".xls" && fileExtension != ".xlsx") + { + return BadRequest("Unsupported file format. Please upload a .xls or .xlsx file."); + } + + using var stream = new MemoryStream(); + await file.CopyToAsync(stream); + + // Reinicia la posición del stream a 0 + stream.Position = 0; + + try + { + await _repositoryWH.ProcessHoursExcelFileAsync(stream, fileExtension); + return Ok(new { message = "File processed successfully" }); + } + catch (Exception ex) + { + return StatusCode(500, $"An error occurred while processing the file: {ex.Message}"); + } + } + */ + + + } + +} diff --git a/AdminusaBackend/Contracts/Catalogos/ICatChequesPrecuenta.cs b/AdminusaBackend/Contracts/Catalogos/ICatChequesPrecuenta.cs new file mode 100644 index 0000000..f2dc0ca --- /dev/null +++ b/AdminusaBackend/Contracts/Catalogos/ICatChequesPrecuenta.cs @@ -0,0 +1,20 @@ +using AdminusaBackend.DTO.ExelServices; +using AdminusaBackend.Models.Catalogos; +using AdminusaBackend.Models.Reportes; + + +namespace AdminusaBackend.Contracts.Catalogos +{ + public interface ICatChequesPrecuenta + { + + public Task> GetRelacionBooKPrectaPrecuenta(); + public Task> GetRelacionBookPrecta(string Inicio, string Fin); + public Task> PostRelacionPrecuentaCheques(string Precuenta,string Cheques); + public Task> GetRelacionPrecuentaCheque(); + public Task> DeleteRelacionPrecuentaCheque(string Precuenta); + + + public Task>GetRelacionPrecuentaCheque(string Inicio, string Fin); + } +} diff --git a/AdminusaBackend/Contracts/IMenuRepository.cs b/AdminusaBackend/Contracts/IMenuRepository.cs new file mode 100644 index 0000000..d2cc890 --- /dev/null +++ b/AdminusaBackend/Contracts/IMenuRepository.cs @@ -0,0 +1,10 @@ +using AdminusaBackend.Models; + +namespace AdminusaBackend.Contracts +{ + public interface IMenuRepository + { + public Task> GetItemsMenu(Usuarios user); + public Task> GetItemsMenuTransportista(); + } +} \ No newline at end of file diff --git a/AdminusaBackend/Contracts/IPerfilesRepository.cs b/AdminusaBackend/Contracts/IPerfilesRepository.cs new file mode 100644 index 0000000..224a040 --- /dev/null +++ b/AdminusaBackend/Contracts/IPerfilesRepository.cs @@ -0,0 +1,19 @@ +using AdminusaBackend.DTO; +using AdminusaBackend.DTO.Usuario; +using AdminusaBackend.Models; + +namespace AdminusaBackend.Contracts +{ + public interface IPerfilesRepository + { + public Task> getPerfiles(); + public Task PerfilGetById(int id); + public Task> getMenu(); + public Task> getPerfilMenuById(int id); + public Task> getAllPerfilesMenu(); + public Task> createPerfil(DTOPerfilCreate data); + public Task> createItemMenu(Menu data); + public Task> asignaItemMenuPerfil(DTOItemMenuPerfil data); + + } +} \ No newline at end of file diff --git a/AdminusaBackend/Contracts/IUsuariosRepository.cs b/AdminusaBackend/Contracts/IUsuariosRepository.cs new file mode 100644 index 0000000..8c158e8 --- /dev/null +++ b/AdminusaBackend/Contracts/IUsuariosRepository.cs @@ -0,0 +1,25 @@ + +using AdminusaBackend.DTO; +using AdminusaBackend.DTO.Usuario; +using AdminusaBackend.Models; + +namespace AdminusaBackend.Contracts +{ + public interface IUsuariosRepository + { + public Task> getAllUsuariosShort(); + public Task> getAllUsuarios(); + public Task GetUsuario(DTOLogin user); + public Task searchUsuario(string Usuario); + public Task GetUsuarioById(int id); + public Task createUsuario(DTOUsuario user); + public Task CreatePIN(int Id); + public Task ValidatePIN(DTOPINUsuario data); + public Task resetPassword(DTOResetPassword user); + public Task> clonarUsuario(DTOClonarUsuario user); + public Task> CatalogoRolesGET(); + public Task> RolesAsignadosGET(int id); + public Task> GETPerfilesParecidos(string Perfil); + public Task DisableUser(int id); + } +} diff --git a/AdminusaBackend/Contracts/Reportes/IRpRepository.cs b/AdminusaBackend/Contracts/Reportes/IRpRepository.cs new file mode 100644 index 0000000..a06e9bc --- /dev/null +++ b/AdminusaBackend/Contracts/Reportes/IRpRepository.cs @@ -0,0 +1,19 @@ +using AdminusaBackend.DTO.Reportes; +using AdminusaBackend.Models.Reportes; + +namespace AdminusaBackend.Contracts.Reportes +{ + public interface IRptRepository + { + + + public Task> GetWorkingHours(string Inicio, string Fin); + + public Task> GetRelacionesTrafico(); + /*public Task>GetNoRelaciones();*/ + + public Task> GetNoRelaciones(); + + public Task> GetTotalHoursWorkings(string Inicio, string Fin ); + } +} diff --git a/AdminusaBackend/Contracts/Reportes/IRptBookPrectacs.cs b/AdminusaBackend/Contracts/Reportes/IRptBookPrectacs.cs new file mode 100644 index 0000000..5f2f178 --- /dev/null +++ b/AdminusaBackend/Contracts/Reportes/IRptBookPrectacs.cs @@ -0,0 +1,16 @@ +using AdminusaBackend.Models.Reportes; + +namespace AdminusaBackend.Contracts.Reportes +{ + public interface IRptBookPrectacs + { + + /* public Task> GetRelacionesTrafico( ); + *//*public Task>GetNoRelaciones();*//* + + public Task> GetNoRelaciones(); +*/ + + + } +} diff --git a/AdminusaBackend/Controllers/AuthController.cs b/AdminusaBackend/Controllers/AuthController.cs new file mode 100644 index 0000000..eb961cb --- /dev/null +++ b/AdminusaBackend/Controllers/AuthController.cs @@ -0,0 +1,294 @@ +using AdminusaBackend.Models; +using Microsoft.IdentityModel.Tokens; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; +using Microsoft.AspNetCore.Mvc; +using AdminusaBackend.Contracts; +using AdminusaBackend.DTO; +using Microsoft.AspNetCore.Authorization; +using AdminusaBackend.Clientes.Contracts; +using AdminusaBackend.Services.Utilerias; +using AdminusaBackend.Clientes.Email; +using AdminusaBackend.DTO.Usuario; + + + +namespace AdminusaBackend.Controllers +{ + [Route("api/[Controller]")] + [ApiController] + public class AuthController : ControllerBase + { + public IConfiguration _config; + private readonly IUsuariosRepository _usuariosRepo; + private readonly IPerfilesRepository _perfilesRepo; + private readonly IMenuRepository _menuRepo; + private readonly ICatResponsablesRepository _transportRepo; + + public AuthController(IConfiguration config, IUsuariosRepository usuariosRepo, IMenuRepository menuRepo, IPerfilesRepository perfilesRepo, ICatResponsablesRepository transportRepo ) + { + _config = config; + _usuariosRepo = usuariosRepo; + _perfilesRepo = perfilesRepo; + _menuRepo = menuRepo; + _transportRepo = transportRepo; + } + + [HttpPost] + public async Task Post(DTOLogin _userData) + { + if (_userData.Contrasena == _config.GetValue("DefaultUser:Password")) + { + return StatusCode(401, "La primera vez que accese debera cambiar su contraseña!"); + } + if (_userData != null && _userData.Usuario != null && _userData.Contrasena != null) + { + var user = await _usuariosRepo.GetUsuario(_userData); + if (user == null) return BadRequest("Invalid credentials"); + if (user != null) + { + var menu = await _menuRepo.GetItemsMenu(user); + var claims = new List(); + var ProfileData = await _perfilesRepo.PerfilGetById(user.Id); + claims.Add(new Claim(JwtRegisteredClaimNames.Sub, _config["Jwt:Subject"])); + claims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); + claims.Add(new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString())); + claims.Add(new Claim("UserId", user.Id.ToString())); + claims.Add(new Claim("Usuario", user.Usuario)); + claims.Add(new Claim("Departamento", (user.sDept ?? user.sDept ?? "No asignado"))); + claims.Add(new Claim("UserType", (user != null) ? user.TipoUsuario.ToString() : "0")); + claims.Add(new Claim("Perfil", ProfileData.Perfil)); + foreach (Menu item in menu) { claims.Add(new Claim(ClaimTypes.Role, item.Url)); } + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); + var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + var token = new JwtSecurityToken( + _config["Jwt:Issuer"], + _config["Jwt:Audience"], + claims, + expires: DateTime.UtcNow.AddHours(Int32.Parse(_config["Jwt:ExpirationHours"])), + // expires: DateTime.UtcNow.AddMinutes(2), + signingCredentials: signIn); + + var _token = new JwtSecurityTokenHandler().WriteToken(token); + return new OkObjectResult(new { menu = menu, token = _token }); + } + else + { + return BadRequest("Invalid credentials"); + } + } + else + { + return BadRequest(); + } + } + + /*[HttpPost] + [Route("AreYouTransport")] + public async Task IsItTransportUser(DTOLogin _userData) + { + if (_userData != null && _userData.Usuario != null && _userData.Contrasena != null) + { + var user = await _transportRepo.GetByUser(_userData); + if (user == null) return BadRequest("Invalid credentials"); + if (user != null) + { + var menu = await _menuRepo.GetItemsMenuTransportista(); + var claims = new List(); + var ProfileData = await _perfilesRepo.PerfilGetById(0); + claims.Add(new Claim(JwtRegisteredClaimNames.Sub, _config["Jwt:Subject"])); + claims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); + claims.Add(new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString())); + claims.Add(new Claim("UserId", user.id.ToString())); + claims.Add(new Claim("Usuario", user.Usuario)); + claims.Add(new Claim("Departamento", "No asignado")); + claims.Add(new Claim("UserType", "0")); + claims.Add(new Claim("Perfil", "Transportista")); + foreach (Menu item in menu) { claims.Add(new Claim(ClaimTypes.Role, item.Url)); } + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); + var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + var token = new JwtSecurityToken( + _config["Jwt:Issuer"], + _config["Jwt:Audience"], + claims, + expires: DateTime.UtcNow.AddHours(Int32.Parse(_config["Jwt:ExpirationHours"])), + signingCredentials: signIn); + + var _token = new JwtSecurityTokenHandler().WriteToken(token); + return new OkObjectResult(new { menu = menu, token = _token }); + } + else + { + return BadRequest("Invalid credentials"); + } + } + else + { + return BadRequest(); + } + } +*/ + [HttpGet] + [Route("GetPermissions")] + public async Task GetPermissions(string Usuario, string Contrasena) + { + DTOLogin _userData = new DTOLogin(); + _userData.Usuario = Usuario; + _userData.Contrasena = Contrasena; + if (_userData.Contrasena == _config.GetValue("DefaultUser:Password")) + { + return StatusCode(401, "La primera vez que accese debera cambiar su contraseña!"); + } + if (_userData != null && _userData.Usuario != null && _userData.Contrasena != null) + { + var user = await _usuariosRepo.GetUsuario(_userData); + if (user == null) return BadRequest("Invalid credentials"); + if (user != null) + { + var menu = await _menuRepo.GetItemsMenu(user); + var claims = new List(); + foreach (Menu item in menu) { claims.Add(new Claim(ClaimTypes.Role, item.Url)); } + var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); + var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); + var token = new JwtSecurityToken( + _config["Jwt:Issuer"], + _config["Jwt:Audience"], + claims, + expires: DateTime.UtcNow.AddHours(Int32.Parse(_config["Jwt:ExpirationHours"])), + //expires: DateTime.UtcNow.AddMinutes(5), + signingCredentials: signIn); + + var _token = new JwtSecurityTokenHandler().WriteToken(token); + return new OkObjectResult(new { menu = menu, token = _token }); + } + else + { + return BadRequest("Invalid credentials"); + } + } + else + { + return BadRequest(); + } + } + + [HttpPost] + [Route("forgotPassword")] + public async Task forgotPassword(DTOLogin userData) + { + if (userData == null) return BadRequest(new { respuesta = "Usuario invalido" }); + int IdUser = await _usuariosRepo.searchUsuario(userData.Usuario); + if (IdUser > 0) // Es un usuario del ZINC + { + DTOPINData PINData = await _usuariosRepo.CreatePIN(IdUser); + string htmlContent = $@" + + + + +
Estimado usuario, mediante este correo se le notifica que esta en proceso de cambiar su contraseña
Se ha generado un PIN para poder cambiar su contraseña. PIN : {PINData.PIN}
El PIN tiene un tiempo de vida de 10 minutos, a partir de su generacion, despues de ese tiempo caduca
Si usted no es quien ha activando este mecanismo, favor de ponerse en contacto con personal de GEMCO
"; + if (PINData.PIN > 0) + { + Utilerias email = new Utilerias(_config); + var dataEmail = new DTOSendEmail() + { + To = PINData.Correo, + Subject = "adminusa informa: Se le generado un PIN para el cambio de su contraseña, expira en 10 minutos", + Text = "adminusa informa: Se le generado un PIN para el cambio de su contraseña, expira en 10 minutos", + Html = htmlContent + }; + await email.SendEmail(dataEmail); + return new OkObjectResult(new { respuesta = "Continua con el proceso" }); + } + } + /*else // Es un usuario : Transportista / Responsable + { + int IdResponsable = await _transportRepo.searchResponsable(userData.Usuario); + if (IdResponsable > 0) + { + var PINData = await _transportRepo.CreatePIN(IdResponsable); + int PIN = 0; + string EmailGroup = ""; + foreach (DTOPINData data in PINData) + { + PIN = data.PIN; + EmailGroup += data.Correo + ","; + } + EmailGroup = EmailGroup.Remove(EmailGroup.Length - 1, 1); + string htmlContent = $@" + + + + +
Estimado usuario, mediante este correo se le notifica que esta en proceso de cambiar su contraseña
Se ha generado un PIN para poder cambiar su contraseña. PIN : {PIN}
El PIN tiene un tiempo de vida de 10 minutos, a partir de su generacion, despues de ese tiempo caduca
Si usted no es quien ha activando este mecanismo, favor de ponerse en contacto con personal de ZINC
"; + if (PIN > 0) + { + Utilerias email = new Utilerias(_config); + var dataEmail = new DTOSendEmail() + { + To = EmailGroup, + Subject = "ZINC informa: Se le generado un PIN para el cambio de su contraseña, expira en 10 minutos", + Text = "ZINC informa: Se le generado un PIN para el cambio de su contraseña, expira en 10 minutos", + Html = htmlContent + }; + await email.SendEmail(dataEmail); + return new OkObjectResult(new { respuesta = "Continua con el proceso" }); + } + } + else return StatusCode(403, "Acceso denegado"); + }*/ + return BadRequest(new { respuesta = "Invalid Request" }); + } + + [HttpPost] + [Route("validatePIN")] + public async Task validatePIN(DTOPINUsuario userData) + { + var PINUsuario = await _usuariosRepo.ValidatePIN(userData); + if (!PINUsuario) + { + var PINTransportista = await _transportRepo.ValidatePIN(userData); + if (!PINTransportista) return StatusCode(403, "Acceso denegado"); + } + return new OkObjectResult(new { respuesta = "Continua con el proceso" }); + } + + [Route("resetPassword")] + [HttpPost] + public async Task resetPassword(DTOResetPassword data) + { + try + { + var result = await _usuariosRepo.resetPassword(data); + if (result.Usuario == null) + { + var resetPassword = await _transportRepo.resetPassword(data); + if (resetPassword == null) return StatusCode(400, "Cuenta de usuario no existe"); + } + return Ok(result); + } + catch (Exception ex) + { + return StatusCode(500, ex); + } + } + + [HttpGet] + [Route("GetEnvironment")] + public IActionResult GetEnvironment() + { + return StatusCode(200, Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") + ' ' + _config.GetValue("AmazonPyAPI")); + } + + + [Authorize] + [Route("Validate")] + [HttpGet] + public IActionResult GetValidation() + { + return StatusCode(200, "Its Ok"); + } + + } +} diff --git a/AdminusaBackend/Controllers/Catalogos/CatalogoRelacionesController.cs b/AdminusaBackend/Controllers/Catalogos/CatalogoRelacionesController.cs new file mode 100644 index 0000000..4c02294 --- /dev/null +++ b/AdminusaBackend/Controllers/Catalogos/CatalogoRelacionesController.cs @@ -0,0 +1,103 @@ +using AdminusaBackend.Models.Catalogos; +using AdminusaBackend.Models.Reportes; +using AdminusaBackend.Contracts.Catalogos; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace AdminusaBackend.Controllers.Catalogos +{ + + /*[Authorize]*/ + [Route("api/Catalogos/[Controller]")] + public class CatRelacionesBookPrectaController : Controller + { + + + public IConfiguration _Configuration; + + private readonly ICatChequesPrecuenta _Repo; + + private readonly string URLNodeAPI; + + public CatRelacionesBookPrectaController(IConfiguration config, ICatChequesPrecuenta Repo) + { + + _Configuration = config; + URLNodeAPI = _Configuration.GetValue("AmazonNodeApi"); + _Repo = Repo; + } + + + + + [Route("GetAll")] + [HttpGet] + public async Task> GetRelacionBookPrecta(string Inicio, string Fin) + { + var result = await _Repo.GetRelacionBookPrecta(Inicio, Fin); + return result; + + + } + + + [Route("GetAllPreChe")] + [HttpGet] + public async Task> GetRelacionBookPrectaPrecuenta() + { + var result = await _Repo.GetRelacionBooKPrectaPrecuenta(); + return result; + } + + + + [Route("PrecuentaChequesAppend")] + [HttpPost] + public async Task> PostRelacionPrecuentaCheques(string Precuenta, string Cheques) + { + var result = await _Repo.PostRelacionPrecuentaCheques(Precuenta, Cheques); + return result; + } + + + [Route("GetAllPrecuentaCheques")] + [HttpGet] + public async Task> GetRelacionPrecuentaCheques() + { + var result = await _Repo.GetRelacionPrecuentaCheque(); + return result; + } + + + [Route("DeleteAllPrecuentaCheques")] + [HttpDelete] + public async Task> DeleteRelacionChequesPrecuenta(string Precuenta) + { + var result = await _Repo.DeleteRelacionPrecuentaCheque(Precuenta); + return result; + } + + + + + + /*Este edn point relaiza la busqueda de datos por un filtro de un rango de fechas selecionado pero con las relaciones ya de la tabla y no con codigo */ + [Route("GetAllPrecuentaChequesF")] + [HttpGet] + public async Task> GetRelacionPrecuentaCheque(string Inicio, string Fin) + + { + var result = await _Repo.GetRelacionPrecuentaCheque(Inicio, Fin); + return result; + } + + + + + + + + + + } +} diff --git a/AdminusaBackend/Controllers/PerfilesController.cs b/AdminusaBackend/Controllers/PerfilesController.cs new file mode 100644 index 0000000..65170eb --- /dev/null +++ b/AdminusaBackend/Controllers/PerfilesController.cs @@ -0,0 +1,167 @@ +using AdminusaBackend.Contracts; +using AdminusaBackend.DTO; +using AdminusaBackend.DTO.Usuario; +using AdminusaBackend.Models; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; + +namespace AdminusaBackend.Controllers +{ + [Authorize] + [Route("api/[controller]")] + [ApiController] + public class PerfilesController : ControllerBase + { + public IConfiguration _configuration; + private readonly IUsuariosRepository _usuariosRepo; + private readonly IMenuRepository _menuRepo; + private readonly IPerfilesRepository _perfilesRepo; + public PerfilesController(IConfiguration config, IUsuariosRepository usuariosRepo, IMenuRepository menuRepo, IPerfilesRepository perfilesRepo) + { + _configuration = config; + _usuariosRepo = usuariosRepo; + _menuRepo = menuRepo; + _perfilesRepo = perfilesRepo; + } + + [Route("getPerfiles")] + [HttpGet] + public async Task GetPerfiles() + { + try + { + var perfiles = await _perfilesRepo.getPerfiles(); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("getMenu")] + [HttpGet] + public async Task GetMenu() + { + try + { + var perfiles = await _perfilesRepo.getMenu(); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + + [Route("asignaItemMenu")] + [HttpPost] + public async Task asignaItemMenu(DTOItemMenuPerfil data) + { + try + { + var perfiles = await _perfilesRepo.asignaItemMenuPerfil(data); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("getAllPerfilesMenu")] + [HttpGet] + public async Task GetAllPerfilesMenu() + { + try + { + var perfiles = await _perfilesRepo.getAllPerfilesMenu(); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + + [Route("getPerfilMenuById")] + [HttpGet] + public async Task GetPerfilMenuBuId(int id) + { + try + { + var perfiles = await _perfilesRepo.getPerfilMenuById(id); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("createPerfil")] + [HttpPost] + public async Task createPerfil(DTOPerfilCreate data) + { + try + { + var perfiles = await _perfilesRepo.createPerfil(data); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + + [Route("createItemMenu")] + [HttpPost] + public async Task createItemMenu(Menu data) + { + try + { + var result = await _perfilesRepo.createItemMenu(data); + return Ok(result); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + +/* + [Route("getAllTransportistas")] + [HttpGet] + public async Task GetAllTransportistas(int id) + { + try + { + var transportistas = await _perfilesRepo.getAllTransportistas(id); + return Ok(transportistas); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("getAllProveedores")] + [HttpGet] + public async Task GetAllProveedores(int id) + { + try + { + var proveedores = await _perfilesRepo.getAllProveedores(id); + return Ok(proveedores); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + }*/ + + } +} \ No newline at end of file diff --git a/AdminusaBackend/Controllers/Reportes/ReportesController.cs b/AdminusaBackend/Controllers/Reportes/ReportesController.cs new file mode 100644 index 0000000..29862dd --- /dev/null +++ b/AdminusaBackend/Controllers/Reportes/ReportesController.cs @@ -0,0 +1,72 @@ +using AdminusaBackend.Contracts.Catalogos; +using AdminusaBackend.Contracts.Reportes; +using AdminusaBackend.DTO.Reportes; +using AdminusaBackend.Models.Reportes; +using Microsoft.AspNetCore.Mvc; + + +namespace AdminusaBackend.Controllers.Reportes +{ + + [Route("api/[controller]")] + + public class ReportesController : Controller + { + + public IConfiguration _Configuration; + + private readonly IRptRepository _Repo; + + + public ReportesController(IConfiguration config, IRptRepository Repo) + { + _Configuration = config; + _Repo = Repo; + } + + + + [Route("GetAllSoloTrafico")] + [HttpGet] + public async Task> GetRelacionTrafico() + { + var result = await _Repo.GetRelacionesTrafico(); + return result; + } + + + [Route("GetAllNoRelaciones")] + [HttpGet] + public async Task> GetNoRelaciones() + { + var result = await _Repo.GetNoRelaciones(); + return result; + } + + [Route("GetAllWorkingHours")] + [HttpGet] + + public async Task> GetWorkingHours(string Inicio, string Fin) + { + var result = await _Repo.GetWorkingHours(Inicio, Fin); + return result; + } + + + + [Route("TotalHours")] + [HttpGet] + public async Task> GetTotalHoursWorkings(string Inicio, string Fin) + { + var result = await _Repo.GetTotalHoursWorkings(Inicio, Fin); + return result; + } + + + + + + + + } +} diff --git a/AdminusaBackend/Controllers/UsuariosController.cs b/AdminusaBackend/Controllers/UsuariosController.cs new file mode 100644 index 0000000..893bae7 --- /dev/null +++ b/AdminusaBackend/Controllers/UsuariosController.cs @@ -0,0 +1,173 @@ +using AdminusaBackend.Contracts; +using AdminusaBackend.DTO; +using AdminusaBackend.Models; +using Microsoft.AspNetCore.Mvc; +// La siguiente libreria sirve para enviar un email de notificacion al usuario de que se le ha creado un acceso a este sitio +// using ZINCBackend.Services.Utilerias; +using AdminusaBackend.DTO.Usuario; +using Microsoft.AspNetCore.Authorization; + +namespace AdminusaBackend.Controllers +{ + /*[Authorize]*/ + [Route("api/[controller]")] + [ApiController] + public class UsuariosController : ControllerBase + { + private readonly IUsuariosRepository _usuariosRepo; + private readonly IConfiguration _config; + + public UsuariosController(IUsuariosRepository usuariosRepo, IConfiguration config) { _usuariosRepo = usuariosRepo; _config = config; } + + [Route("getUsuarioById")] + [HttpGet] + public async Task getAllUsuarios(int id) + { + try + { + var usuario = await _usuariosRepo.GetUsuarioById(id); + if (usuario == null) return NotFound(); + return Ok(usuario); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("getAllUsuarios")] + [HttpGet] + public async Task getAllUsuarios() + { + try + { + var usuarios = await _usuariosRepo.getAllUsuarios(); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("getAllUsuariosShort")] + [HttpGet] + public async Task getAllUsuariosShort() + { + try + { + var usuarios = await _usuariosRepo.getAllUsuariosShort(); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("Auth")] + [HttpPost] + public async Task Auth(DTOLogin user) + { + try + { + var usuarios = await _usuariosRepo.GetUsuario(user); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("searchUsuario")] + [HttpPost] + public async Task searchUsuario(DTOLogin user) + { + try + { + var result = await _usuariosRepo.searchUsuario(user.Usuario); + if (result != null) return StatusCode(409, new { message = "Usuario registrado previamente" }); + return Ok(new { message = "Usuario libre, no registrado previamente" }); + } + catch (Exception ex) + { + return StatusCode(500, ex); + } + } + + [Route("createUsuario")] + [HttpPost] + public async Task POST(DTOUsuario user) + { + try + { + var usuario = await _usuariosRepo.createUsuario(user); + if (user.Id == 0) + { + // El siguiente bloque de codigo enviar email al usuario para notificarle que ya se le he creado un acceso + // Utilerias email = new Utilerias(_config); + // Boolean sendOk = email.SendEmail("", usuario); + //Boolean sendOk = true; + } + return Ok(usuario); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("clonarUsuario")] + [HttpPost] + public async Task POST(DTOClonarUsuario user) + { + try + { + var usuarios = await _usuariosRepo.clonarUsuario(user); + return Ok(usuarios); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("Catalogo/Roles/GET")] + [HttpGet] + public async Task CatalogoRolesGET() + { + try + { + var Roles = await _usuariosRepo.CatalogoRolesGET(); + return Ok(Roles); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + [Route("Catalogo/Roles/AsignadosGET")] + [HttpGet] + public async Task RolesAsignadosGET(int id) + { + try + { + var Roles = await _usuariosRepo.RolesAsignadosGET(id); + return Ok(Roles); + } + catch (Exception ex) { return StatusCode(500, ex.Message); } + } + + + [Route("Catalogo/Usuarios/PerfilesParecidos")] + [HttpGet] + public async Task GETPerfilesParecidos(string Perfil) + { + try + { + var perfiles = await _usuariosRepo.GETPerfilesParecidos(Perfil); + return Ok(perfiles); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + + [Route("DisableUser")] + [HttpPut] + public async Task DisableUser(int id) + { + try + { + var result = await _usuariosRepo.DisableUser(id); + return Ok(result); + } + catch (Exception ex) + { + return StatusCode(500, ex.Message); + } + } + } +} diff --git a/AdminusaBackend/Controllers/WeatherForecastController.cs b/AdminusaBackend/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..5905931 --- /dev/null +++ b/AdminusaBackend/Controllers/WeatherForecastController.cs @@ -0,0 +1,33 @@ +using Microsoft.AspNetCore.Mvc; + +namespace AdminusaBackend.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet(Name = "GetWeatherForecast")] + public IEnumerable Get() + { + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = Summaries[Random.Shared.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/AdminusaBackend/Crypto/Crypto.cs b/AdminusaBackend/Crypto/Crypto.cs new file mode 100644 index 0000000..55c2849 --- /dev/null +++ b/AdminusaBackend/Crypto/Crypto.cs @@ -0,0 +1,48 @@ +using System.Security.Cryptography; +using System.Text; + +namespace AdminusaBackend.Crypto +{ + public class CryptDecrypt + { + private readonly static string key = "G3mc0H42hk3y2!0$2*2#n4813dc2h47p"; + public static string Encrypt(string text) + { + byte[] iv = new byte[16]; + byte[] array; + using (Aes aes = Aes.Create()) { + aes.Key = Encoding.UTF8.GetBytes(key); + aes.IV = iv; + ICryptoTransform encrypt = aes.CreateEncryptor(aes.Key, aes.IV); + using (MemoryStream ms = new MemoryStream()) + { + using (CryptoStream cryptoStream = new CryptoStream((Stream)ms, encrypt, CryptoStreamMode.Write)) { + using (StreamWriter streamWriter = new StreamWriter(cryptoStream)) { + streamWriter.Write(text); + } + array = ms.ToArray(); + } + } + } + return Convert.ToBase64String(array); + } + + public static string Decrypt(string text) + { + byte[] iv = new byte[16]; + byte[] buffer = Convert.FromBase64String(text); + using (Aes aes = Aes.Create()) { + aes.Key = Encoding.UTF8.GetBytes(key); + aes.IV = iv; + ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key,aes.IV); + using (MemoryStream ms = new MemoryStream(buffer)) { + using(CryptoStream cryptoStream = new CryptoStream((Stream)ms, decryptor, CryptoStreamMode.Read)) { + using (StreamReader sr = new StreamReader(cryptoStream)) { + return sr.ReadToEnd(); + } + } + } + } + } + } +} diff --git a/AdminusaBackend/DTO/DTOItemMenuPerfil.cs b/AdminusaBackend/DTO/DTOItemMenuPerfil.cs new file mode 100644 index 0000000..925d898 --- /dev/null +++ b/AdminusaBackend/DTO/DTOItemMenuPerfil.cs @@ -0,0 +1,10 @@ +namespace AdminusaBackend.DTO +{ + public class DTOItemMenuPerfil + { + public int IdPerfil { get; set; } = 0; + public int itemMenu { get; set; } = 0; + public bool asignado { get; set; } = false; + + } +} diff --git a/AdminusaBackend/DTO/DTOLogin.cs b/AdminusaBackend/DTO/DTOLogin.cs new file mode 100644 index 0000000..88be44b --- /dev/null +++ b/AdminusaBackend/DTO/DTOLogin.cs @@ -0,0 +1,8 @@ +namespace AdminusaBackend.DTO +{ + public class DTOLogin + { + public string Usuario { get; set; } = null!; + public string Contrasena { get; set; } = null!; + } +} diff --git a/AdminusaBackend/DTO/DTORolesAsignados.cs b/AdminusaBackend/DTO/DTORolesAsignados.cs new file mode 100644 index 0000000..4dbb629 --- /dev/null +++ b/AdminusaBackend/DTO/DTORolesAsignados.cs @@ -0,0 +1,11 @@ + +namespace AdminusaBackend.DTO +{ + public class DTORolesAsignados + { + public int Id { get; set; } = 0; + public int Usuario { get; set; } = 0; + public int Rol { get; set; } = 0; + public Boolean Activo { get; set; } = false; + } +} \ No newline at end of file diff --git a/AdminusaBackend/DTO/ExelServices/Book.cs b/AdminusaBackend/DTO/ExelServices/Book.cs new file mode 100644 index 0000000..6098b59 --- /dev/null +++ b/AdminusaBackend/DTO/ExelServices/Book.cs @@ -0,0 +1,24 @@ +namespace AdminusaBackend.DTO.ExelServices +{ + public class Book + { + + + + + public string? Type { get; set; } + public string? Cheques { get; set; } + public string? Date { get; set; } + public string? Num { get; set; } + public string? Name { get; set; } + public string? Memo { get; set; } + /* public float Amount { get; set; }*/ + + public decimal? Amount { get; set; } + + public string? Trafico { get; set; } + + + } + +} diff --git a/AdminusaBackend/DTO/ExelServices/Precta.cs b/AdminusaBackend/DTO/ExelServices/Precta.cs new file mode 100644 index 0000000..a4d3b66 --- /dev/null +++ b/AdminusaBackend/DTO/ExelServices/Precta.cs @@ -0,0 +1,18 @@ + +namespace AdminusaBackend.DTO.ExelServices +{ + public class Precta + { + public string? Trafico { get; set; } + public string? Precuenta { get; set; } + public string? Concepto { get; set; } + public string? Importe { get; set; } + public string? Cantidad { get; set; } + public string? Tipo { get; set; } + public string? IdProvedor { get; set; } + public string? NomProvedor { get; set; } + public string? TagTabulador { get; set; } + public string? NombreTabulador { get; set; } + public string? Rctadeb { get; set; } + } +} diff --git a/AdminusaBackend/DTO/Reportes/TotalHoursWorking.cs b/AdminusaBackend/DTO/Reportes/TotalHoursWorking.cs new file mode 100644 index 0000000..1b622e7 --- /dev/null +++ b/AdminusaBackend/DTO/Reportes/TotalHoursWorking.cs @@ -0,0 +1,17 @@ +namespace AdminusaBackend.DTO.Reportes +{ + public class TotalHoursWorking + { + + public string? EmpNo { get; set; } + public string? AcNo { get; set;} + + public string? Name { get; set;} + public string? TotalHoursAccumulated { get; set;} + + public string? TotalHoursWithMilitaryMinutes { get; set;} + + + + } +} diff --git a/AdminusaBackend/DTO/Usuario/DTOClonarUsuario.cs b/AdminusaBackend/DTO/Usuario/DTOClonarUsuario.cs new file mode 100644 index 0000000..be012f5 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOClonarUsuario.cs @@ -0,0 +1,10 @@ + +namespace AdminusaBackend.DTO.Usuario + +{ + public class DTOClonarUsuario + { + public int IDUsuarioOrigen { get; set; } = 0!; + public int IdUsuarioDestino { get; set; } = 0!; + } +} diff --git a/AdminusaBackend/DTO/Usuario/DTOPINData.cs b/AdminusaBackend/DTO/Usuario/DTOPINData.cs new file mode 100644 index 0000000..3047406 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOPINData.cs @@ -0,0 +1,8 @@ +namespace AdminusaBackend.DTO.Usuario +{ + public class DTOPINData + { + public int PIN { get; set; } = 0!; + public string Correo { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/AdminusaBackend/DTO/Usuario/DTOPINUsuario.cs b/AdminusaBackend/DTO/Usuario/DTOPINUsuario.cs new file mode 100644 index 0000000..fc98111 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOPINUsuario.cs @@ -0,0 +1,8 @@ +namespace AdminusaBackend.DTO.Usuario +{ + public class DTOPINUsuario + { + public int PIN { get; set; } = 0!; + public string Usuario { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/AdminusaBackend/DTO/Usuario/DTOPerfilCreate.cs b/AdminusaBackend/DTO/Usuario/DTOPerfilCreate.cs new file mode 100644 index 0000000..38d7cc5 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOPerfilCreate.cs @@ -0,0 +1,8 @@ +namespace AdminusaBackend.DTO.Usuario +{ + public class DTOPerfilCreate + { + public string Perfil { get; set; } = null!; + public int IdPerfilClonado { get; set; } = 0!; + } +} diff --git a/AdminusaBackend/DTO/Usuario/DTOResetPassword.cs b/AdminusaBackend/DTO/Usuario/DTOResetPassword.cs new file mode 100644 index 0000000..1d8bf49 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOResetPassword.cs @@ -0,0 +1,8 @@ +namespace AdminusaBackend.DTO.Usuario +{ + public class DTOResetPassword + { + public int PIN { get; set; } = 0; + public string Contrasena { get; set; } = null!; + } +} \ No newline at end of file diff --git a/AdminusaBackend/DTO/Usuario/DTOUsuario.cs b/AdminusaBackend/DTO/Usuario/DTOUsuario.cs new file mode 100644 index 0000000..b85c120 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOUsuario.cs @@ -0,0 +1,14 @@ +namespace AdminusaBackend.DTO.Usuario +{ + public class DTOUsuario + { + public int Id { get; set; } = 0; + public string Usuario { get; set; } = null!; + public string Nombre { get; set; } = null!; + public string? Contrasena { get; set; } = null!; + public string Correo { get; set; } = null!; + public int TipoUsuario { get; set; } = 0; + public int IdPerfil { get; set; } = 0; + public string? FechaAlta { get; set; } = null!; + } +} \ No newline at end of file diff --git a/AdminusaBackend/DTO/Usuario/DTOUsuarioTransportista.cs b/AdminusaBackend/DTO/Usuario/DTOUsuarioTransportista.cs new file mode 100644 index 0000000..9c94b09 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOUsuarioTransportista.cs @@ -0,0 +1,9 @@ +namespace AdminusaBackend.DTO.Usuario +{ + public class DTOUsuarioTransportista + { + public int IdUsuario { get; set; } + public int sClave { get; set; } + public bool Asignado { get; set; } + } +} diff --git a/AdminusaBackend/DTO/Usuario/DTOUsuariosPerfilParecido.cs b/AdminusaBackend/DTO/Usuario/DTOUsuariosPerfilParecido.cs new file mode 100644 index 0000000..8630a67 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOUsuariosPerfilParecido.cs @@ -0,0 +1,8 @@ +namespace AdminusaBackend.DTO.Usuario; + +public class DTOUsuariosPerfilParecido +{ + public int IdUsuario { get; set; } = 0; + public string Nombre { get; set; } = null!; + public string Perfil { get; set; } = null!; +} diff --git a/AdminusaBackend/DTO/Usuario/DTOUsuariosShort.cs b/AdminusaBackend/DTO/Usuario/DTOUsuariosShort.cs new file mode 100644 index 0000000..47234c0 --- /dev/null +++ b/AdminusaBackend/DTO/Usuario/DTOUsuariosShort.cs @@ -0,0 +1,9 @@ +namespace AdminusaBackend.DTO.Usuario +{ + public class DTOUsuariosShort + { + public int id { get; set; } = 0!; + public string Usuario { get; set; } = null!; + public Boolean Activo { get; set; } = false; + } +} diff --git a/AdminusaBackend/Models/CatRoles.cs b/AdminusaBackend/Models/CatRoles.cs new file mode 100644 index 0000000..6c7dd63 --- /dev/null +++ b/AdminusaBackend/Models/CatRoles.cs @@ -0,0 +1,9 @@ +namespace AdminusaBackend.Models +{ + public class CatRoles + { + public int Id { set; get; } + public string Rol { set; get; } = null!; + public byte Activo { set; get; } + } +} \ No newline at end of file diff --git a/AdminusaBackend/Models/Catalogos/CatRelacionPrecuentaCheque.cs b/AdminusaBackend/Models/Catalogos/CatRelacionPrecuentaCheque.cs new file mode 100644 index 0000000..e7d9615 --- /dev/null +++ b/AdminusaBackend/Models/Catalogos/CatRelacionPrecuentaCheque.cs @@ -0,0 +1,11 @@ +namespace AdminusaBackend.Models.Catalogos +{ + public class CatRelacionPrecuentaCheque + { + public int id { get; set; } + public string? Precuenta { get; set; } + public string? Cheques { get; set; } + + + } +} diff --git a/AdminusaBackend/Models/Menu.cs b/AdminusaBackend/Models/Menu.cs new file mode 100644 index 0000000..8b58d24 --- /dev/null +++ b/AdminusaBackend/Models/Menu.cs @@ -0,0 +1,11 @@ +namespace AdminusaBackend.Models +{ + public class Menu + { + public int Id { get; set; } + public string Descripcion { get; set; } = null!; + public int PadreId { get; set; } + public int Posicion { get; set; } + public string Url { get; set; } = null!; + } +} \ No newline at end of file diff --git a/AdminusaBackend/Models/Perfiles.cs b/AdminusaBackend/Models/Perfiles.cs new file mode 100644 index 0000000..5e8b8b4 --- /dev/null +++ b/AdminusaBackend/Models/Perfiles.cs @@ -0,0 +1,8 @@ +namespace AdminusaBackend.Models +{ + public class Perfiles + { + public int id { get; set; } + public string Perfil { get; set; } = string.Empty; + } +} diff --git a/AdminusaBackend/Models/PerfilesMenu.cs b/AdminusaBackend/Models/PerfilesMenu.cs new file mode 100644 index 0000000..3094984 --- /dev/null +++ b/AdminusaBackend/Models/PerfilesMenu.cs @@ -0,0 +1,16 @@ +namespace AdminusaBackend.Models +{ + public class PerfilesMenu + { + public int id { set; get; } + public int IdPerfil { set; get; } + public int itemMenu { set; get; } + public string Perfil { set; get; } = null!; + public string Descripcion { set; get; } = null!; + public int PadreId { set; get; } + public int Posicion { set; get; } + public string Url { set; get; } = null!; + public int Habilitado { set; get; } + public int Agrupado { set; get; } + } +} \ No newline at end of file diff --git a/AdminusaBackend/Models/Reportes/RelacionBookPrecta.cs b/AdminusaBackend/Models/Reportes/RelacionBookPrecta.cs new file mode 100644 index 0000000..7712071 --- /dev/null +++ b/AdminusaBackend/Models/Reportes/RelacionBookPrecta.cs @@ -0,0 +1,41 @@ +namespace AdminusaBackend.Models.Reportes +{ + public class RelacionBookPrecta + { + + public string? Type { get; set; } + public string? Cheques { get; set; } + public string? Date { get; set; } + public string? Num { get; set; } + public string? Name { get; set; } + public string? Memo { get; set; } + public double Amount { get; set; } + public string? Trafico { get; set; } + public string? Trafico1 { get; set; } + public string? Precuenta { get; set; } + public string? Concepto { get; set; } + public double Importe { get; set; } + public string? Cantidad { get; set; } + public char? Tipo { get; set; } + public string? IdProvedor { get; set; } + public string? NomProvedor { get; set; } + public string? TagTabulador { get; set; } + public string? NombreTabulador { get; set; } + public string? Rctadeb { get; set; } + public string? Diferencia { get; set; } + + + + + + + + + + // precuenta 5404016 cheques 5215013 + // precuenta 5213001 cheques 5215011 + + + + } +} diff --git a/AdminusaBackend/Models/Reportes/WorkingHours.cs b/AdminusaBackend/Models/Reportes/WorkingHours.cs new file mode 100644 index 0000000..362d40f --- /dev/null +++ b/AdminusaBackend/Models/Reportes/WorkingHours.cs @@ -0,0 +1,46 @@ +/*using Org.BouncyCastle.Asn1.X509;*/ + +namespace AdminusaBackend.Models.Reportes +{ + public class WorkingHours + { + public string EmpNo { get; set; } + public string AcNo { get; set; } + public string No { get; set; } + public string Name { get; set; } + public string Date { get; set; } // Almacenando la fecha como string + /* public TimeSpan? ClockIn1 { get; set; } + public TimeSpan? ClockOut1 { get; set; } + public TimeSpan? ClockIn2 { get; set; } + public TimeSpan? ClockOut2 { get; set; } + public TimeSpan? ClockIn3 { get; set; } + public TimeSpan? ClockOut3 { get; set; } + public TimeSpan? ClockIn4 { get; set; } + public TimeSpan? ClockOut4 { get; set; } + public TimeSpan? ClockIn5 { get; set; } + public TimeSpan? ClockOut5 { get; set; } + public TimeSpan? TotalInTime { get; set; }*/ + + public string? ClockIn1 { get; set; } + public string? ClockOut1 { get; set; } + public string? ClockIn2 { get; set; } + public string? ClockOut2 { get; set; } + + public string? ClockIn3 { get; set; } + public string? ClockOut3 { get; set; } + + public string? ClockIn4 { get; set; } + public string? ClockOut4 { get; set; } + + public string? ClockIn5 { get; set; } + public string? ClockOut5 { get; set; } + public string? TotalInTime { get; set; } + + public string? TotalHoursWorked { get; set; } + + + + + } + +} diff --git a/AdminusaBackend/Models/Usuarios.cs b/AdminusaBackend/Models/Usuarios.cs new file mode 100644 index 0000000..6f37221 --- /dev/null +++ b/AdminusaBackend/Models/Usuarios.cs @@ -0,0 +1,37 @@ +namespace AdminusaBackend.Models +{ + public class Usuarios + { + public int Id { get; set; } = 0; + public string Usuario { get; set; } = null!; + public string Nombre { get; set; } = null!; + public string Contrasena { get; set; } = null!; + public string Correo { get; set; } = null!; + public byte TipoUsuario { get; set; } = 2; + public byte Activo { get; set; } = 1; + public string FechaAlta { get; set; } = null!; + public int UsuarioAlta { get; set; } = 0!; + public string FechaModifico { get; set; } = null!; + public int UsuarioModifico { get; set; } = 0!; + public string FechaElimino { get; set; } = null!; + public int UsuarioElimino { get; set; } = 0!; + public string MotivoElimino { get; set; } = null!; + public int IdModulo { get; set; } = 0!; + public int Dept { get; set; } = 0!; + public string? sDept { get; set; } = null!; + public int Tmercancia { get; set; } = 0!; + public string FechaUltimaVisita { get; set; } = null!; + public int Visitas { get; set; } = 0!; + public int Internos { get; set; } = 0!; + public int PermisoEspecial { get; set; } = 0!; + public int EstadoConfiguracion { get; set; } = 0!; + public string FechaValidacionConf { get; set; } = null!; + public string RealizoEncuesta { get; set; } = null!; + public int EncuestaActiva { get; set; } = 0!; + public string FechaLimiteEncuesta { get; set; } = null!; + public string CodigoAccesoM { get; set; } = null!; + public string TokenAccesoM { set; get; } = null!; + public string DeviceToken { get; set; } = null!; + public int IdPerfil { get; set; } = 0!; + } +} diff --git a/AdminusaBackend/Program.cs b/AdminusaBackend/Program.cs new file mode 100644 index 0000000..4a0112a --- /dev/null +++ b/AdminusaBackend/Program.cs @@ -0,0 +1,164 @@ + +using AdminusaBackend.Context; +using AdminusaBackend.Catalogos; +using AdminusaBackend.Contracts; +using AdminusaBackend.Contracts.Catalogos; + + +using AdminusaBackend.Repository; +using Microsoft.OpenApi.Models; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.IdentityModel.Tokens; + +using System.Text; +using AdminusaBackend.Clientes.Contracts; +using AdminusaBackend.Clientes.Repository; +using AdminusaBackend.Repository.ExelServices; +using AdminusaBackend.Repository.ExcelServices; +using AdminusaBackend.Contracts.Reportes; +using AdminusaBackend.Repository.Reportes; +using AdminusaBackend.Repository.EcxelServices.ExelHourWorking; + + +internal class Program +{ + private static void Main(string[] args) + { + var builder = WebApplication.CreateBuilder(args); + + // Add services to the container. + builder.Services.AddSingleton(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + + + + + // Reportes + builder.Services.AddScoped(); + + // Servivios Exel + builder.Services.AddScoped(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + //Catalogos + builder.Services.AddScoped(); + + + + + builder.Services.AddControllers(); + + /* builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options => + { + options.RequireHttpsMetadata = false; + options.SaveToken = true; + options.TokenValidationParameters = new TokenValidationParameters() + { + ValidateIssuer = true, + ValidateAudience = true, + ValidAudience = builder.Configuration["Jwt:Audience"], + ValidIssuer = builder.Configuration["Jwt:Issuer"], + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"])) + }; + });*/ + + + builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) + .AddJwtBearer(options => + { + options.TokenValidationParameters = new TokenValidationParameters + { + ValidateIssuer = true, + ValidateAudience = true, + ValidateLifetime = true, + ValidateIssuerSigningKey = true, + ValidIssuer = builder.Configuration["Jwt:Issuer"], + ValidAudience = builder.Configuration["Jwt:Audience"], + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"])) + }; + }); + + + + var key = builder.Configuration["Jwt:Key"]; + Console.WriteLine(key); + + // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle + builder.Services.AddEndpointsApiExplorer(); + + builder.Services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1", new OpenApiInfo + { + Title = "Adminusa Backend", + Version = "v1" + }); + c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() + { + Name = "Authorization", + Type = SecuritySchemeType.ApiKey, + Scheme = "Bearer", + BearerFormat = "JWT", + In = ParameterLocation.Header, + Description = "JWT Authorization header using the Bearer scheme. \r\n\r\n Enter 'Bearer' [space] and then your token in the text input below.\r\n\r\nExample: \"Bearer 1safsfsdfdfd\"", + }); + c.AddSecurityRequirement(new OpenApiSecurityRequirement { + { + new OpenApiSecurityScheme { + Reference = new OpenApiReference { + Type = ReferenceType.SecurityScheme, + Id = "Bearer" + } + }, + new string[] {} + } + }); + }); + + //services cors + builder.Services.AddCors(p => p.AddPolicy("corsapp", builder => + { + if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development") + { + builder.WithOrigins("http://localhost:3000", + "http://localhost:5263", + "https://localhost:5020").AllowAnyMethod().AllowAnyHeader(); + } + else if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Staging") + { + builder.WithOrigins( + + ).AllowAnyMethod().AllowAnyHeader(); + } + else if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Production") + { + builder.WithOrigins( + + ).AllowAnyMethod().AllowAnyHeader(); + } + })); + + + + + var app = builder.Build(); + + // Configure the HTTP request pipeline. + if (app.Environment.IsDevelopment()) + { + app.UseSwagger(); + app.UseSwaggerUI(); + } + + app.UseHttpsRedirection(); + app.UseCors("corsapp"); + app.UseAuthorization(); + + app.MapControllers(); + + app.Run(); + } +} \ No newline at end of file diff --git a/AdminusaBackend/Properties/launchSettings.json b/AdminusaBackend/Properties/launchSettings.json new file mode 100644 index 0000000..9687e5f --- /dev/null +++ b/AdminusaBackend/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:44989", + "sslPort": 44376 + } + }, + "profiles": { + "Adminusa": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "https://localhost:5020;http://localhost:5021", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/AdminusaBackend/Repository/Catalogos/CatRelacionPrecuentaCheques.cs b/AdminusaBackend/Repository/Catalogos/CatRelacionPrecuentaCheques.cs new file mode 100644 index 0000000..9a0e55a --- /dev/null +++ b/AdminusaBackend/Repository/Catalogos/CatRelacionPrecuentaCheques.cs @@ -0,0 +1,102 @@ +using AdminusaBackend.Models.Catalogos; +using AdminusaBackend.Models.Reportes; +using Dapper; +using AdminusaBackend. Context; +using AdminusaBackend.Contracts.Catalogos; +using System.Data; + +namespace AdminusaBackend.Catalogos +{ + public class CatRelacionPrecuentaCheques : ICatChequesPrecuenta + { + private readonly DapperContext _context; + + public CatRelacionPrecuentaCheques(DapperContext context) { _context = context; } + + + + public async Task> GetRelacionBookPrecta(string Inicio, string Fin) + { + var query = "[RelacionBookPrecta]"; + using (var conn = _context.CreateConnection()) + { + var result = await conn.QueryAsync(query, + new { @Inicio = Inicio, @Fin = Fin }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + + + } + public async Task> GetRelacionBooKPrectaPrecuenta() + { + var query = "[RelacionBookPrectaPrecuentaCheques]"; + using (var con = _context.CreateConnection()) + { + var result = await con.QueryAsync(query); + return result.ToList(); + } + } + + + + + public async Task> PostRelacionPrecuentaCheques(string Precuenta, string Cheques) + { + var query = "UpsertRelacionChequesPrecuenta"; + using (var con = _context.CreateConnection()) + { + var result = await con.QueryAsync(query, new { @Precuenta = Precuenta, @Cheques = Cheques }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + + + public async Task> GetRelacionPrecuentaCheque() + { + var query = "Select * from RelacionPrecuentaCheque "; + using (var con = _context.CreateConnection()) + { + var result = await con.QueryAsync (query); + return result.ToList (); + } + } + + + + + + + public async Task> DeleteRelacionPrecuentaCheque(string Precuenta) + { + var query = "Delete from RelacionPrecuentaCheque where Precuenta= @Precuenta"; + + using (var con = _context.CreateConnection()) + { + + var result = await con.QueryAsync(query, + new { Precuenta }); + + return result.ToList(); + } + } + + + public async Task> GetRelacionPrecuentaCheque(string Inicio, string Fin) + { + var query = "[RelacionBookPrecta]"; + using (var con = _context.CreateConnection()) + { + var result = await con.QueryAsync(query, new {@Inicio = Inicio, @Fin = Fin }, commandType: CommandType.StoredProcedure); + return result.ToList(); + + } + } + + + + + + + } +} diff --git a/AdminusaBackend/Repository/ExelServices/ExelHourWorking/ExelHours.cs b/AdminusaBackend/Repository/ExelServices/ExelHourWorking/ExelHours.cs new file mode 100644 index 0000000..e448b57 --- /dev/null +++ b/AdminusaBackend/Repository/ExelServices/ExelHourWorking/ExelHours.cs @@ -0,0 +1,174 @@ + + + + +using Dapper; +using AdminusaBackend.Context; +using OfficeOpenXml; +using AdminusaBackend.Models.Reportes; +using Microsoft.AspNetCore.Mvc; +/*using Org.BouncyCastle.Asn1.Cms;*/ + +namespace AdminusaBackend.Repository.EcxelServices.ExelHourWorking +{ + public class ExelHours + { + private readonly DapperContext _dapperContext; + + public ExelHours(DapperContext dapperContext) + { + _dapperContext = dapperContext; + ExcelPackage.LicenseContext = LicenseContext.Commercial; + } + + public async Task ProccesHoursExelFileAysn(Stream fileStream) + { + List records = new List(); + + using (var package = new ExcelPackage(fileStream)) + { + var worksheet = package.Workbook.Worksheets[0]; + var rowCount = worksheet.Dimension.Rows; + + // Obtener la fecha máxima existente en la tabla + DateTime? maxDate = await GetMaxDateAsync(); + Console.WriteLine($"Fecha máxima existente en la tabla: {maxDate}"); + + for (int row = 2; row <= rowCount; row++) + { + try + { + // Especificar el formato de la fecha en Excel + DateTime date = DateTime.ParseExact(worksheet.Cells[row, 5].Text, "M/d/yyyy", null); + Console.WriteLine($"Fecha en la fila {row}: {date}"); + + // Validar que la fecha sea mayor a la fecha máxima + if (maxDate == null || date > maxDate) + { + var record = new WorkingHours + { + EmpNo = worksheet.Cells[row, 1].Text, + AcNo = worksheet.Cells[row, 2].Text, + No = worksheet.Cells[row, 3].Text, + Name = worksheet.Cells[row, 4].Text, + Date = date.ToString("yyyy-MM-dd"), // Convertir la fecha a un formato estándar antes de guardarla + ClockIn1 = worksheet.Cells[row, 6].Text, + ClockOut1 = worksheet.Cells[row, 7].Text, + ClockIn2 = worksheet.Cells[row, 8].Text, + ClockOut2 = worksheet.Cells[row, 9].Text, + ClockIn3 = worksheet.Cells[row, 10].Text, + ClockOut3 = worksheet.Cells[row, 11].Text, + ClockIn4 = worksheet.Cells[row, 12].Text, + ClockOut4 = worksheet.Cells[row, 13].Text, + ClockIn5 = worksheet.Cells[row, 14].Text, + ClockOut5 = worksheet.Cells[row, 15].Text, + /* ClockIn1 = TimeSpan.FromHours(), + ClockOut1 = TimeSpan.FromHours(1), + ClockIn2 = TimeSpan.FromHours(1), + ClockOut2 = TimeSpan.FromHours(1), + ClockIn3 = TimeSpan.FromHours(1), + ClockOut3 = TimeSpan.FromHours(1), + ClockIn4 = TimeSpan.FromHours(1), + ClockOut4 = TimeSpan.FromHours(1), + ClockIn5 = TimeSpan.FromHours(1), + ClockOut5 = TimeSpan.FromHours(1), + TotalInTime = TimeSpan.FromHours(1)*/ + + TotalInTime = worksheet.Cells[row, 16].Text + }; + + records.Add(record); + } + else + { + Console.WriteLine($"Fecha en la fila {row} es menor o igual a la fecha máxima existente y no será insertada."); + } + } + catch (FormatException ex) + { + Console.WriteLine($"Error al parsear la fecha en la fila {row}: {worksheet.Cells[row, 5].Text}. Excepción: {ex.Message}"); + } + } + + } + + if (records.Any()) + { + await InsertWorkingHoursAsync(records); + return new OkObjectResult("Datos insertados correctamente."); + } + else + { + return new BadRequestObjectResult("No se encontraron registros con fechas mayores a la fecha máxima existente."); + } + } + + + private async Task GetMaxDateAsync() +{ + using (var connection = _dapperContext.CreateConnection()) + { + var query = "SELECT MAX(CAST(Date AS DATE)) FROM WorkingHours"; + + try + { + var maxDate = await connection.ExecuteScalarAsync(query); + return maxDate ?? DateTime.MinValue; // Retorna una fecha mínima si la tabla está vacía + } + catch (Exception ex) + { + Console.WriteLine($"Error al obtener la fecha máxima: {ex.Message}"); + return null; + } + } +} + + + + private async Task InsertWorkingHoursAsync(IEnumerable records) + { + using (var connection = _dapperContext.CreateConnection()) + { + var createTableQuery = @" +IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkingHours') +CREATE TABLE WorkingHours ( +EmpNo VARCHAR(50), +AcNo VARCHAR(50), +No VARCHAR(50), +Name VARCHAR(100), +Date VARCHAR(20), +ClockIn1 VARCHAR(20), +ClockOut1 VARCHAR(20), +ClockIn2 VARCHAR(20), +ClockOut2 VARCHAR(20), +ClockIn3 VARCHAR(20), +ClockOut3 VARCHAR(20), +ClockIn4 VARCHAR(20), +ClockOut4 VARCHAR(20), +ClockIn5 VARCHAR(20), +ClockOut5 VARCHAR(20), +TotalInTime VARCHAR(20))"; + + await connection.ExecuteAsync(createTableQuery); + + var insertQuery = @" +INSERT INTO WorkingHours ( +EmpNo, AcNo, No, Name, Date, ClockIn1, ClockOut1, ClockIn2, ClockOut2, +ClockIn3, ClockOut3, ClockIn4, ClockOut4, ClockIn5, ClockOut5, TotalInTime) +VALUES ( +@EmpNo, @AcNo, @No, @Name, @Date, @ClockIn1, @ClockOut1, @ClockIn2, @ClockOut2, +@ClockIn3, @ClockOut3, @ClockIn4, @ClockOut4, @ClockIn5, @ClockOut5, @TotalInTime)"; + + try + { + await connection.ExecuteAsync(insertQuery, records); + } + catch (Exception ex) + { + Console.WriteLine($"Error al insertar datos: {ex.Message}"); + throw; + } + } + } + } +} diff --git a/AdminusaBackend/Repository/ExelServices/ExelRepository.cs b/AdminusaBackend/Repository/ExelServices/ExelRepository.cs new file mode 100644 index 0000000..2bc3026 --- /dev/null +++ b/AdminusaBackend/Repository/ExelServices/ExelRepository.cs @@ -0,0 +1,124 @@ + +using Dapper; +using OfficeOpenXml; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using AdminusaBackend.DTO.ExelServices; +using Microsoft.Extensions.Configuration; +using AdminusaBackend.Context; +using AdminusaBackend.Context; +using AdminusaBackend.DTO.ExelServices; + +namespace AdminusaBackend.Repository.ExelServices +{ + public class ExcelRepository + { + private readonly DapperContext _dapperContext; + + public ExcelRepository(DapperContext dapperContext) + { + _dapperContext = dapperContext; + ExcelPackage.LicenseContext = LicenseContext.Commercial; + } + + public async Task ProcessExcelFileAsync(Stream fileStream) + { + List records = new List(); + + using (var package = new ExcelPackage(fileStream)) + { + var worksheet = package.Workbook.Worksheets[0]; + var rowCount = worksheet.Dimension.Rows; + var colCount = worksheet.Dimension.Columns; + string valorActual = null; + + for (int row = 2; row <= rowCount; row++) // Asumiendo que la primera fila tiene encabezados + { + var typeValue = worksheet.Cells[row, 1].Text; + + if (typeValue.Contains("·")) + { + valorActual = typeValue.Split('·')[0].Trim(); + } + else + { + var match = Regex.Match(typeValue, @"\b\d+[-]?\d*\b"); + if (match.Success) + { + valorActual = match.Value; + } + } + string cheques = valorActual; + if (typeValue.StartsWith("Total")) + { + valorActual = null; + } + + var record = new Book + { + Type = typeValue, + Cheques = cheques ?? string.Empty, + Date = worksheet.Cells[row, 2].Text, + Num = worksheet.Cells[row, 3].Text, + Name = worksheet.Cells[row, 4].Text, + Memo = worksheet.Cells[row, 5].Text, + /*Amount = float.TryParse(worksheet.Cells[row, 6].Text, out float amount) ? amount : 0f,*/ + Amount = decimal.TryParse(worksheet.Cells[row, 6].Text, out decimal amount) ? amount : 0m, + + Trafico = worksheet.Cells[row, 5].Text.Split().FirstOrDefault() + }; + + records.Add(record); + } + } + + await InsertRecordsAsync(records); + } + + private async Task InsertRecordsAsync(IEnumerable records) + { + using (var connection = _dapperContext.CreateConnection()) + { + var createTableQuery = @" + IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Cheques') + CREATE TABLE Cheques ( + Type VARCHAR(100), + Cheques VARCHAR(100), + Date VARCHAR(20), + Num VARCHAR(100), + Name VARCHAR(100), + Memo VARCHAR(100), + Amount DECIMAL(18, 2), + Trafico VARCHAR(100) + )"; + + await connection.ExecuteAsync(createTableQuery); + + var insertQuery = @" + INSERT INTO Cheques (Type, Cheques, Date, Num, Name, Memo, Amount, Trafico) + VALUES (@Type, @Cheques, @Date, @Num, @Name, @Memo, @Amount, @Trafico)"; + + try + { + await connection.ExecuteAsync(insertQuery, records); + Console.WriteLine($"Se insertaron {records.Count()} registros correctamente en la tabla Cheques."); + } + catch (Exception ex) + { + Console.WriteLine($"Error al insertar datos: {ex.Message}"); + throw; // Opcional, vuelve a lanzar la excepción para que el llamador también pueda manejarla + } + } + } + + + + + + + } +} diff --git a/AdminusaBackend/Repository/ExelServices/ExelRepositoryPrecta.cs b/AdminusaBackend/Repository/ExelServices/ExelRepositoryPrecta.cs new file mode 100644 index 0000000..640d36b --- /dev/null +++ b/AdminusaBackend/Repository/ExelServices/ExelRepositoryPrecta.cs @@ -0,0 +1,98 @@ +using Dapper; +using OfficeOpenXml; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using AdminusaBackend.DTO.ExelServices; +using AdminusaBackend.Context; +using AdminusaBackend.Context; +using AdminusaBackend.DTO.ExelServices; + +namespace AdminusaBackend.Repository.ExcelServices +{ + public class ExcelRepositoryPrecta + { + private readonly DapperContext _dapperContext; + + public ExcelRepositoryPrecta(DapperContext dapperContext) + { + _dapperContext = dapperContext; + ExcelPackage.LicenseContext = LicenseContext.Commercial; + } + + // Método para procesar archivos Excel tipo Precta + public async Task ProcessPrectaExcelFileAsync(Stream fileStream) + { + List records = new List(); + + using (var package = new ExcelPackage(fileStream)) + { + var worksheet = package.Workbook.Worksheets[0]; + var rowCount = worksheet.Dimension.Rows; + + for (int row = 2; row <= rowCount; row++) // Asumiendo que la primera fila tiene encabezados + { + var record = new Precta + { + Trafico = worksheet.Cells[row, 1].Text, + Precuenta = worksheet.Cells[row, 2].Text, + Concepto = worksheet.Cells[row, 3].Text, + Importe = worksheet.Cells[row, 4].Text, + Cantidad = worksheet.Cells[row, 5].Text, + Tipo = worksheet.Cells[row, 6].Text, + IdProvedor = worksheet.Cells[row, 7].Text, + NomProvedor = worksheet.Cells[row, 8].Text, + TagTabulador = worksheet.Cells[row, 9].Text, + NombreTabulador = worksheet.Cells[row, 10].Text, + Rctadeb = worksheet.Cells[row, 11].Text + }; + + records.Add(record); + } + } + + await InsertPrectaRecordsAsync(records); + } + + private async Task InsertPrectaRecordsAsync(IEnumerable records) + { + using (var connection = _dapperContext.CreateConnection()) + { + var createTableQuery = @" + IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Precuenta') + CREATE TABLE Precuenta ( + Trafico VARCHAR(255), + Precuenta VARCHAR(255), + Concepto VARCHAR(255), + Importe VARCHAR(255), + Cantidad VARCHAR(255), + Tipo VARCHAR(255), + IdProvedor VARCHAR(255), + NomProvedor VARCHAR(255), + TagTabulador VARCHAR(255), + NombreTabulador VARCHAR(255), + Rctadeb VARCHAR(255) + )"; + + await connection.ExecuteAsync(createTableQuery); + + var insertQuery = @" + INSERT INTO Precuenta (Trafico, Precuenta, Concepto, Importe, Cantidad, Tipo, IdProvedor, NomProvedor, TagTabulador, NombreTabulador, Rctadeb) + VALUES (@Trafico, @Precuenta, @Concepto, @Importe, @Cantidad, @Tipo, @IdProvedor, @NomProvedor, @TagTabulador, @NombreTabulador, @Rctadeb)"; + + try + { + await connection.ExecuteAsync(insertQuery, records); + Console.WriteLine($"Se insertaron {records.Count()} registros correctamente en la tabla UnifiedTable2."); + } + catch (Exception ex) + { + Console.WriteLine($"Error al insertar datos: {ex.Message}"); + throw; // Opcional, vuelve a lanzar la excepción para que el llamador también pueda manejarla + } + } + } + } + +} diff --git a/AdminusaBackend/Repository/MenuRepository.cs b/AdminusaBackend/Repository/MenuRepository.cs new file mode 100644 index 0000000..4a8671b --- /dev/null +++ b/AdminusaBackend/Repository/MenuRepository.cs @@ -0,0 +1,35 @@ +using Dapper; +using AdminusaBackend.Context; +using AdminusaBackend.Contracts; +using AdminusaBackend.Models; +using System.Data; + +namespace AdminusaBackend.Repository +{ + public class MenuRepository : IMenuRepository + { + + private readonly DapperContext _context; + public MenuRepository(DapperContext context) { _context = context; } + public async Task> GetItemsMenu(Usuarios user) + { + var query = "[Menu.Get]"; + using (var connection = _context.CreateConnection()) + { + var menu = await connection.QueryAsync

(query, new { @id = user.Id }, commandType: CommandType.StoredProcedure); + return menu.ToList(); + } + } + + public async Task> GetItemsMenuTransportista() + { + var query = "[Menu.Transportista.Get]"; + using (var connection = _context.CreateConnection()) + { + var menu = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return menu.ToList(); + } + } + + } +} diff --git a/AdminusaBackend/Repository/PerfilesRepository.cs b/AdminusaBackend/Repository/PerfilesRepository.cs new file mode 100644 index 0000000..396698b --- /dev/null +++ b/AdminusaBackend/Repository/PerfilesRepository.cs @@ -0,0 +1,107 @@ +using Dapper; +using AdminusaBackend.Context; +using AdminusaBackend.Contracts; +using AdminusaBackend.DTO; +using AdminusaBackend.DTO.Usuario; +using AdminusaBackend.Models; +using System.Data; + +namespace AdminusaBackend.Repository +{ + public class PerfilesRepository : IPerfilesRepository + { + private readonly DapperContext _context; + public PerfilesRepository(DapperContext context) { _context = context; } + public async Task> getPerfiles() + { + var query = "[Perfiles.Get]"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @id = 0 }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task PerfilGetById(int id) + { + var query = "[Perfil.GetById]"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @id }, commandType: CommandType.StoredProcedure); + return perfiles.FirstOrDefault(new Perfiles()); + } + } + public async Task> getMenu() + { + var query = "SELECT * FROM Menu"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query); + return result.ToList(); + } + } + public async Task> getPerfilMenuById(int id) + { + var query = "[Perfil.MenuById]"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @id = id }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task> getAllPerfilesMenu() + { + var query = "getAllPerfilesMenu"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task> createPerfil(DTOPerfilCreate data) + { + var query = "[Perfil.Append]"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @Perfil = data.Perfil, @IdPerfilClonado = data.IdPerfilClonado }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + public async Task> createItemMenu(Menu data) + { + var query = "[Menu.Item.Append]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @Descripcion = data.Descripcion, @PadreId = data.PadreId, @Posicion = data.Posicion, @URL = data.Url }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + public async Task> asignaItemMenuPerfil(DTOItemMenuPerfil data) + { + var query = "[Menu.Item.Perfil.Assign]"; + using (var connection = _context.CreateConnection()) + { + var perfiles = await connection.QueryAsync(query, new { @IdPerfil = data.IdPerfil, @itemMenu = data.itemMenu, @asignado = data.asignado }, commandType: CommandType.StoredProcedure); + return perfiles.ToList(); + } + } + /*public async Task> getAllTransportistas(int id) + { + //var query = "SELECT sClave, CONCAT(sClave,' | ',sRazonSocial) as sRazonSocial FROM SIR.Admin.ADMINC_42_PROVEEDORES ORDER BY 2"; + var query = "getAllTransportistas"; + using (var connection = _context.CreateConnection()) + { + var transportistas = await connection.QueryAsync(query, new { @IdUsuario = id }, commandType: CommandType.StoredProcedure); + return transportistas.ToList(); + } + } + public async Task> getAllProveedores(int id) + { + var query = "getAllProveedores"; + using (var connection = _context.CreateConnection()) + { + var proveedores = await connection.QueryAsync(query, new { @IdUsuario = id }, commandType: CommandType.StoredProcedure); + return proveedores.ToList(); + } + }*/ + } +} diff --git a/AdminusaBackend/Repository/Reportes/ReportesRepository.cs b/AdminusaBackend/Repository/Reportes/ReportesRepository.cs new file mode 100644 index 0000000..68af600 --- /dev/null +++ b/AdminusaBackend/Repository/Reportes/ReportesRepository.cs @@ -0,0 +1,84 @@ +using AdminusaBackend.Context; +using AdminusaBackend.Contracts.Reportes; +using AdminusaBackend.DTO.Reportes; +using AdminusaBackend.Models.Reportes; +using Dapper; +/*using NPOI.Util;*/ +using System.Data; + + +namespace AdminusaBackend.Repository.Reportes +{ + public class ReportesRepository : IRptRepository + { + + private readonly DapperContext _context; + + public ReportesRepository(DapperContext context) { _context = context; } + + + public async Task>GetRelacionesTrafico() + { + + + var query = "[RelacionesSoloTrafico]"; + using (var con = _context.CreateConnection()) + { + var result = await con.QueryAsync(query ); + return result.ToList(); + } + + } + + + + public async Task > GetNoRelaciones() + { + var query = "[DatosNoRelacionan]"; + using (var con =_context.CreateConnection()) + { + var result = await con.QueryAsync(query); + return result.ToList(); + } + + } + + + + public async Task> GetWorkingHours(string Inicio, string Fin) + { + + var query = "[TotalTiempos]"; + using (var con = _context.CreateConnection()) + { + var result = await con.QueryAsync (query, new {@Inicio = Inicio, @Fin = Fin}, commandType: CommandType.StoredProcedure ); + return result.ToList(); + } + + } + + + + public async Task> GetTotalHoursWorkings(string Inicio, string Fin) + { + var query = "[TotalHorasWithMilitaryMinutes]"; + using var con = _context.CreateConnection(); + { + var result = await con.QueryAsync(query, new + { @Inicio = Inicio, @Fin = Fin }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + + + + + + + + + + + } +} diff --git a/AdminusaBackend/Repository/UsuariosRepository.cs b/AdminusaBackend/Repository/UsuariosRepository.cs new file mode 100644 index 0000000..55e3241 --- /dev/null +++ b/AdminusaBackend/Repository/UsuariosRepository.cs @@ -0,0 +1,203 @@ +using System.ComponentModel.DataAnnotations.Schema; +using System.Data.Common; +using Dapper; +using AdminusaBackend.Context; +using AdminusaBackend.Contracts; +using AdminusaBackend.DTO; +using AdminusaBackend.Models; +using System.Data; +using AdminusaBackend.Crypto; +using AdminusaBackend.DTO.Usuario; + +namespace AdminusaBackend.Repository +{ + public class UsuariosRepository : IUsuariosRepository + { + private readonly DapperContext _context; + private readonly IConfiguration _config; + public UsuariosRepository(DapperContext context, IConfiguration config) + { + _context = context; + _config = config; + } + + public async Task> getAllUsuariosShort() + { + var query = "SELECT id, Usuario, Activo FROM Usuario WHERE Usuario<>'Admin' ORDER BY Usuario"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query); + return usuarios.ToList(); + } + } + + public async Task> getAllUsuarios() + { + var query = "SELECT * FROM Usuario"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query); + return usuarios.ToList(); + } + } + + public async Task GetUsuarioById(int id) + { + var query = "SELECT * FROM Usuario WHERE id=@id"; + using (var connection = _context.CreateConnection()) + { + var usuario = await connection.QueryAsync(query, new { id = id }); + var usr = usuario.First(); + return usr; + } + } + + public async Task GetUsuario(DTOLogin user) + { + var query = "[Usuario.Get]"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, + new + { + Usuario = user.Usuario, + Contrasena = user.Contrasena, + @HashContrasena = CryptDecrypt.Encrypt(user.Contrasena), + }, commandType: CommandType.StoredProcedure); + Usuarios userFound = usuarios.First(); + if (userFound == null) return null!; + var hashed = CryptDecrypt.Decrypt(userFound.Contrasena); + if (hashed != user.Contrasena) return null!; + return userFound; + } + } + + public async Task searchUsuario(string Usuario) + { + var query = "SELECT * FROM Usuario WHERE Usuario=@Usuario"; + using (var connection = _context.CreateConnection()) + { + var usuario = await connection.QueryAsync(query, new { @Usuario }); + return usuario.Count() > 0 ? usuario.First().Id : 0; + } + } + + public async Task CreatePIN(int Id) + { + var query = "[Usuario.PIN.Create]"; + using (var connection = _context.CreateConnection()) + { + var data = await connection.QueryAsync(query, new { @Id }, commandType: CommandType.StoredProcedure); + return data.First(); + } + } + public async Task ValidatePIN(DTOPINUsuario data) + { + var query = "[Usuario.PIN.Validate]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new { @data.PIN, @data.Usuario }, commandType: CommandType.StoredProcedure); + if (result.Count() == 0) return false; + return true; + } + } + + public async Task resetPassword(DTOResetPassword user) + { + var query = "[Usuario.Password.Reset]"; + DTOLogin userFound = new DTOLogin(); + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, new + { + @user.PIN, + @Contrasena = user.Contrasena, + @HashContrasena = CryptDecrypt.Encrypt(user.Contrasena), + }, commandType: CommandType.StoredProcedure); + if (usuarios.Count() > 0) userFound = usuarios.First(); + } + return userFound; + } + + public async Task createUsuario(DTOUsuario user) + { + var query = "[Usuario.Append]"; + using (var connection = _context.CreateConnection()) + { + if (user.Id == 0) user.Contrasena = _config.GetValue("DefaultUser:Password"); + var usuario = await connection.QueryAsync(query, new + { + @id = user.Id, + @Usuario = user.Usuario, + @Nombre = user.Nombre, + @Contrasena = CryptDecrypt.Encrypt(user.Contrasena), + @user.TipoUsuario, + @Correo = user.Correo, + @user.IdPerfil + }, commandType: CommandType.StoredProcedure); + return usuario.First(); + } + } + + public async Task> clonarUsuario(DTOClonarUsuario user) + { + var query = "[Usuario.Clonar]"; + using (var connection = _context.CreateConnection()) + { + var usuario = await connection.QueryAsync(query, new + { + @IdUsuarioOrigen = user.IDUsuarioOrigen, + @IdUsuarioDestino = user.IdUsuarioDestino + }, commandType: CommandType.StoredProcedure); + return usuario.ToList(); + } + } + + // Catalogo de Roles + public async Task> CatalogoRolesGET() + { + var query = "[CatRoles.GET]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new + { + }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + public async Task> RolesAsignadosGET(int id) + { + var query = "[RolesAsignados.GET]"; + using (var connection = _context.CreateConnection()) + { + var result = await connection.QueryAsync(query, new + { + @id + }, commandType: CommandType.StoredProcedure); + return result.ToList(); + } + } + + + public async Task> GETPerfilesParecidos(string Perfil) + { + var query = "[Usuarios.Perfiles.Parecidos.Get]"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, new { @Perfil }, commandType: CommandType.StoredProcedure); + return usuarios.ToList(); + } + } + + public async Task DisableUser(int id) + { + var query = "[Usuario.Disable]"; + using (var connection = _context.CreateConnection()) + { + var usuarios = await connection.QueryAsync(query, new { @id }, commandType: CommandType.StoredProcedure); + return true; + } + } + } +} diff --git a/AdminusaBackend/Services/Utilerias.cs b/AdminusaBackend/Services/Utilerias.cs new file mode 100644 index 0000000..23cad07 --- /dev/null +++ b/AdminusaBackend/Services/Utilerias.cs @@ -0,0 +1,52 @@ +using System.Net.Mail; +using System.Text; +using Newtonsoft.Json; +using AdminusaBackend.Clientes.Email; + +namespace AdminusaBackend.Services.Utilerias +{ + public class Utilerias + { + private IConfiguration _config; + + public Utilerias(IConfiguration config) + { + _config = config; + } + + public static string Base64Encode(string plainText) + { + var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); + return System.Convert.ToBase64String(plainTextBytes); + } + + public async Task SendEmail(DTOSendEmail data) + { + using var client = new HttpClient(); + string EmailAPI = _config.GetValue("EmailAPI"); + client.BaseAddress = new Uri(EmailAPI); + HttpContent body = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json"); + var response = client.PostAsync("SendEmail", body).Result; + if (response.IsSuccessStatusCode) + { + var content = await response.Content.ReadAsStringAsync(); + } + return true; + } + + public async Task SendEmailBcc(DTOSendEmailBcc data) + { + using var client = new HttpClient(); + string EmailAPI = _config.GetValue("EmailAPI"); + client.BaseAddress = new Uri(EmailAPI); + HttpContent body = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json"); + var response = client.PostAsync("SendEmailBcc", body).Result; + if (response.IsSuccessStatusCode) + { + var content = await response.Content.ReadAsStringAsync(); + } + return true; + } + + } +} \ No newline at end of file diff --git a/AdminusaBackend/WeatherForecast.cs b/AdminusaBackend/WeatherForecast.cs new file mode 100644 index 0000000..e419980 --- /dev/null +++ b/AdminusaBackend/WeatherForecast.cs @@ -0,0 +1,13 @@ +namespace AdminusaBackend +{ + public class WeatherForecast + { + public DateOnly Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } + } +} diff --git a/AdminusaBackend/appsettings.Development.json b/AdminusaBackend/appsettings.Development.json new file mode 100644 index 0000000..6d63bec --- /dev/null +++ b/AdminusaBackend/appsettings.Development.json @@ -0,0 +1,26 @@ +{ + "ConnectionStrings": { + "SqlConnection": "server=.; database=Adminusa; Integrated Security=true;TrustServerCertificate=True;Command Timeout=360" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "DefaultUser": { + "Password": "Bienvenido123!" + }, + "EmailServer": "gemcousa-com.mail.protection.outlook.com", + "EmailPort": 25, + "EmailPassword": "N#16rm87", + "EmailAccount": "noreply@gemcousa.com", + "pathArchivoElectronico": "C:\\downs\\ArchivoElectronicoSIR\\www.gemcousa.com\\SIR-GEMCO\\DOCS-SIR\\", + "pathTemp": "C:\\downs\\temp\\", + "Allfiles": "C:\\data\\", + "Twilio_SID": "AC59baecf4872fa93e3c315180c96b4cc2", + "Twilio_Token":"5416fe0460e9afaf5400697def878c04", + "NodeAPI" : "https://nodeapi.gemcousa.mx/", + + "EmailAPI" : "https://pyapi.gemcousa.mx/" +} \ No newline at end of file diff --git a/AdminusaBackend/appsettings.Staging.json b/AdminusaBackend/appsettings.Staging.json new file mode 100644 index 0000000..106974f --- /dev/null +++ b/AdminusaBackend/appsettings.Staging.json @@ -0,0 +1,25 @@ +{ + "ConnectionStrings": { + "SqlConnection": "server=.,14033;database=Adminusa;User Id=sa;Password=T3st1n93nv4Qa;TrustServerCertificate=True;" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "DefaultUser": { + "Password": "Bienvenido123!" + }, + "EmailServer": "gemcousa-com.mail.protection.outlook.com", + "EmailPort": 25, + "EmailPassword": "N#16rm87", + "EmailAccount": "noreply@gemcousa.com", + "pathArchivoElectronico": "D:\\data\\ArchivoElectronicoSIR\\www.gemcousa.com\\SIR-GEMCO\\DOCS-SIR\\", + "pathTemp": "D:\\data\\temp\\", + "AllFiles": "D:\\data\\", + "Twilio_SID": "AC59baecf4872fa93e3c315180c96b4cc2", + "Twilio_Token":"5416fe0460e9afaf5400697def878c04", + "NodeAPI" : "https://nodeapi.gemcousa.mx/", + "EmailAPI" : "https://pyapi.gemcousa.mx/" +} diff --git a/AdminusaBackend/appsettings.json b/AdminusaBackend/appsettings.json new file mode 100644 index 0000000..e017f64 --- /dev/null +++ b/AdminusaBackend/appsettings.json @@ -0,0 +1,36 @@ +{ + "ConnectionStrings": { + "SqlConnection": "server=.; database=Adminusa;User Id=sa;Password=Chispa10192;TrustServerCertificate=True;" + }, + "DefaultUser": { + "Password": "Bienvenido123!" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "Jwt": { + "Key": "GFE1j5KLolZHDK9iKw5xK17Rz4ty7BlbXgnjPL6dNwVCCNQWU8uRGVyZmAZPWZMs4XX0phFMS849p25Lrwsn31Bi4J7GT2HQ9xeWlJLarJPDyoRZZvChpovwgrquQ9Pd", + "Issuer": "JWTAuthenticationServer", + "Audience": "JWTServicePostmanClient", + "Subject": "JWTServiceAccessToken", + "ExpirationHours": 4 + }, + "EmailServer": "gemcousa-com.mail.protection.outlook.com", + "EmailPort": 25, + "EmailPassword": "N#16rm87", + "EmailAccount": "noreply@gemcousa.com", + "pathArchivoElectronico": "D:\\data\\ArchivoElectronicoSIR\\www.gemcousa.com\\SIR-GEMCO\\DOCS-SIR\\", + "pathTemp": "D:\\data\\temp\\", + "pathFotosBodega": "D:\\data\\Bodega\\Fotos\\", + "pathZipCorresponsales": "D:\\data\\Corresponsales\\Zips\\", + "CorresponsalesFilePath": "D:\\data\\Corresponsales\\", + "AllFiles": "D:\\data\\", + "Twilio_SID": "AC59baecf4872fa93e3c315180c96b4cc2", + "Twilio_Token":"5416fe0460e9afaf5400697def878c04", + "NodeAPI" : "https://nodeapi.gemcousa.mx/", + "EmailAPI" : "https://pyapi.gemcousa.mx/" +}