From 34c0cbae328b3cb76e72123bb1361f6356e8f30d Mon Sep 17 00:00:00 2001 From: Enes Doner Date: Tue, 7 May 2024 14:35:30 +0300 Subject: [PATCH] Added article --- .../images/abp-fluentvalidation.png | Bin 0 -> 14879 bytes .../images/error.png | Bin 0 -> 19739 bytes .../images/validation.png | Bin 0 -> 51974 bytes .../post.md | 95 ++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/abp-fluentvalidation.png create mode 100644 docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/error.png create mode 100644 docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/validation.png create mode 100644 docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md diff --git a/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/abp-fluentvalidation.png b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/abp-fluentvalidation.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab2917875fefb57ff9340541a476008eda80177 GIT binary patch literal 14879 zcmcJ0Wl&sA)F$rk?(Tu$4ueY=+}(n^2Dd?j6WpEP?hxEHSn%LZupnXY`&I2$?f+e> zfSH21)3>MloX0v^O;rvZg#-l(3JP689;6Nh1q@A@Rv(W@Ti}I^S>gGM+d_-#LCLRCx~KVRQ1#+E6NdA{_F~I+tVx` zrk;q_$o+ru2lRlygD-c{I)+oM%!O_82LHW_mcsaWcd3%^{>V)vX8FJSheLRT+g69& z(vms&5;_d9YED&&`;pIggFmOstV-gq{r1~=gxHdViOB*WLD#Ber|rY>$qZ>c1=R%a z6C5K6#XYQpp-M%+n@}4k4oF4AhpPeD&fwIc|864f?ht);Q3DGsENtv2^nd>M`6-En z2}fe-M_5LN-2c9C6@%*UgHdG<8K38AU-Ns*6pE!fh`QPho(|&bo z6@52~#8U6_>h}HPLrm;}3_U#hN63ST_4VbdJ6HIG4cf{^!_4mG!73t2zj=pTT$K>( ze_s5=!p4><))O9&r2ygbzsDgLVqpAZX*H=B+KSIHqkmNWu8& z5FdYD3sjjvqpz-hi$55|`#`kSCzUTAln@i6UvD~4qt_%QC8b{SR)EW>-#(QmvKtX` zV`x|*xsHGir)Qp=gzfy|Ww%2(G0Pccdo z@+gO=V>Zy`&AGUMgM;%4BpdPOd~};8+4~Q*%zrlT!=(3C=&+aF(~8C+aRMllfIuTEAKa>l%#wPtL?7)zJCtqiF54aowu%wihUQ$H7MBp^gz*^h>@vNaw>Qj#m8L%2Goyu3nfV$&H_OJu_u>QIimsP%PqpSXE1?lRpc z)9c9i>~eBb+-*`g{1D3Y{bcRd5vsDDSxEezbX2NSI$J|pdm936cyLkAD4g_ZTykT51OxD)c+}zym74KI}g8mz+=C#Px zuid{d8j%eOxRO)yFgYP1-Kx10twbcZhqIh*5xH|1`qClcaN~L3gL`3%e4V#)y0Fku zKik@UFDk^uNL%()N}-@m$rnn(Wcgy4$-N5W1fH*yo5imV#ku+gkLj`KDLtDfnk^R4 z+0)Y#78Yg!A8zjDGgjPobb5%NsiYWP4A|Fv&xaE236pdsIxqGaW1-X zHL+};-}j}=`{C{P)zx-^By3g{O0`~-H6kWONj4LHl&#hM-#w`6RwxnaspIItTFo?wt zUn63-Z=BFc!8=jnW)zt6OItnu78Vxb$SQ~jSl??@^F-Dft(2a>ELT6yioXMc!{VsK zd6h-PP-`=$qly`Ge-GS>!t`i4twg|{o|?MF)P=J?@9GHrtNb?~t!PLRK2!gBgdzZe zO~3KW$`;&m2g78b$4Zp-T(H;tp=Qtj_POul>JJK-f0)n!;Jeu*Lj_Ekkysv8M0PI+%@ zkk$+>gf`hjzQvv+GBH1qgLzuBGipia?ZeS+)z#Mh{DB{`KWYbyV3hbOM3pR-j7iX)?RX;fQjH%p9(_3mxlaW?HaLk< zf2dLxtH+h6_o~3`_6sYb#<;A{ZnbBFV^ z4b%{UPor8|@0?u;{J68p=4Au;E1$Eav zJLK6wZ0=?(Pl^g*lm_9-t55o98yqQS{ZF>u^6>g%ym{s?jzGd#Tw* zH|211cPpg$C@NYREG;o*M_)`4cu5J1`dv#&SEjS_h^jtA2=MXavjy}bDP2&gp6}0A zKIKmYPImJ3?6D;teUC>ZHT%8()?=GMa_KT$7zd)VzTE7> zr#{^u{aUV?J2;PkfUx(wzItcuE1BTl#f7NLjszy=*MDy>#RrLriHx7}EoN z;)YfPUH3o|5)!cl>|-Z(a|HvyM~q1+Muv^;3aJYNs)(=`oAj?g`B=|cQJ9sVrOV0= z2t>`wDFc~YU6=#|vN}zw3c;=9T9=#qxuTOztpvip*BK@i=93v3lNZ`GkCoUUM%BC+ zTQwrEER#FUEnVois_fweiJyx`2muuyMY$EutFD!&s0=ST-Rozk1Fp>tLP=&GleYG! zKOtdJY&GNusUKJ8nWc=j%+Al2bGepE>8Q958$& za<5G>S#av`kvm|1?R|0x_k~;5_S$T9*vw1QdZ4E*R{g;+$!gz_t)({4{jovB=NQST zA`)0tc_O~a90MyO@uVkcH|rhlj2tHF6e}DxSh>`S$D5{~Rg{(GeaB&baB0&JF=>7I z(w&t>!dz2SbbEKA0mmsOCI(Ct;~JB?_}g7dMn(o#sQ{m@YNy&T+$7teJtVf+_>rm~ zNBHfDme+ZAiFpE@K~bq#-U6k+h`acap5COmNRfDdu96GC@s4A!r&S2sA8T$aATq}J9wXPsMJiNcZzd%vI^IeF7<)Ao?pr9aJ$R1Nf=JL`K z9eqnn%WRGykJq_wtDe(hS$uLb&bsA>G?LTc>)$`{d&ceHfq?-SZKF_^Yg9rGJZzCZ zA4zPcV62q&=H0(f*T%gisJNnmhEB`ySQwlc>_i66&I+GmXeD~wqd3@P7bNerzYNA` z*<=6OZ;}T!kiY#LQ87apIdoIZa`5SAc>=2~^YJyg{yFEj?#?jjA1vU#R&J}=sQ>(T zg36h4oBGG7*TuX>c}itXQD=@@$EhjNi`)63-;FxjyDpPayUX}`FR7Z1;vVej%-xOu zW9>-T!aGsXhYuglEo`@YMa_p-S69!^&w&d0di?qGXMy1PVmW>Q@No>amDZt zM>+}vKyTMRBvrSCcYvd3-P6_WZ7 zil`3M!JK_CrqS*AQ1jgD*x!D|b{@^l!w)H;K=K5=B^9)6?%EY-u(dRoL!b?Dp7_<^ z=+L;h^6GOojYQg(z1VLNwkHjl9l&NGpt=5OkV9^sTW7Ene z4q~wxtE=PWjwW*z2^gg?eo`gmspO@h33bfh{Pk-nExd}?bN5VVt4hmiHpBCL%%CSr z{|%IrKvt-IW07dT5UyV-pX26MF|w9$^K^5~eqwl2#Zh!k3T?BIplHFUj2+FC+}aym z8&b)AR#r-5H5X?+i!R^op3y9Q*U?VYZXDm`b?5WD7j_r%2WGyA=OF+@w7ojOoOjdZ zvw5UkmUK@xxT})JE!j<@7jWzGzHdU#Q%~c^gx_evi%UA1%j?|-LA;$#u%z=0Dp^#f zVRi8DDmlPiw%X3q_}F^{r1x?bK~zLUMC6H)9FTsc68wzDW&Bpr0xp&*M|b* zk@8r_g{L<)Hj~(Z$y!P{oet9D0=lU@?@x6Ag0vo>2 zGQ_SiwKj63Eo0%Zx)Wj?7Y$H@UtnX$U!Vra9&Glfr;49IIlfxGPp9m{DJ?B`-e~Z@ zHR18UC$~JC`?30KqY=@q}}s#JnY7r*?RJ63EOVQ?V{l z#C0d-Q6QmY|I%I^RWfOwx=~w^zOo>nU2LGt7z9^E9A9iim!*3_A=_%ffrD+FtoodT z1aL1I#g+fsKeN%MaNJI0IegU=fM!>V;pThTTtRRS$5qk~4*M9iizDXqv6RWe?81jW zApt61#CQEi3*km$QEpN(qh*G7UMUk_(eD}IUq;BGN-}gW)GnqV5njzmZksTVa-%iT&0hl3Y1JUvD_&9@88TyBL7n_HfN?#Is z7+gGY6TMXaX_;Y9QLP2bsM!*}KR90x8&uhqwT@sf&Brw`p4;{Kj7fswl=N-TZhfg6 z9xfB5YF&OO-V8H37-hxpvO5A021;_{rlyiC7+5M&(YK1G08qVs{Ym@gXf}j3Y!0sp zwYjd+=F5#bTP25Q1GeLO^GO^r&*0!-tHT;hF`YUoztgWaXA>_kKBN57D+m+WQV1+! zGE8D}a&lW+TVLP1;mz%zKd4AZ_07#CXG_(Hc$A6A{A|cnoz~MNLekx){gMnCRsf0e zh)lG@oDYRTk>|^oPe{=G$f~794i>0T74=Kb&e;ax<(n~%s(wpOlQDr{YEayt^5`1t z#YWR5^|Kr=EM5Gn+^WjB7zi8r9Tm9;D}ec*7tNdywl5Bokf-;`+y}TG<*))gx;oS~`7ei@CcQPr zxC_SGT1HWkScfa4EBVTrJ}-RR_7fg%6?D*tKw&sI47B*tXon+#r%I9w_6?8&h!znk zX$p*1dVKt}QV6l&J3dGWz}b}*NHkSt3{Nu$O;ZR)Q>{FX8lh@J$;eGo%b;DS_1I(f?z9VZ_ zZ3gFJ@#;9HhN1t1Bz|&rjq0>nFu2G2(~zT6t7@*`(du-3L#eHaf{OP@jo_5V=fdpP z38p#B0cffIAg))g@lJp7@sVEPiIh$O2giW@u@v*s%j)8Hgd!xG^NR}wXe3o zLoHnze}iN3y<_8ciOpSy6^u%__lfZvG_;D97w!Ecf=U(|6cR)X3Q3rGXWFV7LG!7n zA{rLLP|E5u8FX&ySQDMarmKRSg$Bx^!Mj)fNA4{Ko1iJywj$8f0jst4Lj}yM8hPZ> z(n5L%y8Fd5`W-wS4SYCP3BdOgjYW7^{Z}iHE95bdJLCt>r0GQx!Bzp@AZcl70FPIV zxq$P<0_35`e*S#O{zJf0@s3m^K+07znvg~&`h0&3KE0VA0vQ`q@WQHARnZiEJ~Qwl>EGD5m$?ZCc6RA41M&3?deTP9&;>nyd|~Te=RlfBU}>sT*94qd3sl@P!>_ z<1gcys$p_;d7Y zJ^_c`mZWjoIpJtoNv*KW#u6^@<_SV#$Dc5PCsjinK^O59*zLy zwxHNtT3&|N_b|S{qm*oJ)sz7_|7w>JRUCX2q^CteLXT(vL7R{igDv;}Y&g0x7(VK3qPRiT4y2QXbe#qwE^7c{ya zSe(#LUA47!iq0uBCfzkM27(A+GRukLQ9Aph+8#&CR0a0X>!bTr`c_;uR{0J;^HQy^HKV$}^KjqdwI;G9 zZ%hwsm_F2LYQ8|W`hxm2%2hoI{qAKG$P_5h@XE_S<#%>=He#w1fsY3xP#t2!dz9!o zD!?Gu)=WYzXz(4#W28@83*>Qh+4Gz`?V7f)pApCOMSt|tX=oy(Rz@kKm}@+gy`|Z8 zNNdbFIm3%ZaDs(yB4*g;vyf9GpY`=+D5D3P2h(0fp#q_K48E3U|8BJWGm5as)3>}r zVnHr}AM4K}{*Q|(!yHC2lI+P5B{j7x!>z0i+~a9Qc9ipXcOLxw{GC|um6HZ-6J-i0 zOziBA{lU-xFQ+xq7byZH%GTD_GSubj^3qcJ!nK%cS?r!Ke;Z?BP?+`l0^jJB(zzD% z{*?lAe#Y3 zzbVres2n;O{m2~8t>nPuK!V@T@dkWeoAnyam_hit!?mI>@;}EHkK(2sk$WuFywCWa z|Bl$NIP2>QC$rI6p^G+gJa}JiGIpqIUeE%nJfuAdpg}$Wp?RV{c1TxOS4Y64m?EP{ z5&#uyRcn7pu`o+j(|Njgq=}%Nou0-IoPw_cgHn={g}g776{S>FRcW?S{&K40V;lAG z!Rd(GYift$FT30yKSsRs(LJEjCdQtIMa5IwT-)Ddyhvswcw^uMr_hBLmv=e&VN3c? zB1d~WlIJQ2C}M5?#Uyvj5e=IEH4);ogIClUY4% z0ZFo(ToFMWwC_Qv|RZJ{}(0VXB?e-Cfs1Y_ zH#3t}RKE~FVH6Y)h$H#{gD7#-pjiwVy!F1?%1sT=;&<+K+~7OhV#5&T{U6|E*r(p^M34|&#UX)-6V`}nB;wlP@OehoXz}YHxTp88}$L_da8t`z66)N8P z5OR)W83<0WYJ_P?%=C}#0SJNVm*n?@bXDRODpY_85#_!!IxLWNlN?IKYp@U z4*ki{kgVt@EFuO}D%@@@b4<(!6@G$u6sLdm!5ONsO>Fr|6RgR7-S%Astr0b}PPW`U^Qz#XE zW$EdRKxwI|@*0V7pu({+`NJDk+4{`-^z+K59h;FjVizQIbo6n8@&6nTD?oojK|v|u zqWv;zJ)Jc^K2D9wPSuY8tpGJj<98D@ZwyoTzffd3;)b5c@f60Oy2m$7NiERbPGKW7 zDV-qwG;~;$jkOvktK{T628}yxqLwR2yobHB>-7~mrKLX8>dU%=fK%r~^N*3EC|ma^ zS%!Yaj9PHy!*r*BNT3wyYJ7I9dIN_zY5_^Mfl05_tR0S&=1O6;yRZfw7t~KmHBCUBAmkj@*B9n?zcH1`-Snep6sPMD_P(G-{Xtv32a&qU zI~tx9CbsJN_ifisS2etBR0uKG6WyPPAj&i?HM*Aw!1Dc5(HR;)?~ZvOY!(r$pD(** zrVS>!A7vbK{kSYz2eq5M-v_4L%hmB5F#KGJ(gE#==0QoG$v~pHabk8>?mWtCj^wy% ztT?Tn8VSY~>X>}2o*hR13j(0eCWv}plFi`6>^A>kj=+VaPft%rm^iZ35ONyV7`q7lZ@_cTxWV{D`Yt0RJgibbVuEbSRabK<`mY21Hp_BH-apYf&W+ za2f*bgef}eFI-JU%vE?rbE7L)`Q*xR`K0(qp2zE{5aG!g8zaBldsI=bZ!f33p~fSz z2;o_Nve`e5#dw8oQJG*ba2ZNlppH$f%Wl}EAot%YC*xe`<0X$ zMAz}T@}!pH4Jjr~CKZXViK%)=+Np!h$L0?q$8fJ&(m7#wNBg4!r)RwdhsiGIlmdK_ zOHS=-JZo99kT+Nz15x1q*^>VGmAnC0*J!1a%jMpd4blKk2jt)}}))$UMrm1UoR zRwgv<&nK?a7Yeur0qyyzY-SC~qo49-9?<6&E~b2{SV)!(U(pKPLDnw;0L8?94>xbul0q| z^gb0-MJ`6^aJA>cE~|h_jx8F<^b9p)2DRPoiyI_t_BJx@qPLq>B)KH6KcX_~at)rXOtNfPkp!lPycKB*CyH(nfBwYAeb@bAm|)miSKe-F}6j@v^28ZDjFskA$R%|@X)6%PU%5Yx-piAt*Y zTG{2Qt}5JSPJN_9E(o3F;7b_&D#!h2k^^MI&E005w<wXMpZJPj%q zw8NoF)yh+dl*Q<$vOIxZ%vu`gawm>F@2kaF#%`aRg|!}UK+Xc(I~Ito@LFTkuslsr zGDtQUPs`J<{XP`kW>Eg${%2S`#S1~ZT^@a0qDKoX8E6^a%>cx~4vAEaO`R4j^sfR% zDk^2=j)Yk1Kj$nChope&6!O{A>q-L~bo2z@Y|EtiZU5ZenRw3HH%v` zgx8*vUDQ3Yjk8fx$v5(Ei?^GCGG5NwC{>K*(eY~m!Xduv9-XHa>imkYZ@@DqG=*Jh zq^hc3(|f`0tm3vkAh(E{j>*3O$nPaB*w)qcCUTBl2!TODQ&zGkw?@%l5C4{v%xI_x zP&mq!bA4YycrOZL8J|z~8B}PMn37=o2ZALY3=F_V}3mGEy7yhr!Y;Jy^?b=RZv48u6>-p~P@AKWm zdFS)+ar;nyx~&fBE$D&c%bt>Gjj|L2PRlE<60UWZzD)1%-@kwN|He^7E^3S+89C%z zQCdNN)nOGD_6HPUz@Z`hJ5k1Ryj-mV_*(02&f6&q$Z0vfT~)ERc6M30DLgdlFvvJ! z+4}279g1}f&o_(ZCBJ_=>w{ZkV#NvZx+iDGrvvUg>+2IggvH%%bt8*=l-PgGtBNA7Rz5 zshA1TQhTzZ6#L@y`gBvRQ@0mBXCRoSh5OT8Ia4$n3NZc>KW@qb!{t&P-dDvZEUal6`)^bRcwz;v?ozkH6D64qh zAG2!sJw`wk*HjWV^MQ735Q?^%-as_ZCmJ_E1>4`p1#xtSZF66)-#ZF>sbn60w=i9A zEymgZrLOYXEA*||+arP9sETl6Y>G_8;iIzOsrG$X?YB=!9(4=1XjnXV3sLCW zL+;)F63E5cdgj)Vu^3Ja9t#K)xa=k$7&&w$5b+G0aRUBJFnnyrv`M?iAzR;#@gf2` zIlMQ?!Nz1&ffe@vWG$&X=CHqz)_FLCof?_Yw`|tX_n&=tTY3VQ+~`mO5U0vUwbM~S z!=IU%p`lE+L}kbj3EMk6Gsp$Ax$2)<)&va`llN@Qy4SumJgf+@FR#ax^=iF$#Hz_Vmn4~bxey@*!aeV5o0(ki z(@TzWP*0Vbj8TSUbA7#SD<^MP#rHV%rk~u?8)JLY*%&d?`r|-3S}|6I|Nh}eE1j8% zrPJbFW>bEX0~kCXHLRq=RDA-Je!F85Zh)P>7aVRydL7M>HzJq-D3#vC@u@cq0bObw zz^PhCV0C%2A|RD?-8P#q{#CwC{V}jK_PEFYaZI0G)b9@KFA{HU6u@U?<>UbPknNu* znNt$RbjL+ssO6E?eC8C?T=J|LKFtEN!O>fU4Pm`6eVJ!1+#nO7K}mPz$6k zjVI*(&|Rvc^G%pfmCFjKO$Mz_7Vq*<+zb!5*B@}BzUF&9&$ zO&)FM`4A|B-6DQ>$AIJHJlv*Qsh8X9_xVND{ozW>`ZZvw8c z%rS>A5m|&nSlml+?%;-;(d!GRK4wJHN9^Is?ViVAKm#E9#Ao`Xu{}mMb2Pc6*~w&5 zXL7XJl@H=5rs>6ZTm(mB5)Bivf^}iQ7pe?^^D*-2*?#3R;A_5!*}LlMeajiYY#hZW zloTUeQ08t?7C|jFD=VvE5}>kldsLp|6FKw*y$4?J3@|MMVtJFz?1I7HLHc{3JORv2 zIqT#2)|N3C+yKBsK=uIEj&X-u=~$vVSrOIf_BJKHPK_>g9F~^{P`w1*4*@TeiHWJA zstWMvowj?)#fJdPXT8;t6$e}oXY*frEa2sV_v6Q*hC&Yg{&`th*~U%Wod$p&0vL23 zYRvqBNf4kQK#7hg6U6C7Xd>biDh7OFYUBHx8|<~pT}B{2GxDp$eV3)Wy4s?AeSQ5H zx&b~O;-Lj3n4$&Df7a+(MytJI;W8-qLr;#45fKx|lM6opLJbY;Pdx=(Fp~IkXJWk2 z^T-q~7ajJtqt8BPJ_{< zxDgQ%xeu2rz_f{jawo0@o}ggZSdhp1yDG^M3sHvs1!E{@Hx85q>f@tl5tQCg|PqU&vZ-Vv$pNP zjgA!KH34z)d=Fhy-6v~&G)_M_%cK|=(Rw-SO+LU;f1({EpKG+5Osp;`@i>@BYq4KR zwy;iziL|t`@;+Y$qk0FF(lgVd1Ta0o@O@vX|BHP zD6+FWLsirVp3bda4SGBZYDfY;R@J z`anP?YAis;u$YE$r(a8k3J&eOI$ZyY&mPDjDu1o~6J=w#oR5!>scAuaI)SIvay5V8 zt4|0ku*$f+El;>s(V;;=3H$W(aHu6AYzRJHI&|$bpmnwaZgtW}reIqK2Zt`Ni#b=1 z((f$zFp6+fURus^9 z*YiL&R1sHwU|`@5aYsMep*NtOzQ6v#e1>6UWL!80*kOn7AL~x3$~i$A)DK*SVStpj z|F|6_N7oI6!(?I!^mKI-c~Q(_>WtaD#C1mLfsXl=Qp^bnT^b2R9!mSb2B zi198U;%%IdfQ_JOVnV40f`Ks5(d~@Qe@BXQE}RTjQeY!pEpEH*(tky5nnfc7mbdH| z-qsZ6ftbNvM$h>|DkuV@L zz<}VD>+l5C>=rDOaAghh;kY7`@}9VD6|d$c`VsIV zGCm{r(;)H$quk_U_o8&i)HOl|=aN>Kh)GEq>5;c6Wlj3K(+!}&chP%gl)r#(_EZF< zKhe-Y=h#LeY&5Qry>I>x=g}AS8#LS5;V=+WFjNn$sfEQXRSboS&%ykEAS)D}6g4Vm zOTSG^1A;R=WK1k%&Sn;=f~~+6V5$t(8eLd-y`KB<4?31F$}v{p%iVbgYJ*Pgh*2N5 z_l1x?M99}~```7>eIbwa^vyZXSpOId$43&&4I74WmMS15F#T{J^xE#Akh;FK)?_n2 z(Wb4f4Z~+Mna;kN(2mqwD&J?6K%_r%a3q-iXRloL{BUUO-sPIogMuL z^d5{`J3x{TcspXG7cF>verpEo`)`Wv2JLgZG|BNuV$m6~vFbi*S=eZtzvh9y|0!3< z^L(`dLPYJxiKy-IBNE+1u$Lu*=^2TekCu~@^D-~-cO~j-^0#l0e}gM4-g`sQ0`(s( zM*2T9YARua#l^)P!r?mUTCaP?NauFmo6c}R*p(DQpgyMX?^9FC-rnALYG7~(rK<-5$@408@t%z+@n;h~|# zwz<&649=5r{Cc$OUQ;q)Za}R_NFm4K@2{}lNxp)~!7giBh+v;W3JQwV3P9}V(jAtE z0pxqJyW86ZAY1jIqN@(V8%fzNDIt{JX&Y&iCZ?J&zIxAwBoj8cL1MJ5t$%j>nP0Si z^5AY%Q!9+4)0GLm36Et>(1oGXl1=doHqguEZrZ`kbJ>Z}T5;YQ{Hk(QfPs`z479k~ zFxhyLBm-I2L!n2UVj#~?Pip>EI-d-^ z5daL6hvwAcu-2%qohscdHR$QiDn@O&pANQQT=Vt}`HF&p>@Tlaiu<-2gp&=eMfE9-wAX3HWqCWYHS#Xi{%`a_pL7DEhoEAYicW z!Q0fx-{y8~zPP+K-s0Ui0O)+WtzVWedtT~Bj6NwT1?e=j`F-IW9v#J%pPHW5(9qZ& zpb>&s-4o%LkY_l1dU;vQ*8MMK*jN?KRO@Mdn<60`_i(wn(e3MwXG;4F0K8hGE_2%M zUmIp?)c~=1eC6c+(0w;>;7or;xVASF8S3dyow&Vtwj3#F!SIEy)MMcFq{vZD1 zlm4hMDJdE_S6f}~k6XoZUz-};t_=tX@R31so_bFlzemV9c%k^r2I0O$#(qntF<+DX z@|c*2g$G1rp~dD5^z<9d;oYjEnea$R6s@oKSHqpHcUBDz4HHotu&2ky0Q00@mWPLD zw{q}0M4^_e2+0Il#!az@da(Zg+AB8~w9bWffs-#R zEZ5h6X2pN_&~OaHgZlyld^+~5oBOA5e6YM4>#PeBe7>T=>+ldnn8J=rf1l3cMMXum zpcp2hU zAkug?!5(&435o?KVYA(yXWHBqk#)57I3!U_YewM>hwG#K-S)9 zb&QQgD`c)cIa{ftCHm2Vv{VR?W4?3_BgMm1Ru&c@`DWbh^MQfE8i?@?;n3iur=<-e z@)dFE0lafi7KwtBX}E#9Q_Sm}sD|U!{W_S<3?xa_t!7#HNX%`C#3Cyr1CNNvW8VS{ zuG8y+j%G_W+ZLdPnf*P(2uBHL<$^Q!DT%$Rs_M8tT&|FSO*h!^T*fl$TVCGf z&Q36lElMGGPm2?9Bmlwl_ZapnfiCPdF&-Ys8NV1v$^gVB7!GQ#-POWyE*MupMo#XB z1>A*Er-x*i$LHR?y*;c$05mvnw8jH!#h;^Dvs_c6T@Dn?w%`Q-aR4j9u#9V_e&GpF zAI(=KYymyJ0z!*@JsvW*+F;R8r~O@jz-@5dKu?d|q?hdb#aa_0+kgyV-Y6<6TB1uL z*Saa%&xOrRa)RXFd#m*(9w<=wqsn}Z5y^m$JWMDj6TT;)PfSeg?(Pm(^xtU$)U*{K zD(;#Hc(OF*Hop%J3Lggu$pl=e68=LX!_@j=&(HU)$Dyc?$Mduygi{a=Rn-|lelvqM zrN+g@RWOY4GVc8nov2)Zy=vTy_O-L%HMUlgkd5!l{Q0@VgBps#r+l%9BjnDRJkiM- zDG2!h&R%eYS(vE~pnU=KNWt#IWbB|x#2Kqu3z!ToIOHn{DJiN>%GShJC6gXMczXn~ z;Y~wHVls+uS0YQIzd*)zXN(?=Y)`ZQaK9NsRv=|B@I!z{fX;Ov##810&k@J}>$Ie< d$ksb_P<(YtD?Z)^aHtbXK}Ho+D`gt`zW@b~wEO@7 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/error.png b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/images/error.png new file mode 100644 index 0000000000000000000000000000000000000000..1c181bfdd34f741cd08e4e1ff297bb3ebd7d1ac1 GIT binary patch literal 19739 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%0DQa{Tel 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md new file mode 100644 index 0000000000..2dd1944ff1 --- /dev/null +++ b/docs/en/Community-Articles/2024-05-07-using-fluent-validation-with-abp/post.md @@ -0,0 +1,95 @@ +# Using FluentValidation with ABP + +## What is Validation? Why Do We Need to Validate? +Validation is checking whether a data is valid or not. We can liken validations to the cell membrane of our application. Just as the cell does not want to let in harmful substances, we do not want to add erroneous data to the database, which is critical to our application. Validations allow data that follows the rules to reach the database. Data that does not comply with the rules will not access the database at all, and the operation will fail. + +![validation](./images/validation.png) + +Validations make your application run more efficiently because they are not connected to the database. Validations should be applied in different layers of applications. Validations are applied on the UI side. Validations should also be applied on the backend side and database to prevent malicious users from passing these validations. Fluent validation is often used to create validations on the backend side. + +## What is Fluent Validation? +Fluent validation is a library for checking whether data is valid or not. Fluent validation can be applied to your code in a fluent and understandable way. + + +## Why We Should Use Fluent Validation? +Fluent Validation allows you to define your validation rules in a clear and flexible way. This means you can comfortably handle complex validation scenarios in your code. This makes your development process much more manageable. The readability that Fluent Validation offers really makes things easier. Having a clear understanding of what your validation rules do is a huge advantage when working on your code. In short, your code is cleaner and clearer. Fluent Validation is also very functional in terms of testability. By defining your validation rules in separate classes, you can easily test and maintain these rules. Fluent Validation is a widely used validation library on the .NET platform. As such, it has become a common standard among .NET developers. This provides advantages in terms of community support and compatibility. So, using Fluent Validation simplifies your development process by making your code more understandable, manageable and testable. + +## How to Use Fluent Validation in ABP? +![fluent validation](./images/abp-fluentvalidation.png) + +Using Fluent validation with Abp is quite simple. Open a command line window in the folder of the project (.csproj file) and type the following command: +abp add-package Volo.Abp.FluentValidation +If you have not created your abp project, review the [steps to create](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Overall) it now. + +Create your product object like this: +````csharp + public class Product: FullAuditedAggregateRoot + { + public string Name { get; set; } = string.Empty; + public decimal Price { get; set; } + public int Stock { get; set; } + public string? LicenseKey { get; set; } + } +```` +Create the controller of your product object by following the [documentation](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index?UI=NG&DB=EF) +You must have ProductCreateDto : +````csharp + public class ProductCreateDto + { + public string Name { get; set; } + public decimal Price { get; set; } + public int Stock { get; set; } + public string? LicenseKey { get; set; } + } +```` +Create the ProductCreateDtoValidator class in the products folder in the Application.Contacts layer. +````csharp + public class ProductCreateDtoValidator :AbstractValidator +{ + public ProductCreateDtoValidator() + { + RuleFor(p=>p.Name). + NotEmpty(). + WithMessage("Product name cannot be empty"); + + RuleFor(p=>p.Name). + MinimumLength(3). + MaximumLength(100). + WithMessage("Product name must be between 3 and 100 characters"); + + RuleFor(p => p.Stock). + GreaterThanOrEqualTo(0). + WithMessage("Product stock should not be negative"); + + RuleFor(p => p.Price). + GreaterThanOrEqualTo(0). + WithMessage("Product Price should not be negative"); + } +} +```` +Fluent validation provides you with ready-made methods that you can use to write validations very easily. +You can add a method to write your own customized validation code. For example, let's write the code that requires the license key field to contain the word “key”. +````csharp + private bool ContainsKey(string arg) + { + return arg.IndexOf("key", StringComparison.OrdinalIgnoreCase) >= 0; + } +```` + +Add the code to the constructor to use this method: + +````csharp +RuleFor(p => p.LicenseKey). + Must(ContainsKey). + WithMessage("Product license key must contain the word 'key'"); + +```` + + +When I write code that does not follow the rule, we get this error + +![fluent validation](./images/error.png) + +For more information on Fluent validation, see the [documentation](https://docs.fluentvalidation.net/en/latest/) +  +