From a209f9bc210ce7f20b55c3dfb41dbc57565982d0 Mon Sep 17 00:00:00 2001 From: samuele Date: Fri, 30 Jul 2010 08:25:55 +0000 Subject: [PATCH] update filtraggio tipo di liste di prelievo git-svn-id: https://keyhammer.ath.cx/svn/GMW/trunk@174 365432ac-a1b5-4ffd-bb28-6d3099d32164 --- .../mod_elencoListePrelievo.ascx | 11 +- .../mod_elencoListePrelievo.ascx.cs | 41 +- .../mod_elencoListePrelievo.ascx.designer.cs | 18 + GMW/GMW/WebUserControls/mod_filtro.ascx.cs | 51 +- GMW/GMW/WebUserControls/mod_main_help.ascx | 2 +- .../WebUserControls/mod_periodoAnalisi.ascx | 4 +- GMW/GMW/bin/GMW.dll | Bin 596992 -> 598016 bytes GMW/GMW/bin/GMW_data.dll | Bin 913408 -> 913408 bytes GMW/GMW/bin/SteamWare.XML | 3148 ----------------- GMW/GMW/obj/Debug/GMW.dll | Bin 596992 -> 598016 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 43264 -> 43264 bytes GMW/GMW_data/bin/Debug/GMW_data.dll | Bin 913408 -> 913408 bytes GMW/GMW_data/bin/Debug/SteamWare.xml | 3148 ----------------- GMW/GMW_data/obj/Debug/GMW_data.dll | Bin 913408 -> 913408 bytes GMW/GMW_data/obj/Debug/Refactor/GMW_data.dll | Bin 192000 -> 208384 bytes 15 files changed, 111 insertions(+), 6312 deletions(-) diff --git a/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx b/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx index cb9d6f81..77a4affb 100644 --- a/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx +++ b/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx @@ -11,13 +11,19 @@
- + - + + +
+
@@ -121,7 +127,6 @@ TargetControlID="imgCompletaListaPrelievo" /> - diff --git a/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.cs b/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.cs index f1bdb68a..c01037fe 100644 --- a/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.cs +++ b/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.cs @@ -293,6 +293,7 @@ namespace GMW.WebUserControls mod_viewRigheListaPrelievo1.Visible = false; mod_periodoAnalisi1.setPeriodoFree(); mod_filtroStato.ods = odsFiltroStati; + mod_filtroTipo.ods = odsTipoLista; // controllo se ci sia richiesta x creare nuova lista, nel caso precompilo valori... if (memLayer.ML.BoolSessionObj("PrecompilaListaPrelievo")) { @@ -631,11 +632,16 @@ namespace GMW.WebUserControls } } /// - /// chiamato post modifica valore check/selezione nel selettore filtro impianto + /// chiamato post modifica valore check/selezione nel selettore filtro stato /// /// /// public void eh_selectedStato(object sender, EventArgs e) + { + checkFixOds(); + } + + private void checkFixOds() { ods.FilterParameters.Clear(); ods.FilterExpression = "(CodLista LIKE '%{0}%' OR Particolare LIKE '%{0}%' OR DescParticolare LIKE '%{0}%')"; @@ -648,20 +654,39 @@ namespace GMW.WebUserControls if (mod_filtroStato.valore != "*") { ods.FilterExpression += " AND CodStatoLista = {1}"; - ControlParameter parametroLista = new ControlParameter(); - parametroLista.ControlID = "mod_filtroStato"; - parametroLista.PropertyName = "valore"; - parametroLista.Name = "CodStato"; - parametroLista.DefaultValue = "0"; - ods.FilterParameters.Add(parametroLista); } + ControlParameter parametroListaStato = new ControlParameter(); + parametroListaStato.ControlID = "mod_filtroStato"; + parametroListaStato.PropertyName = "valore"; + parametroListaStato.Name = "CodStato"; + parametroListaStato.DefaultValue = "0"; + ods.FilterParameters.Add(parametroListaStato); + if (mod_filtroTipo.valore != "*") + { + ods.FilterExpression += " AND CodTipoLista = '{2}'"; + } + ControlParameter parametroListaTipo = new ControlParameter(); + parametroListaTipo.ControlID = "mod_filtroTipo"; + parametroListaTipo.PropertyName = "valore"; + parametroListaTipo.Name = "CodTipoLista"; + parametroListaTipo.DefaultValue = "0"; + ods.FilterParameters.Add(parametroListaTipo); + // chiamo procedura che aggiorna ods principale grView.SelectedIndex = -1; updateOds(); // ridisegno controllo child! aggiornaElencoRighe(); } - + /// + /// chiamato post modifica valore check/selezione nel selettore filtro tipo + /// + /// + /// + public void eh_selectedTipo(object sender, EventArgs e) + { + checkFixOds(); + } /// /// restituisce URL immagine del codice da mostrare x stato lista /// diff --git a/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.designer.cs b/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.designer.cs index 22d276eb..2c91e883 100644 --- a/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.designer.cs +++ b/GMW/GMW/WebUserControls/mod_elencoListePrelievo.ascx.designer.cs @@ -40,6 +40,24 @@ namespace GMW.WebUserControls { /// protected global::System.Web.UI.WebControls.ObjectDataSource odsFiltroStati; + /// + /// mod_filtroTipo control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::mod_filtro mod_filtroTipo; + + /// + /// odsTipoLista control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource odsTipoLista; + /// /// btnNewLista control. /// diff --git a/GMW/GMW/WebUserControls/mod_filtro.ascx.cs b/GMW/GMW/WebUserControls/mod_filtro.ascx.cs index b89f08d6..9c569e18 100644 --- a/GMW/GMW/WebUserControls/mod_filtro.ascx.cs +++ b/GMW/GMW/WebUserControls/mod_filtro.ascx.cs @@ -29,20 +29,53 @@ public partial class mod_filtro : ApplicationUserControl protected bool _changeCheckVisible = true; protected bool _changeSelEnabled = true; protected string _where = ""; + protected string _showFiltered = "mostraSoloSelez"; + protected string _showAll = "mostraTutti"; + /// + /// traduzione oggetti + /// protected override void traduciObj() { if (_changeCheckVisible) { if (!chkFilt.Checked) { - chkFilt.Text = traduci("mostraSoloSelez"); + chkFilt.Text = traduci(_showFiltered); } else { - chkFilt.Text = traduci("mostraTutti"); + chkFilt.Text = traduci(_showAll); } } } + /// + /// get/set messaggio di attivazione filtraggio + /// + public string filterChekText + { + get + { + return _showFiltered; + } + set + { + _showFiltered = value; + } + } + /// + /// get/set messaggio di disattivazione filtraggio + /// + public string filterUnchekText + { + get + { + return _showAll; + } + set + { + _showAll = value; + } + } protected void chkFilt_CheckedChanged(object sender, EventArgs e) { // cambio modalità visualizzazione del filtro... @@ -309,4 +342,18 @@ public partial class mod_filtro : ApplicationUserControl dlFilt.Visible = false; memLayer.ML.emptySessionVal(string.Format("valFiltro_{0}", this.ID)); } + /// + /// get/set per la larghezza della combo dropdown + /// + public int comboWidth + { + get + { + return Convert.ToInt32(dlFilt.Width); + } + set + { + dlFilt.Width = value; + } + } } \ No newline at end of file diff --git a/GMW/GMW/WebUserControls/mod_main_help.ascx b/GMW/GMW/WebUserControls/mod_main_help.ascx index 59167dc4..a918b4e0 100644 --- a/GMW/GMW/WebUserControls/mod_main_help.ascx +++ b/GMW/GMW/WebUserControls/mod_main_help.ascx @@ -26,7 +26,7 @@ HotSpotMode="Navigate" Left="20" Right="140" Top="240" Bottom="315" AlternateText="Delibera Fusi" /> - diff --git a/GMW/GMW/WebUserControls/mod_periodoAnalisi.ascx b/GMW/GMW/WebUserControls/mod_periodoAnalisi.ascx index 0a02fc55..8e298ffa 100644 --- a/GMW/GMW/WebUserControls/mod_periodoAnalisi.ascx +++ b/GMW/GMW/WebUserControls/mod_periodoAnalisi.ascx @@ -11,7 +11,7 @@ - +
- +
mO6^*F1oycY|`(!R$bwg9iv{MB$itH4nE{qNd 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 IVN$^V0Btw|cmMzZ delta 20743 zcmch9349bq_W$eZIeI1uBqRh9AcO?MnPk@H-m@BeKQb?B<(eT^k^b)pv0i?XLKI>nvS`eAor|8kzQZi1jRtZ?fsG>N zMZJRk$Jodp_;`wqx_hg_YzgW}sjq#1FnUIUAEG`W#Y>^;%Tiw{T>VUn>bn6Z_`h=e zFf!AuQiUdbPb3L0(Vf2%gWDtQB)jUF(nIz32?_e0ai`)t5UahD z$m9-CU+t5?PBZn}J~8~#DW<>WG<4kC)PKhGuD>hhwFv2u8e4i;id1c7wMrx-)7jve zk@XA8{@D}OV{iW=*e=5+tL-R}iPZ*zy6tMuJCfP&OuhDwq#oLk6dyq|dl1=cuD8-e zRvW24g3 zJ3#UAx)bhz`gg}w`N6xSDP2Izr}RGWV}$S#j&mP9QF zV%Ry~-=!8V?`zPnpS^sEB&|~S-W?jZ3Ko6ZE4cX>-ZSnVbmp?q^Ol}fN3D#Jo>TK@ zc2l2N*$u6xmA6SN)T8dM>O*;oTCge*XvnHWP>-NhZjX?s3w~GiDOWck>#A;eHWID9 z&;BjySw5mgB72NT3|70AGpw8ucP(64A*oN~hjRmUQ4HYJ=pOtMIA&&saJDZGmji^W zqGxJrGY!oyBX1bt&uUjfR5OftI;~I(Yhu|-Nj*6xL49g=$J{2q8}!~1#tjiU7-D4U z@d0Z+47Dn(|NFh2)si*cMn4a>>`2?!uAeMl0>nmahnlO-;On0)U#wbR-`Qixi$woCGJkT7>4hIJQ#*e%&B zcy(a4&u~FaTm(&YBynkH5U^LPtJg-OLL6S(BWgKRde+E5(7;oze;vcX})Ejj>uivOdk@Gw9BT)fjD^JG))lyjwlEDB1ZK z`t0JK=F@A%?V7lhqCc5h2djT-!_|_5kJ;Hh7MTXSMhEyxBew!iCBXP5if7WYGZKeO6p zm?7#tS!y<-{yV~;jf(HDB;KxD>Ep&uwbvZ(3F$mY-CIG_?i;i6ea5VsF?7%ZsjZ~r zMUerHSNJ7PxX9oek<4AJ8K(ApDN>rR7Q7V2Rz<2~UrI^msp`uWzAer#w~K||%Xb!Y z6!6)^MKDJh8gcJn$k#;4e9hRk3BXV?xy)BGH;Iz@A}^WJQT54{;TbPNY*{cIHNqVM zqcP0!4)>ViZNwZqMU#8qEy+w3j0k5X0_^x)J-M>K)O10qZ4#xnNtD_qm6uvBPX`^c zN-MQorj^*Tu9-F{I-=FwY-mZwU4sf~{_QJx%hcXI{@?FZEKh-ss6MH@p$m?G@!_fd|Y zxc@P6!AT~%tJMjvFEkDJzi{=o&5^x?$b?}XCwW&G-wx&0CETvA+}z8<{bsdqax>A~ zMXe2M-E~j9xN$SW`P|<5Z6@xqG+(#+x(cRdkHdo|1)=hInIeo?K=>%+PAn$ zhFaF#!^NAeNy!n4S#T1gL`>8qDlsqoINW_v*6Kfh6xpFJYwm0lQ{*G4Z#0K@Hmc!V zbn?mXP=9E?wOvV1_5L>tLyY}!yabDGAHA7(TQhvpBIg#i09h?(x^eoR4~|yOnd1be zS%X8$cTypm{qz88Qul_|UcSTRZFR<$gd6x888<%1V&iLq){QR&ZSL*(LW)op@q0Ut z^ytTtdSFYRPQUOa;75h;o>0AeYnaFJtKjo}BJwQGC&wAa&uTu`R=XTAH=bK@&KYcp zLzC5RKCcUN^1U3zeFhUexS_^m(yJ$Gg$sxGOV|(0jT6)^YP42=<6dW7v{`hym**4^ z&o?H*doRxvaJH%Uyj5xrPLioct-dPs<{L2BAu*W#F!Qkyd};)r8Nrc@0jse^VHHDg zGpZE{gr|#|xNWSbi?}}(Il9WX8CmUzu;A{>>r*!nM`viYRtWBrZ?U;cKEPe_0q&9y zaF=vI@x{J*_5YI-Q}eg?mOfR-ZZ8b|02bZ6DqP^L`qcK$eL2^{YPkbK!~FsnD8l=} zK=S)p#SP|u^?$atOsSs%C2BvmjWf)rI6kjkNI@uk{Q;G-K^Y*Zc zFTui7K_5g>d%RWoTM<^P^LzXFi#cCB_I`yf?%ooIHPGY`RNd{3=+(yBKQ6MSF6tE; zYPfNG0tSx5Kut!J8hdRYb={6Gktex*9FBJPLcYoexx3m~w^gBuHTmk7JL0V;_^34% zYUn%TD}Lqevlge%SA7mTKgGvyox^W@jMh1D$ZCHRb7*5tpM%dDpF@9s$8i?DjO)X( zSRYN$x;|$m_3E8bo;)~$`7*qs@!izOtpFkk2s6p`d7R9{?BnP7_=y^y_lAD9kN>b% z{dInpkN*hx>JK}6;k*sp)xX1qE~r=Un$VH^+XBW3;auIfT{v*x zuC1%Ans*P*sK;6bK@D2wNYKL zyRMTyY_Kgzd$dBR9@!I;innK2-k;5=4EdOZJA)^Ic!=X6ayzx@Uo?%Kd*Vv@dl{jU zD-skB2&L#MR>g###^vJJAZT4KlX~FYKAwRX7shPR(pL*e0Ybpbe1YAf1w!YS`uJ~X ze5Eln;JlFXZK7NhH=cB=XxlG0Sew=%OV1Tc~JTX7lg&xM8$J%Q7Ry4{~3!UaY)uPv^cC?s3hnyoO&5=k%50Z>abj z-P3jV)t!6#buh#dV%56$dc4=Td2bhwof|o8xz0DcHJXY!V1g+c8CkVc%2gjm^CTQ*96F5UI z>cX+;q6u2N2tf?|oT5JPL7Ar`^jK|YPS0BIfzR4uh@%uWz-@e4w}h`LtL?#6YifDg z8(-E%2)62DU#qQicd&iCNQ_b&3YJ^EnaA1Y!M)iF=;TH@;m;$uneB-|xTbdU388qy zXZV1Ci`@a-Ma;u3uHr#cGq@ri3%G9Gn`NM##><9Q79M|aW5@aWEJ z`3!tVKzG&u!=%*reY1Rwo2U2?vap)3FXEneK_u2@b>fFz*tsZm{)ac;YzT@r$+=8? zrf}Yk^KS>ZGrqS2t5fN=M1_n(P-d%L2ogLpUQ-lFb5=#;vu$|0v`D}-*` z9@}fMPba#!p=G!DSrf{wHN9ZWfe(S~i7Y;gxp5e1>&qOioy3yzPVO&w__T6XQ_9^C z)hs?(XWiY(YJKB%|E>2m9r|0-AqhVWKQewy_%Y+h($I9snte^)#EC@FGl@RIwFG4` zdg$buarfLYiDz)+t3>mn!5cP|o;^$y2wwDnVHG8~HUe+-CdVrM1MqPY{Y56iK}FlV zcgHGS%y^+s`x@rQDmO`(TSDo$ zpe>+C2NGV|PX9pOs|} zr+2dKb|?wX@1PN6&*omIWrt+j>Ah^O8JVNxxTS0GnkRzP9PZY8Xou3d96k+uE~f># zyED45=kOLNlwLwRlztZcK6zX^I4?cV6G~%ovCz6a9{g>fZm9>}`i9aquA$Bts&?Jz z3a14w?$Bn}Y)D%mwNU4LzHqnX^A!y*$hP#O9R(W;V(7Di?x}VPE1ZpKlos+B+>F}m zmL`E(Xii~(c^Z2Z?P=^K&i6>~2=Ot{P+~%U9Y1^f$kLjj(Vgh0c%XF zqyYL(atJg7LK_{I;sjaN5y)cZ&h%u{F>k!f&nK#qBH3SM@8Db|q#@9$ylO-I zO=S0enyd6MMa5JzZ$Y+_VEVrARMD!eh;ncRr=a7JyC>biSZVh4dFk zErQ!@ONG=LH;9?2YutmNJ-xg0l)_Raez|0#&hgwtRD3w-t$xcvlLg-;_ya|Im}tv> zTxYc4j2E0K@uA)~T#D0K-jQHxR7Vr2H~w*q@j+MzD6ho#3QY7({0eYRh&D@j4(*_X zPTr%bN`;r@DbAT?r4@24blBChE}t zDbQrw{S-|1<~QuiSEl#z%-G47sE%AQMRY$~rK8(`{>B=0bU)C1wnLyf)Ly7(nqPf%*bF1_)8>6GQffllV>gWK_BkZ6@hhG6MVj;VE z$2nAJEuz1(NP+6;7Yy+ac3hyjw8hF%Ii9q*rmb%gP_>SF13k(f*HK~LGty)1MIBua z^f-G*M|T1JlYRa!4jFD{HsBNNj4m`qnAlTn%w8^=OOL_m(`>>%4Xy6GotCo&I(ivs z1>2ybEkG;T9v!_0w2J*8&>Z?0R-R>k?+Ytk_hAyxv2O3<-V{UVFj@!^;9xGiUPt=` znk>*(>G$B_(sS&%E>l8=OKaJf1Kj8w>Jm~!&$C%N>J7AkEf#1i*)ZUXY@;sgWi0|a z`62P~=THh%H?phnE=V8POtl9E!Iuq&L}h0&S(Ym0F-V0(rE2-oiEt zsAce5EbwEkR_4-T zWjoLyf#y&PGGQmXMMEA6bQIBUHdRv?h6(K_;cEMTU9+KTRDV+ES4{Ep%Gu^BqD z$2Lm)*gPFAi=IaBvt}Kwjc%0QXZv*&7CVjhv#Sn^*(=ckZPig??0RWG>v}|UCdU)& zg6c*WbaW#2exRpx^go!zC#+FN=Male z*qa)n8h;mk%1&!YEa9gt?sM+w9O8NLDN7Vc%bCM0O`xqbp<}Iw4zn8#!Xs>~q2m$u zr6v<8^f^<$(2UNHTg<*-c{=jqmB5#*T%bC75wEGfVrO*O7RbJ0yS~)o%eUb-?B6=# z+t7225kBC*t@2X> z)ltucBC^Tv=x6|tpL|3|1;=>5I+_R6Q9k^whGr`+3X)p{noA1=>ir$+Kh_@U zH6Fsk?=)l$cTp#Ku!cmqJINz}&O6#kuGSHEG+16BG&M&<)&UM9Jd?(q<7Q&(jf~M3lTj zM|={|an9)ARkQjX0HPDx z>?`}ZsK4CxBuCm1{pCo3G&B9>XoD~xax#r=wlV!5<3x_xmAS{#j3#5g+T>eCt@hmBq z$NVZfiiE-k4{@DK#wddU*_--)TUJQ)< zOIq{%afl4VwCAXipK`^K;4$-DxPC@MZ9|$WT*+=TfN_@XwcE~Ka6Ec~v=tj&(WF|A=T=eN4Cm&XX&>oz)!XUUzQ5?#3yM$7HCc}V{#1KM-T$Zxw??GAat zh*yyR#$noP|F^>%^1nUPM*e?2OuI4mTq^j+A=_*J?_Cj=J(swBxO|HJ?*}$!#s&Fr z6#Rc`UwQp+Zz0<9|4f-`bN|!Up}E*F5^41RDk?swJuvM97q$OySNhVfqyAr7&_2IC zciZyYTL?pp&)@&F=S17EYf-s;Y%VV~j^%kkl*7ehjg4)ilCj-(mTfs#KKxQG6i*5# zmI^1Xr2V|mG`jU?+vlAY`LBULYocwLI&bt!Z|R_aasC^f(8756U}{q1z-=dE)G^xU z?Mv4Gi=#(jSXVO4 z8zSf1qgP_#QaWww|D}{J&S%Yuw}nGSdL?}?()sW2|J#PQJ&qRR3&Jj3=lsjm|I4S6 zHkffX?G4|SZ|HU5{f|L#i5DlDL+=USjhe>xWe2<9sMF%{2l?MNXvV>e?T_IWKAjNG zX}vDrSCjV8)~0PRji#@pt;NPT`zz@c&ENlAs=Bq;xou8d(Jb36nQy{>od3o-wb#D9 z6YWig^YJaWb~}4tnxow0IhuTe4PnPXZQ?Vxk*p>8cQ%rpO&(7bWJzh1h6p;6I*N9$ zlxbAOl2b??$I4SIaupj0&Nwz0(rR{Bil1D~?nw!RbVdr^$kXE~p|XuurOcd#ThBjXF<;OQZn^*#>hLU!kHj1VKvSac^RAK%#`cc z6V6l5G-q#U|eE+a&JjGPcnM9zUT13?}CY29gom!9C+?To-QQ^`$rlwZQVf4?`(QtQ7>QdtPq%B0C zc!y;ana0DIl=i56iVa9x3OYCKDY=FHD{X}=$!nZzWt+S)ZM|fZo6|;1r`WEvdO1km zXRVjQT-&Lf|} z1-}=a`K;*`vShA@p`c9Ugxo!I8r8`Of@XuhLgkr_kZOYs7W`3yj?G+eS|m@;e96Sa z`wHls%+0X&pwRaUo6AL;$Ltk)9=*8cr>17+X#{uysrQ{}iSTiWyg$=LJH(1M3;GIu z1f6B__b_3Tcs4APxoMkpIx`b)nX%wh8EtO#?nNX9~X!jqM2ZWcqn0@WgOA?<~Uy>Mutd9QG2ugvp*337D^y78Pp zDhFoYVLmFCW=}9zvw_*;DFKe2mXFCdWKTEylRJB~bWEO+z0Q10UYOkk`i!7Wpr?>4 zF8r;553-*zox+qn*f#Rl+1t%^jDPSKMn7gZBE!$XL@zP>FiOs8F}KLalKI}v%W1;5 zgSd%mHX&y*E2Nn@jYz}#9Gk^vdOfFuMKY~%hFXG5U*#Y_Oh4uHu<#l8wuG5Xxv`?% z-_iohsg^7`D0i9%8-suHFp_o89W4dvgC*v=z)8!UhGDMG9d2ontH42d5&T)XRhE(L z;oL@PBwLcZlv0saZc8rG>OM;eZOwhgR6@IQz2NYAV53ihxU~bYKaw5I9CsW3HWjz>Ih%zNK5#B@*IAW!D-++rg!sBS*qE=JYGfqoi`s-Jt^p!Jge14 zRu`t^5y9Mn)s3|lQmPBZN6K;CF8>8#Ot;pV>Rd~yT4ca{lh-v3b#0|926b?wtHAmf z(|5T8tcy$?(~(@#F4t(OkPgB^H9PFW(#YStMq7J<-eFxLMzN7Sf3&nrv{wsy6?u5+ zxQddp9<^RYi}IhaE;Icrf0ebuv@(AK+Rx`VfNlb3nQ5Eg@6B&U`(wfRT5x^>Crdh$ ze*nGYf@zc`buKtyZ9#d71t+@TW6>kjOtPUosq=f~IQkC===t%Z-fs0--{a6sMG@BR}rJAwA#jIKiDvXgAv4p~8Wf99P z%#`<uD5b^JTsVy+GhZy5ne&6t_P8j_9GHEt5@sG! zG+XIqek=WNXg^i-kdlS=-<4BrdlABJUgLaBsW5+qc7^C%Vg6OL&BdI<3si+UShORG zO-hhCvG_@)5WSWwL(Buf4>MO6uTicO8+D}lvEl}$3etBx$~ZHxVxxp0NNyQKNhJ^4>dY%jRNEq$ ze%!Xi{3hp{cnv*j;w~l&{a*4x*Jj&%X;;bZa^NxfgOZPI$#klu9!29^iMP{3io>(B z^q_sO`Sa3G?UO~#o*`=X1mwwSc>?`d`akv-cDl5S-y9)bAf&Ny+lB8q#Fq{9J7gYJ zHrOvrzNc)s-zhe)>=w`!f;N|p_p6fkm;J@>D3ZR;Zyf6};32d1MyZ$OJ3)U2EhKY! zu9;WVX1_xEApKpxWJ~|@Mk(2nSH9nG98&Wmzab()lc}^kMm|Qv%2C#(QP8Pkx0ZWO z`tiN}i(fKLEU%ZiAwT~`qV}&Aw;EM!W_gf*p&0%Yd#gObzrylyc``U_oSFVZEL5=` zRk2e=ssAY!BWSjugFy@FwhAPr=sVK#UP9>5{V1BcqkR|M2U<&uLH#HgG+0REMcYa7 z;N%F-KtYGnRp8u8Qv;$c#eO^O(H5s)kUiSFX`ym;;IhKIlv&mzg+u*jS*d8KpSSBH zN?+@E&ZN7%WsfKibR6M-pa0+em;1ly-|YX9|E~>)A5jJ}TOYcbVrUTc^*U8$$@P8W z>hPg@ejBz(JCq5j?_|4{m71=3CU;V_7eV-k>OOHiJrZJBtSYHqbzNlX^qi3@XtS)(8B_pbBk4zyfKj_lw1f(Dg(a;6u(p>4*=f=s?cPq9MUPE3|~a5fYjrUOCU{?Dj}We)4yw@e(qKr}gEG279s=o&pn>#)bS zx(@9ZK?Cs}`s>ktH%VOfNF%`73#!mQ=?1jl7xV{d6gb}tdP3r9b<#WFF|1l36|*}b zDiZW2HXfpz1zpG{fd8V zx?P@&_8p)K-6_vQdz`m;iSnPyh4}pz{&3&=Poj+l=Mi=&JyuEd$gK=cfkX}S9#>dQ!^+Ld8p&Jrrqa^TyhXW9@|L`%#CRWgOBv-o^_H?gc8{IZ zFln38JEV7ENlH;tYHC(uh7%+;H8V3Yv#_)@v81fHD5)$Xy*R7b*|6y&c5qY z4#VylH<>2gHhJ{$abqXn>0SG8SV#)GFHNyTO8n|w*v0l);`zT$$OADIKiIvb zbhgp8LraD(QxczCaeY(i!lboJuYd4`?_}@4y4r5-@T~rK2BA%_JG~vkY~gH!(;F9N Y8{5z!+;&=Kdz=kH5w;W3q9p780|~y%J^%m! diff --git a/GMW/GMW/bin/GMW_data.dll b/GMW/GMW/bin/GMW_data.dll index b4d40ab1ff3b437d1a942d0a6d2fb7e0a7171e49..88c9fde787c49c02b72e65f6950258399f2586e7 100644 GIT binary patch delta 95 zcmZp8VBYY+d_o7ae{E1>cWXCeYd2GCH*;$@OKUf4Yd2eKH+yS0M{74{Yd2SGH+O3{ y&(?0d*ut>c6ISteamWare - - - classe gesione log files applicazioni - - - - - directory base x logs - - - - - nome del file corrente - - - - - max mb di log da accumulare - - - - - singleton del logger - - - - - avvio del logger nella dir desiderata - - - - - avvio del logger nella dir desiderata - - - - - avvio del logger nella dir desiderata con il max di dati indicato - - - - - scrive sul file log di default il valore della variabile string passata su una riga... (tab delim?!?) - - testo iniziale del log - - - - - scrive un messaggio di log con etichetta pre - - testo messaggio - tipo di log da registrare (etichetta [...]) - - - - - fornisce il nome del file in cui loggare (ed eventualmente crea...) - - - - - provvede a verificare la dim della cartella dei log e cancella i + vecchi fino a restare a dim inferiori a _logMaxMb - - - - - fornisce il file + vecchio - - - - - - - tipo di log ammesso - - - - - informazioni di debug - - - - - errori - - - - - eccezioni nell'esecuzione try/catch - - - - - errori fatali - - - - - informazioni opzionali - - - - - fase di avvio componente - - - - - avvisi - - - - - classe di wrap verso i TableAdapter impiegati - - - - - metodo protected di avvio della classe - - - - - procedura di avvio dei tableAdapter - - - - - procedura di avvio dei tableAdapter - - - - - effettua setup dei connection strings da web.config delal singola applicazione - - - - - effettua setup dei connection strings da web.config delal singola applicazione - - - - - setup delle tabelle vocabolario - - - - - prende l'oggetto tabVocabolario in ram e lo trasforma in dictionary - - - - - - tableAdapter diritti - - - - - tableAdapter permessi - - - - - tableAdapter funzione - - - - - tableAdapter permessi2funzione - - - - - tableAdapter CdC - - - - - tableAdapter utenti - - - - - table adapter lingue - - - - - table adapter vocabolario - - - - - table adapter versione vocabolario - - - - - table adapter versione anagrafica - - - - - oggetto vocabolario organizzato come dizionario con chiave lang#lemma e valore la traduzione - - - - - resetta il vocabolario rileggendo i dati... - - - - - crea nel db corrente il lemma richiesto e lo valorizza come "--{0}--" - - - - - - - classe singleton x la gestione dei tableadapters - - - - - elenco lingue ammesse da vocabolario... - - - - - classe di gestione lettura - - - - - esegue parsing fornendo dati ed headers - - - - - - - - esegue parsing fornendo dati - - - - - - - esegue parsing fornendo dati come stream - - - - - - - esegue parsing fornendo dati come stream ed headers - - - - - - - - struttura di comando da input utente (es: via barcode) - - - - - definisce se il comando sia valido o no - - - - - testo da mostrare dato il comando - - - - - comando registrato - - - - - comando precedentemente inserito - - - - - descrizione del comando - - - - - descrizione del comando precedente - - - - - valore del comando - - - - - valore tradotto del comando - - - - - costruttore del metodo... - - - - - Base class for every user control in the application, containing some common - behaviour and utility methods. - It is not meant to be be used directly. - - - - - tipo id controllo con classi di base comune da cui derivare gli *.asmx - - - - - nome della pagina correntemente caricata - - - - - memorizza la pagina precedente (ovvero la corrente ma non da page-object ma in session... - - - - - stringa con CDC in (...) dei cdc abilitati (da permesso gerarchicamente a discendere...) - - - - - stringa con elenco CDC abilitati (da permesso gerarchicamente a discendere...) - - - - - tabella diritti - - - - - tabella di tutti i cdc - - - - - tipo di anagrafica usata - - - - - importo il tipo di vista del modulo - - - - - elenco testuale csv dei cdc accessibili all'utente (x filtri tipo IN(...)) - - - - - numero di righe standard x i datagrid - - - - - numero di righe standard x i datagrid di anagrafica - - - - - numero di righe standard x i datagrid lunghi - - - - - numero di righe standard x i datagrid medi - - - - - numero di righe standard x i datagrid su mezza pagina - - - - - numero di righe standard x i selettori popup - - - - - indirizzo email dell'admin applicativo cui vanno le email in caso di anomalie... - - - - - indirizzo email dell'applicativo da cui partono le email in caso di anomalie... - - - - - indirizzo server SMTP - - - - - elenco delle pagine "safe" ovvero da non autorizzare - da web.config - - - - - elenco delle pagine "common" ovvero da autorizzare ma senza bisogno diritti in anagrafica - da web.config - - - - - valore che determina se è possibile forzare impersonificazioen utente... - - - - - livello di log (1-->5) - - - - - dir di logging - - - - - MAIN: esecuzione al caricamento del modulo delle routines di controllo utente e creazione pagina - - - - - - - predisposizione dati x pagina da cache/database a seconda della disponibilità in cache o refresh (B.1.4) - - - - - popola gli oggetti e le labels... (B.1.6) - - - - - disegna la pagina: prima i controlli poi il datagrid - - - - - aggiunge i link x i selettori - - - - - sistema i vari controlli della pagina - - - - - aggiorna eventuali datalist e datagrid - - - - - sistema tutte le labels traducendo i lemmi nella lingua utente ed in inglese - - - - - calcola come percentuale la radio dividendo/divisore - - - - - - - - limita una stringa al numero max di caratteri imposto - - - - - - - - Reads data from a stream until the end is reached. The - data is returned as a byte array. An IOException is - thrown if any of the underlying IO calls fail. - - The stream to read data from - The initial buffer length - - - - converte una data in formato aaaammgg in stringa gg/mm/aaaa - - - - - - - converte una data in formato aaaammgg in stringa aaaa-mm-gg - - - - - - - converte una stringa in formato gg/mm/aaaa in stringa(intero data) in formato aaaammgg - - - - - - - converte una datetime in un intero tipo yyyymmddhhmmss - - - - - - - formatta la data in formato dateTime in una data formato italiano come stringa gg/mm/aaaa - - - - - - - invia un alert jscript con messaggio indicato... - - messaggio dell'alert da mandare - - - - scrive immediatamente sulla pagina web il messaggio di avanzamento... - - - - - - restituisce una scringa formattata in testa e coda x essere un corretto comando javascript - - - - - - - invio email senza log - - - - - - - - - - invio email con log - - - - - - - - - - caricamento dati applicazione da sessione (B.1.3) - - - - - setup datamanagers... - - - - - reset update del modulo corrente - - - - - (ri)carica i dataset del modulo - - - - - verifica se tutti i dataset richiesti sono disponibili i cache - - - - - - salva nella cache i dataset caricati - - - - - carica dalla cache i dataset necessari - - - - - legge i valori standard x dataset e parametri - - - - - leggi i parametri di configurazione standard dell'applicativo - - - - - genera la stringa dei cdc autorizzati dell'utente - - - - - legge il dataset dei CdC - - - - - caricamento dati user da sessione (B.1.1) - - - - - verifica che l'utente abbia almeno un permesso per la pagina corrente altrimenti redirect ad unauthorized - - - - - salva in variabile pagina il nome della pagina corrente - - - - - selezione delle posizioni cdc autorizzate come stringa di filtraggio su POSIZIONE LIKE, se non ce ne fossero redirige su unauthorized.aspx - - - - - - risponde alla domanda se l'utente abbia permesso tipo writable (S) nel permessi2funzione - - - - - - verifica la condizione booleana e formatta di conseguenza la stringa di filtraggio da accodare al filtro x CdC autorizzati - - condizione - tipo di eguaglianza - nome parametro - valore parametro - - - - - crea la stringa di filtraggio x data secondo modalità tipo inizio/fine/durante... - - - - - - crea la stringa di filtraggio x data secondo modalità tipo minoreUguale / uguale / maggioreUguale... - - - - - - verifica la condizione booleana e formatta di conseguenza la stringa di filtraggio tipo LIKE x i campi inseriti separati da # SE valParam !="" - - - - - - - - esegue la ricerca dei cdc nelle posizioni indicate dal filtro e restituisce elenco distinct degli stessi - - filtro con cui cercare i cdc (del tipo " (POSIZIONE LIKE 'T.1.2.3%') OR ... " - stringa di filtraggio ricostruita per l'elenco dei cdc fino a quel momento trovati - ultimo cdc trovato - cdc corrente - - - - - restituisce il cdc dell'utente data la sua matricola - - - - - - - restituisce l'utente AS dall'utente win - - - - - - - restituisce la descr del CdC - - - - - - - invia la stringa jscript di conferma pre-cancellazione - - - - - - restituisce la stringa del path corretto per l'immagine richiesta nel formato "~/images/{0}{1}" - - verrà usato x posizione {0}, tipo "view" - verrà usato x posizione {1}, tipo "_s.png" - - - - - restituisce la stringa del path corretto per l'immagine richiesta nel formato "~/images/{0}{1}" - - verrà usato x posizione {0}, tipo "view" - verrà usato x posizione {1}, tipo "_s.png" - tipo del file richiesto..." - - - - - effettua traduzione del lemma - - - - - - - effettua traduzione in inglese del lemma - - - - - - - definisce visibilità - - - - - - - effettua la registrazione degli eventi - - - - - effettua l'inserimento vero e proprio dell'evento letto dai valori in session x l'utente corrente... - - evento da loggare - valori originali - nuovi valori - filtro associato - - - - salva in sessione i valori indicati - - dictionary dei valori vecchi - dictionary dei valori nuovi - bool su abilitazione al log dell'oggetto - descrizione evento da loggare - filtro associato all'evento - restituisce il numero di elementi contenuti, -1 significa nessuna differenza... - - - - salva in sessione i valori per un oggetto che sta x essere eliminato - - dictionary dei valori vecchi - bool su abilitazione al log dell'oggetto - descrizione evento da loggare - filtro associato all'evento - restituisce il numero di elementi contenuti, -1 significa nessuna differenza... - - - - imposto il tipo di anagrafica del controlloS - - - - - variabile salvata in view state x la stringa di sorting - dg 2 - - - - - variabile salvata in view state x la stringa di sorting - dg 2 - - - - - legge e scrive in viewState la stringa di filtraggio... - - - - - variabile salvata in viewstate x la direzione del sorting - - - - - genera la stringa filtro x i cdc autorizzati x l'user - - - - - - tipo di vista del modulo - - - - - Summary description for selettori - - - - - - - - - - - - - - - carica i dati CdC se in cache o da TableAdapter - - - - - restituisce l'elenco di tutti i cdc - - - - - - restituisce l'elenco di tutti i cdc della gerarchia dell'utente - - - - - - Represents a strongly typed in-memory cache of data. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - classe di gestione dei db x creazione/update alla versione richiesta - - - - - oggetto connessione - - - - - stringa di connessione - - - - - dir che contiene gli script da eseguire... - - - - - formato del file SQL impiegato (nel senso di formato come iFormat del tipo "App_{0:0000}.sql" --> da App_0001.sql ad App_9999.sql) - - - - - avvio protected della classe - - - - - esegue gli script di sql di update dal file richiesto - - - - - - - - Aggiorna il db eseguendo gli script dalla versione di partenza a quella di arrivo - - NB: per definizione rev 0 = resetta svuotando DB, rev 1 crea tabelle iniziali, rev 2 inserisce i valori di default - - nome DB di cui cercare script - revisione di partenza - revisione di arrivo - timeout max per ogni operazione - - - - - verifica se il db indicato esiste o meno... - - - - - - - - crea il db indicato con i parametri di connessione specificati - - - - - - - - Represents a strongly typed in-memory cache of data. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - classe con funzioni specifiche di calcolo - - - - - inizializzazione classe - - - - - elenco dei caratteri base 36: 0..9A..Z - - - - - - converte da base di dimensione nBase a valore intero - - valore in formato nBase - base, max 36 (0..9A..Z) - - - - - metodo di accesso singleton - - - - - tipo di chart (2D/3D) - - - - - 2D - - - - - 3D - - - - - web control che disegna un grafico a torta - - - - - altezza di default - - - - - larghezza di default - - - - - padding di default - - - - - legenda visibile di default - - - - - soglia minima 5% per mostrare il dato - - - - - renderizza il contenuto - - - - - - disegna la leggenda html laterale... - - - - - - disegna piechart 2-dim - - - - - - disegna piechart 3d ellittica - - - - - - traduce la stringa colore in oggetto colore - - - - - - - converte intero a stringa esadecimale - - - - - - - converte stringa esadecimale a intero - - - - - - - tipo di grafico (2D/3D) - - - - - ampiezza del grafico - - - - - altezza del grafico - - - - - padding grafico/container - - - - - boolean se si debba mostrale la legenda - - - - - percentuale minima da mostrare - - - - - serie di dati (tipizzata) ma mostrare - - - - - testo associato al controllo - - - - - layer gestione vari tipi di memoria: cache, session... - - - - - lettore file configurazione - - - - - oggetto singleton x accesso al layer di memoria - - - - - classe gestione accessi a Session, cache, viewstate, configuration... - - - - - legge dalla config un valore bool - - - - - - - legge dalla config un valore string - - - - - - - legge dalla config un valore int - - - - - - - carica dalla sessione un dato di tipo object generico - - - - - - - carica dalla sessione un dato di tipo boolean (se vuoto false) - - - - - - - carica dalla sessione un dato di tipo string - - - - - - - carica dalla sessione un dato di tipo long - - - - - - - carica dalla sessione un dato di tipo int - - - - - - - inserisce in session un valore - - - - - - - salvo un valore come cookie - - - - - - - - restituisco un valore da cookie - - - - - - - inserisce in session un valore - - nome della variabile - valore associato - indica se debba sopravvivere ad update (inserita in elenco valSess2SurvUpd) - - - - - svuota una variabile dalla session - - - - - - restituisce true se è presente in session l'oggetto richiesto - - - - - - - carica dalla Cache un dato di tipo object generico - - - - - - - carica dalla Cachee un dato di tipo boolean (se vuoto false) - - - - - - - carica dalla Cachee un dato di tipo string - - - - - - - inserisce in Cache un valore - - nome della variabile - valore - - - - inserisce in Cache un valore e su richiesta regitra tra le tab in cache da svuotare on update.. - - nome della variabile - valore - da registrare come tabella da svuotare on update? - - - - - svuota una variabile dalla Cache - - - - - - restituisce true se è presente in cache l'oggetto richiesto - - - - - - - aggiunge la stringa corrente nel dictionary delle tabelle messe in cache e da aggiornare su comando update - - - - - - aggiunge la stringa corrente nel dictionary delle tabelle messe in session che vanno preservate da comando update (es: oggetto selezionato...) - - - - - - - forza lo svuotamento delel tabelle indicate come in cache... - - - - - elenco dictionary delle tab in cache da aggiornare con update svuotando da cache... - - - - - elenco dictionary dei valori in session da NON aggiornare con update... - - - - - classe gestione parametri deviceper stampa - - - - - creazione oggetto parametri per stampa - - - - - - - - - - - - formato output - - - - - altezza - - - - - larghezza - - - - - margine Sx - - - - - margine Dx - - - - - margine Top - - - - - margine Bottom - - - - - enumeratore modalità login - - - - - login AD normale - - - - - forza utente fornendo password - - - - - forza ad un utente standard scelto dall'elenco - - - - - enumeratore modalità scrittura tag siteMap - - - - - nodo di tipo iniziale - apertura - - - - - nodo di tipo foglia - - - - - nodo di tipo finale - chiusura - - - - - enumeratore tipi di anagrafica - - - - - tipo di anagrafica Brembo - - - - - tipo di anagrafica generica - - - - - tipo di vista del modulo - - - - - modalità selezione - - - - - modalità editing - - - - - tipologia di file immagine - - - - - formato gif (no alpha channel) - - - - - formato jpeg - - - - - formato png - - - - - tipo di immagini usate per le icone di comando in web applications - - - - - icona annulla (croce rossa) - - - - - icona approva (simbolo coccarda) - - - - - icona barcode in campo bianco - - - - - icona barcode in campo arancio - - - - - icona clona (magic wand) - - - - - icona converma (spunta verde) - - - - - icona elimina (cestino) - - - - - icona modifica (matita) - - - - - icona notepad (blocco note) - - - - - icona notepad + pdf (blocco note) - - - - - icona nuovo (segno +) - - - - - icona seleziona (lente) - - - - - icona semaforo giallo - - - - - icona semaforo rosso - - - - - icona semaforo verde - - - - - icona stampa (printer) - - - - - dimensione immagini usate per le icone di comando in web applications - - - - - formato piccolo - - - - - formato medio - - - - - formato grande - - - - - definisce un intervalo di 2 date - - - - - data inizio - - - - - data fine - - - - - struttura orario ordinarie/strordinarie - - - - - ore ordinarie - - - - - ore straordinarie - - - - - classe di funzioni inerenti le date - - - - - inizializzazione empty - - - - - effettua l'operazione di intersezione tra 2 intervali di date restituendo ulteriore intervallo: NB se sono intervali disgiunti restituisce 9/9/9999 x inizio e fine - - - - - - - - oggetto mese precedente alla dataLilmite - - - - - - oggetto mese corrente fino alla dataLilmite - - - - - - confronta le date e restituisce true se le date sono nello stesso mese - - - - - - - - restituisce l'intervallo del giorno completo che comprende la data indicata - - - - - - - restituisce l'intervallo di N giorni fino alla data indicata - - - - - - - - restituisce l'intervallo della settimana corrente per la data indicata - - - - - - - restituisce l'intervallo del mese corrente per la data indicata - - - - - - - restituisce l'intervallo del mese che comprendela data indicata - - - - - - - restituisce l'intervallo dell'anno corrente per la data indicata - - - - - - - classe di gestione delle email - - - - - stringa nel nome DNS o dell'ip del server SMTP - - - - - metodo static per la gestione delle email - - - - - - metodo static per la gestione delle email - - - - - - - procedura invio email - - email mittente - email destinatario - oggetto dell'email - corpo del messaggio - - - - procedura invio email + scrittura in log! - - email mittente - email destinatario - oggetto dell'email - corpo del messaggio - - - - metodo singleton gestione email... - - - - - Tipo di comparazione, Binary == CaseSensitive, Text = insensitive - - - - - tipo controllo : binario - - - - - tipo controllo : text - - - - - Funzione di splitting compatibile con multi-character e multi-line - - - - - stringa da splittare - - - - - Delimiter con cui splittare - - - - - Costruttore dello Splitter - - - - - comparatore case sensitive - - - - - - - - comparatore case insensitive - - - - - - - - parte principale dello splitter - - stringa da splittare - delimitatore ricercato - true=il delimiter è un blocco unico, false=qualsiasi oggetto del delimiter fa split (come split base) - - 0 -> Binary=CaseSensitive, 1 -> Text=case insensitive - - - - - elimina dal nome file il tipo (desinenza) - - - - - - - Classe di metodi che estendono quelli base applicati alle string - - - - - Trasforma in MAIUSCOLo il primo carattere della stringa - - stringa da processare - stringa processata - - - - restituisce la stringa completa e corretta del filepath del server (anche con vDir) - - path relativo alla cartella iis dell'applicativo - path fisico tradotto - - - - effettua escape di stringhe di ricerca di tipo filtro per apici e altri caratteri non ammessi - - - - - - - fornisce dati di base per l'utente - - - - - fornisce cognome e nome utente formattati a partire dall'username e dalla tabella UTENTE - - - - - - - restituisce la riga completa dall'username richiesto - - - - - - - Represents a strongly typed in-memory cache of data. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - classe gestione utente: auth e permission/ruoli - versione GENERICA - - - - - cancella da session l'utente - - - - - carica la riga dati utente - - - - - Carica la tabella diritti dell'utente da db e salva in session - - - - - Carica la tabella diritti dell'utente da db e salva in session SOLO per il CDC indicato - - - - - - Effettua setup dei permessi una volta salvati i diritti - - - - - imposta la lingua utente dal valore della riga DB - - - - - costruisce la mappa del sito per l'utente - - - - - formatta un nodo in modo corretto dai dati indicati - - - - - - - - - inizializza la gestione utente... - - - - - traduce il lemma nella lingua dell'user corrente - - - - - - - traduce il lemma in inglese - - - - - - - traduce il lemma nella lingua dell'user e in inglese tra parentesi - - - - - - - Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati - - - - - - - - Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati CON I DIRITTI SOLO per il CDC indicato - - - - - - - - - salva dati accessori quali il cdc dell'utente... - - - - - verifica nella tab diritti se l'utente abbia il right richiesto e fornisce bool in risposta - - - - - - - verifica le credenziali AD dell'utente... - - - - - - - - conta il numero di permessi utente per la pagina attuale e restituisce true se ne trova almeno 1 - - - - - - - verifica se il permesso utente per la pagina attuale sia write per almeno 1 diritto assegnato (restituisce true se ne trova almeno 1 con permessi2funzione.readwrite='S') - - - - - - - ricarica e ri-traduce la mappa sito per l'utente... - - - - - retituisce il nome apgina dai permessi utente - - - - - - restituisce cognome e nome di un utente dato username... - - username - - - - - restituisce cognome e nome di un utente data la matricola... - - matricola - - - - - restituisce cognome e nome di un utente dato username e dominio... - - username - dominio - - - - - restituisce cognome e nome di un utente dato username... - - username - - - - - restituisce cognome e nome di un utente dato username e dominio... - - username - dominio - - - - - restituisce cognome e nome di un utente dato username eventualmente comprensivo di dominio... - - {dominio\}userName - - - - - restituisce l'elenco delle funzioni abilitate dato modulo ed username partendo dalla radice dell'albero dei diritti - - - - - - - - restituisce l'elenco degli utenti dato i diritti che devono avere come modulo/funzione - - nome del modulo - nome della funzione - tabella utenti - - - - restituisce l'elenco delle email degli utenti dato i diritti che devono avere come modulo/funzione - - nome del modulo - nome della funzione - stringa di email separate da "," - - - - crea un nuovo utente con le credenziali indicate - - - - - - - - - - - - assegna il diritto all'utente indicato - - - - - - - - - - - toglier il diritto all'utente indicato - - - - - - - - - - - restituisce la tabella (per utente corrente) dei CDC abilitati per l'applicazione attuale da sessione (se non c'è salva...) - - modulo di cui si testano i diritti - - - - - versione statica della classe utente come singleton UtenTeSignletoN - - - - - restituisce la tabella diritti da session - - - - - tabella dei permessi utente - - - - - tabella dei permessi utente di tipo "WRITE" enabled - - - - - retituisce username AD - - - - - oggetto utente con metodi get/set - - - - - oggetto dominio con metodi get/set - - - - - oggetto modulo (applicazione) con metodi get/set - - - - - oggetto lingua utente con metodi get/set - - - - - restituisce true se utente forzato da forceUser.aspx - - - - - restituisce i valori della riga utente da db - - - - - restituisce una stringa formattata con cognome, nome e matricola - - - - - restituisce una stringa della sigla dell'utente - - - - - restituisce una stringa formattata con cognome e nome - - - - - restituisce una stringa formattata con cognome - - - - - restituisce una stringa formattata con nome - - - - - fornisce un file XML della mappa del sito abilitato per l'utente... - - - - - è un boolean che indica se in session ci siano user/dominio e quindi utente autenticato in rpecedenza... - - - - - Accesso in lettura e scrittura al filesystem per gestione files upload e download - - - - - path di lavoro dei metodi leggi/scrivi - - - - - verifica esistenza directory ed eventualmente crea restituendo nome completo di "/" finale - - - - - - - restituisce una tab di files dato l'elenco dei files - - - - - - - setta le directory - - - - - - oggetto WebClient - - - - - inizializza il metodo alla cartella indicata - - - non serve +... x retrocompatibilità... - - - - metodo di avvio empty - - - - - cerca di caricare il fileinfo o da httpcontext-application re-position o direttamente come workpath + nomefile - - - - - - - cerca di caricare il fileinfo o da httpcontext-application re-position o direttamente come workpath + nomefile - - - - - - - - cerca di caricare la directoryInfo o da httpcontext-application re-position o direttamente come workpath - - - - - - - Legge i dati da uno stream fino a quando arriva alla fine. - I dati sono restituiti come un byte[] array. un eccezione IOException è - sollevata se una delle chiamate IO sottostanti fallisce. - - Lo stream da cui leggere - Lunghezza buffer iniziale (-1 = default 32k) - - - - verifica esistenza directory, eventualmente crea e restituisce controllo DirectoryInfo - - - - - - ottiene il dataset dei files presenti nella directory indicata esplicitamente - - dir da indicizzare... già mappata! ( es SteamwareStrings.getFilePath(...) ) - - - - - ottiene il dataset dei files presenti nella directory indicata all'istanziazione dell'oggetto - - - - - - ottiene il dataset dei files DEL TIPO "like {param}" presenti nella directory indicata all'istanziazione dell'oggetto - - - - - - elenco dei files come array di oggetti FileInfo - - - - - - elenco dei files come array di oggetti FileInfo filtrati per parametro - - - - - - - elimina la directory di lavoro se è dir virtuale mappata - - - - - - elimina tutti i files con la regexp indicata da una directory, true se cancellato almeno uno - - regexp selezione files in dir (* = tutti!!!) - - - - - verifica se il file indicato esista in workDir - - - - - - - elimina il file indicato dalla directory di lavoro - - - - - - - restituisce lo stream del file richiesto - - - - - - - restituisce la stringa letta dal file richiesto - - - - - - - scrive il file dallo stream byte[] inviato - - - - - - - - scrive il file dalla stringa inviata - - - - - - - - converte una string in un byte[] - - - - - - - converte un byte[] in una string - - - - - - - sposta il file da From a To... - - - - - - - - - copia il file da From a To... - - - - - - - - - copia il file da From a To... - - - - - - - - - - imposta la dir di lavoro - - - - - - imposta la dir di lavoro - - - non serve +... x retrocompatibilità... - - - - imposta la dir di lavoro impostandola dal mapPath corretto della web app... - - - - - - esegue un comando in shell - - - - - - - - - esegue un comando in shell - - - - - - - - - Scarica un file dall'url fornito nella directory indicata x il filemover col nome richiesto - - url del file - nome con cui salvare il file - - - - - comprime zip il file indicato - - - - - - - comprime zip i files corrispondenti alla RegExp indicata nella dir corrente - - Espressione ricerca, come *.txt - Nome del file zip da creare - - - - - calcola la dim della directory corrente... - - - - - - - elimina il file + vecchio - - - - - - - versione statica (singleton) del'oggetto fileMover - - - - - classe per effettuare confronto tra valori disomogeneri per tipo e costruire diff testuali - - - - - valore originale - - - - - nuovo valore - - - - - dictionary dei parametri vecchi - - - - - dictionary dei parametri nuovi - - - - - inizializzazione classe - - - - - valorizza i diff dei valori old e new - - - - - calcola solo il vettore dei valori old (x delete) - - - - - oggetto statico per il confronto valori - - - - - stringa diff dei valori originali modificati - - - - - stringa diff dei valori nuovi modificati - - - - - dictionary dei parametri old - - - - - dictionary dei parametri new - - - - - classe gestione logging esteso di eventi e note utente (correlabili) - - - - - TableAdapter di accesso alla tabella anagrafica filtraggi - - - - - TableAdapter di accesso alla tabella anagrafica record - - - - - TableAdapter di accesso alla tabella logging record di eventi - - - - - TableAdapter di accesso alla tabella logging utente - - - - - TableAdapter di accesso alla vista logging eventi - - - - - TableAdapter di accesso alla vista logging utente - - - - - effettua setup dei connection strings da web.config delal singola applicazione - - - - - avvio i tari tableAdapters - - - - - avvio della classe istanziando db e - - - - - oggetto statico di accesso ai metodi della classe... - - - - - tabella eventi - - - - - - tabella note - - - - - - tabella eventi secondo filtro - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - - - - - tabella note secondo filtro - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - - - - - tabella eventi secondo filtro e condizione ulteriore WHERE esplicitata - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - ulteriore condizione WHERE per filtrare i dati (testo {0} della condizione "WHERE {0}" - - - - - tabella note secondo filtro e condizione ulteriore WHERE esplicitata - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - ulteriore condizione WHERE per filtrare i dati (testo {0} della condizione "WHERE {0}" - - - - - tabella note secondo filtro - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - - - - - inserisce l'evento indicato dai parametri - - user che ha generato l'evento - pagina/form applicaizone in cui l'evento si è generato - valore originale(se c'è) - valore nuovo/modificato - descrizione evento (poi gestita con anagrafica interna) - filtro logico evento (poi gestita con anagrafica interna) - - - - inserisce la nota utente indicata dai parametri, restituisce idx della nota creata... - - user che ha inserito la nota - testo della nota - valore ulteriore da associare alla nota (es: label, codice, versione, ...) - filtro logico evento (poi gestita con anagrafica interna) - intero dell'idx della nota creata - - - - associa l'evento e la nota indicati - - idx del record da associare - idx chiave della nota da associare - - - - associa l'ultimo evento del filtro indicato alla nota - - filtro associato all'ultimo evento... - idx chiave della nota da associare - - - - segna come cestinati tutti gli eventi dell'utente indicato non ancora associati o cestinati - - utente generatore dell'evento - - - - segna come cestinati tutti gli eventi dell'utente indicato non ancora associati o cestinati - - utente generatore dell'evento - - - - Elimina gli eventi cestinati generati dall'utente indicato - - utente generatore dell'evento - - - - Elimina gli eventi cestinati anteriori alla data selezionata - - dataOra dell'evento - - - - effettua la registrazione dell'evento in session - - - - - metodo di comportamento del controllo di logging - - - - - nasconde pannello log - - - - - memorizza log inserito - - - - - mostra pannello log - - - - - metodo di comportamento del controllo di logging - - - - - indica il primo step del doppio livello di approvazione (completamento) - - - - - SOLO con incremento indice di revisione dell'oggetto approvato - - - - - SOLO mantenendo indice di revisione corrente - - - - - permette SIA con revisione che senza (e anche rev -1) - - - - - Pagina base applicazioni SteamWare da cui derivare le altre - - - - - Iniziazlizzazione void (non fa nulla) - - - - - Metodo MAIN: viene eseguita al caricamento ed effettua delle routines per il controllo utente e istanzia l'oggetto memLayer - - - - - - - rimanda alla pagina di Work In Progress salvando in session un titolo ed una descrizione che al pagina wip poi mostrerà all'utente - - titolo da mostrare nella pagina WIP - descrizione da mostrare nella pagina WIP - diff --git a/GMW/GMW/obj/Debug/GMW.dll b/GMW/GMW/obj/Debug/GMW.dll index 8941f68dde43870657fc191b26a0a3c0b8948572..1d43eebb4d528ae85736db9680d980793a2203a2 100644 GIT binary patch delta 21651 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 IVN$^V0Btw|cmMzZ delta 20743 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 Y8{5z!+;&=Kdz=kH5w;W3q9p780|~y%J^%m! diff --git a/GMW/GMW/obj/Debug/ResolveAssemblyReference.cache b/GMW/GMW/obj/Debug/ResolveAssemblyReference.cache index d5f5014678a7ae10c6f0fed96196df93eda057e0..eb0fbd24a89bad86552901a5684fcc2e90fdc13c 100644 GIT binary patch delta 2550 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 y&(?0d*ut>c6ISteamWare - - - classe gesione log files applicazioni - - - - - directory base x logs - - - - - nome del file corrente - - - - - max mb di log da accumulare - - - - - singleton del logger - - - - - avvio del logger nella dir desiderata - - - - - avvio del logger nella dir desiderata - - - - - avvio del logger nella dir desiderata con il max di dati indicato - - - - - scrive sul file log di default il valore della variabile string passata su una riga... (tab delim?!?) - - testo iniziale del log - - - - - scrive un messaggio di log con etichetta pre - - testo messaggio - tipo di log da registrare (etichetta [...]) - - - - - fornisce il nome del file in cui loggare (ed eventualmente crea...) - - - - - provvede a verificare la dim della cartella dei log e cancella i + vecchi fino a restare a dim inferiori a _logMaxMb - - - - - fornisce il file + vecchio - - - - - - - tipo di log ammesso - - - - - informazioni di debug - - - - - errori - - - - - eccezioni nell'esecuzione try/catch - - - - - errori fatali - - - - - informazioni opzionali - - - - - fase di avvio componente - - - - - avvisi - - - - - classe di wrap verso i TableAdapter impiegati - - - - - metodo protected di avvio della classe - - - - - procedura di avvio dei tableAdapter - - - - - procedura di avvio dei tableAdapter - - - - - effettua setup dei connection strings da web.config delal singola applicazione - - - - - effettua setup dei connection strings da web.config delal singola applicazione - - - - - setup delle tabelle vocabolario - - - - - prende l'oggetto tabVocabolario in ram e lo trasforma in dictionary - - - - - - tableAdapter diritti - - - - - tableAdapter permessi - - - - - tableAdapter funzione - - - - - tableAdapter permessi2funzione - - - - - tableAdapter CdC - - - - - tableAdapter utenti - - - - - table adapter lingue - - - - - table adapter vocabolario - - - - - table adapter versione vocabolario - - - - - table adapter versione anagrafica - - - - - oggetto vocabolario organizzato come dizionario con chiave lang#lemma e valore la traduzione - - - - - resetta il vocabolario rileggendo i dati... - - - - - crea nel db corrente il lemma richiesto e lo valorizza come "--{0}--" - - - - - - - classe singleton x la gestione dei tableadapters - - - - - elenco lingue ammesse da vocabolario... - - - - - classe di gestione lettura - - - - - esegue parsing fornendo dati ed headers - - - - - - - - esegue parsing fornendo dati - - - - - - - esegue parsing fornendo dati come stream - - - - - - - esegue parsing fornendo dati come stream ed headers - - - - - - - - struttura di comando da input utente (es: via barcode) - - - - - definisce se il comando sia valido o no - - - - - testo da mostrare dato il comando - - - - - comando registrato - - - - - comando precedentemente inserito - - - - - descrizione del comando - - - - - descrizione del comando precedente - - - - - valore del comando - - - - - valore tradotto del comando - - - - - costruttore del metodo... - - - - - Base class for every user control in the application, containing some common - behaviour and utility methods. - It is not meant to be be used directly. - - - - - tipo id controllo con classi di base comune da cui derivare gli *.asmx - - - - - nome della pagina correntemente caricata - - - - - memorizza la pagina precedente (ovvero la corrente ma non da page-object ma in session... - - - - - stringa con CDC in (...) dei cdc abilitati (da permesso gerarchicamente a discendere...) - - - - - stringa con elenco CDC abilitati (da permesso gerarchicamente a discendere...) - - - - - tabella diritti - - - - - tabella di tutti i cdc - - - - - tipo di anagrafica usata - - - - - importo il tipo di vista del modulo - - - - - elenco testuale csv dei cdc accessibili all'utente (x filtri tipo IN(...)) - - - - - numero di righe standard x i datagrid - - - - - numero di righe standard x i datagrid di anagrafica - - - - - numero di righe standard x i datagrid lunghi - - - - - numero di righe standard x i datagrid medi - - - - - numero di righe standard x i datagrid su mezza pagina - - - - - numero di righe standard x i selettori popup - - - - - indirizzo email dell'admin applicativo cui vanno le email in caso di anomalie... - - - - - indirizzo email dell'applicativo da cui partono le email in caso di anomalie... - - - - - indirizzo server SMTP - - - - - elenco delle pagine "safe" ovvero da non autorizzare - da web.config - - - - - elenco delle pagine "common" ovvero da autorizzare ma senza bisogno diritti in anagrafica - da web.config - - - - - valore che determina se è possibile forzare impersonificazioen utente... - - - - - livello di log (1-->5) - - - - - dir di logging - - - - - MAIN: esecuzione al caricamento del modulo delle routines di controllo utente e creazione pagina - - - - - - - predisposizione dati x pagina da cache/database a seconda della disponibilità in cache o refresh (B.1.4) - - - - - popola gli oggetti e le labels... (B.1.6) - - - - - disegna la pagina: prima i controlli poi il datagrid - - - - - aggiunge i link x i selettori - - - - - sistema i vari controlli della pagina - - - - - aggiorna eventuali datalist e datagrid - - - - - sistema tutte le labels traducendo i lemmi nella lingua utente ed in inglese - - - - - calcola come percentuale la radio dividendo/divisore - - - - - - - - limita una stringa al numero max di caratteri imposto - - - - - - - - Reads data from a stream until the end is reached. The - data is returned as a byte array. An IOException is - thrown if any of the underlying IO calls fail. - - The stream to read data from - The initial buffer length - - - - converte una data in formato aaaammgg in stringa gg/mm/aaaa - - - - - - - converte una data in formato aaaammgg in stringa aaaa-mm-gg - - - - - - - converte una stringa in formato gg/mm/aaaa in stringa(intero data) in formato aaaammgg - - - - - - - converte una datetime in un intero tipo yyyymmddhhmmss - - - - - - - formatta la data in formato dateTime in una data formato italiano come stringa gg/mm/aaaa - - - - - - - invia un alert jscript con messaggio indicato... - - messaggio dell'alert da mandare - - - - scrive immediatamente sulla pagina web il messaggio di avanzamento... - - - - - - restituisce una scringa formattata in testa e coda x essere un corretto comando javascript - - - - - - - invio email senza log - - - - - - - - - - invio email con log - - - - - - - - - - caricamento dati applicazione da sessione (B.1.3) - - - - - setup datamanagers... - - - - - reset update del modulo corrente - - - - - (ri)carica i dataset del modulo - - - - - verifica se tutti i dataset richiesti sono disponibili i cache - - - - - - salva nella cache i dataset caricati - - - - - carica dalla cache i dataset necessari - - - - - legge i valori standard x dataset e parametri - - - - - leggi i parametri di configurazione standard dell'applicativo - - - - - genera la stringa dei cdc autorizzati dell'utente - - - - - legge il dataset dei CdC - - - - - caricamento dati user da sessione (B.1.1) - - - - - verifica che l'utente abbia almeno un permesso per la pagina corrente altrimenti redirect ad unauthorized - - - - - salva in variabile pagina il nome della pagina corrente - - - - - selezione delle posizioni cdc autorizzate come stringa di filtraggio su POSIZIONE LIKE, se non ce ne fossero redirige su unauthorized.aspx - - - - - - risponde alla domanda se l'utente abbia permesso tipo writable (S) nel permessi2funzione - - - - - - verifica la condizione booleana e formatta di conseguenza la stringa di filtraggio da accodare al filtro x CdC autorizzati - - condizione - tipo di eguaglianza - nome parametro - valore parametro - - - - - crea la stringa di filtraggio x data secondo modalità tipo inizio/fine/durante... - - - - - - crea la stringa di filtraggio x data secondo modalità tipo minoreUguale / uguale / maggioreUguale... - - - - - - verifica la condizione booleana e formatta di conseguenza la stringa di filtraggio tipo LIKE x i campi inseriti separati da # SE valParam !="" - - - - - - - - esegue la ricerca dei cdc nelle posizioni indicate dal filtro e restituisce elenco distinct degli stessi - - filtro con cui cercare i cdc (del tipo " (POSIZIONE LIKE 'T.1.2.3%') OR ... " - stringa di filtraggio ricostruita per l'elenco dei cdc fino a quel momento trovati - ultimo cdc trovato - cdc corrente - - - - - restituisce il cdc dell'utente data la sua matricola - - - - - - - restituisce l'utente AS dall'utente win - - - - - - - restituisce la descr del CdC - - - - - - - invia la stringa jscript di conferma pre-cancellazione - - - - - - restituisce la stringa del path corretto per l'immagine richiesta nel formato "~/images/{0}{1}" - - verrà usato x posizione {0}, tipo "view" - verrà usato x posizione {1}, tipo "_s.png" - - - - - restituisce la stringa del path corretto per l'immagine richiesta nel formato "~/images/{0}{1}" - - verrà usato x posizione {0}, tipo "view" - verrà usato x posizione {1}, tipo "_s.png" - tipo del file richiesto..." - - - - - effettua traduzione del lemma - - - - - - - effettua traduzione in inglese del lemma - - - - - - - definisce visibilità - - - - - - - effettua la registrazione degli eventi - - - - - effettua l'inserimento vero e proprio dell'evento letto dai valori in session x l'utente corrente... - - evento da loggare - valori originali - nuovi valori - filtro associato - - - - salva in sessione i valori indicati - - dictionary dei valori vecchi - dictionary dei valori nuovi - bool su abilitazione al log dell'oggetto - descrizione evento da loggare - filtro associato all'evento - restituisce il numero di elementi contenuti, -1 significa nessuna differenza... - - - - salva in sessione i valori per un oggetto che sta x essere eliminato - - dictionary dei valori vecchi - bool su abilitazione al log dell'oggetto - descrizione evento da loggare - filtro associato all'evento - restituisce il numero di elementi contenuti, -1 significa nessuna differenza... - - - - imposto il tipo di anagrafica del controlloS - - - - - variabile salvata in view state x la stringa di sorting - dg 2 - - - - - variabile salvata in view state x la stringa di sorting - dg 2 - - - - - legge e scrive in viewState la stringa di filtraggio... - - - - - variabile salvata in viewstate x la direzione del sorting - - - - - genera la stringa filtro x i cdc autorizzati x l'user - - - - - - tipo di vista del modulo - - - - - Summary description for selettori - - - - - - - - - - - - - - - carica i dati CdC se in cache o da TableAdapter - - - - - restituisce l'elenco di tutti i cdc - - - - - - restituisce l'elenco di tutti i cdc della gerarchia dell'utente - - - - - - Represents a strongly typed in-memory cache of data. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - classe di gestione dei db x creazione/update alla versione richiesta - - - - - oggetto connessione - - - - - stringa di connessione - - - - - dir che contiene gli script da eseguire... - - - - - formato del file SQL impiegato (nel senso di formato come iFormat del tipo "App_{0:0000}.sql" --> da App_0001.sql ad App_9999.sql) - - - - - avvio protected della classe - - - - - esegue gli script di sql di update dal file richiesto - - - - - - - - Aggiorna il db eseguendo gli script dalla versione di partenza a quella di arrivo - - NB: per definizione rev 0 = resetta svuotando DB, rev 1 crea tabelle iniziali, rev 2 inserisce i valori di default - - nome DB di cui cercare script - revisione di partenza - revisione di arrivo - timeout max per ogni operazione - - - - - verifica se il db indicato esiste o meno... - - - - - - - - crea il db indicato con i parametri di connessione specificati - - - - - - - - Represents a strongly typed in-memory cache of data. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - classe con funzioni specifiche di calcolo - - - - - inizializzazione classe - - - - - elenco dei caratteri base 36: 0..9A..Z - - - - - - converte da base di dimensione nBase a valore intero - - valore in formato nBase - base, max 36 (0..9A..Z) - - - - - metodo di accesso singleton - - - - - tipo di chart (2D/3D) - - - - - 2D - - - - - 3D - - - - - web control che disegna un grafico a torta - - - - - altezza di default - - - - - larghezza di default - - - - - padding di default - - - - - legenda visibile di default - - - - - soglia minima 5% per mostrare il dato - - - - - renderizza il contenuto - - - - - - disegna la leggenda html laterale... - - - - - - disegna piechart 2-dim - - - - - - disegna piechart 3d ellittica - - - - - - traduce la stringa colore in oggetto colore - - - - - - - converte intero a stringa esadecimale - - - - - - - converte stringa esadecimale a intero - - - - - - - tipo di grafico (2D/3D) - - - - - ampiezza del grafico - - - - - altezza del grafico - - - - - padding grafico/container - - - - - boolean se si debba mostrale la legenda - - - - - percentuale minima da mostrare - - - - - serie di dati (tipizzata) ma mostrare - - - - - testo associato al controllo - - - - - layer gestione vari tipi di memoria: cache, session... - - - - - lettore file configurazione - - - - - oggetto singleton x accesso al layer di memoria - - - - - classe gestione accessi a Session, cache, viewstate, configuration... - - - - - legge dalla config un valore bool - - - - - - - legge dalla config un valore string - - - - - - - legge dalla config un valore int - - - - - - - carica dalla sessione un dato di tipo object generico - - - - - - - carica dalla sessione un dato di tipo boolean (se vuoto false) - - - - - - - carica dalla sessione un dato di tipo string - - - - - - - carica dalla sessione un dato di tipo long - - - - - - - carica dalla sessione un dato di tipo int - - - - - - - inserisce in session un valore - - - - - - - salvo un valore come cookie - - - - - - - - restituisco un valore da cookie - - - - - - - inserisce in session un valore - - nome della variabile - valore associato - indica se debba sopravvivere ad update (inserita in elenco valSess2SurvUpd) - - - - - svuota una variabile dalla session - - - - - - restituisce true se è presente in session l'oggetto richiesto - - - - - - - carica dalla Cache un dato di tipo object generico - - - - - - - carica dalla Cachee un dato di tipo boolean (se vuoto false) - - - - - - - carica dalla Cachee un dato di tipo string - - - - - - - inserisce in Cache un valore - - nome della variabile - valore - - - - inserisce in Cache un valore e su richiesta regitra tra le tab in cache da svuotare on update.. - - nome della variabile - valore - da registrare come tabella da svuotare on update? - - - - - svuota una variabile dalla Cache - - - - - - restituisce true se è presente in cache l'oggetto richiesto - - - - - - - aggiunge la stringa corrente nel dictionary delle tabelle messe in cache e da aggiornare su comando update - - - - - - aggiunge la stringa corrente nel dictionary delle tabelle messe in session che vanno preservate da comando update (es: oggetto selezionato...) - - - - - - - forza lo svuotamento delel tabelle indicate come in cache... - - - - - elenco dictionary delle tab in cache da aggiornare con update svuotando da cache... - - - - - elenco dictionary dei valori in session da NON aggiornare con update... - - - - - classe gestione parametri deviceper stampa - - - - - creazione oggetto parametri per stampa - - - - - - - - - - - - formato output - - - - - altezza - - - - - larghezza - - - - - margine Sx - - - - - margine Dx - - - - - margine Top - - - - - margine Bottom - - - - - enumeratore modalità login - - - - - login AD normale - - - - - forza utente fornendo password - - - - - forza ad un utente standard scelto dall'elenco - - - - - enumeratore modalità scrittura tag siteMap - - - - - nodo di tipo iniziale - apertura - - - - - nodo di tipo foglia - - - - - nodo di tipo finale - chiusura - - - - - enumeratore tipi di anagrafica - - - - - tipo di anagrafica Brembo - - - - - tipo di anagrafica generica - - - - - tipo di vista del modulo - - - - - modalità selezione - - - - - modalità editing - - - - - tipologia di file immagine - - - - - formato gif (no alpha channel) - - - - - formato jpeg - - - - - formato png - - - - - tipo di immagini usate per le icone di comando in web applications - - - - - icona annulla (croce rossa) - - - - - icona approva (simbolo coccarda) - - - - - icona barcode in campo bianco - - - - - icona barcode in campo arancio - - - - - icona clona (magic wand) - - - - - icona converma (spunta verde) - - - - - icona elimina (cestino) - - - - - icona modifica (matita) - - - - - icona notepad (blocco note) - - - - - icona notepad + pdf (blocco note) - - - - - icona nuovo (segno +) - - - - - icona seleziona (lente) - - - - - icona semaforo giallo - - - - - icona semaforo rosso - - - - - icona semaforo verde - - - - - icona stampa (printer) - - - - - dimensione immagini usate per le icone di comando in web applications - - - - - formato piccolo - - - - - formato medio - - - - - formato grande - - - - - definisce un intervalo di 2 date - - - - - data inizio - - - - - data fine - - - - - struttura orario ordinarie/strordinarie - - - - - ore ordinarie - - - - - ore straordinarie - - - - - classe di funzioni inerenti le date - - - - - inizializzazione empty - - - - - effettua l'operazione di intersezione tra 2 intervali di date restituendo ulteriore intervallo: NB se sono intervali disgiunti restituisce 9/9/9999 x inizio e fine - - - - - - - - oggetto mese precedente alla dataLilmite - - - - - - oggetto mese corrente fino alla dataLilmite - - - - - - confronta le date e restituisce true se le date sono nello stesso mese - - - - - - - - restituisce l'intervallo del giorno completo che comprende la data indicata - - - - - - - restituisce l'intervallo di N giorni fino alla data indicata - - - - - - - - restituisce l'intervallo della settimana corrente per la data indicata - - - - - - - restituisce l'intervallo del mese corrente per la data indicata - - - - - - - restituisce l'intervallo del mese che comprendela data indicata - - - - - - - restituisce l'intervallo dell'anno corrente per la data indicata - - - - - - - classe di gestione delle email - - - - - stringa nel nome DNS o dell'ip del server SMTP - - - - - metodo static per la gestione delle email - - - - - - metodo static per la gestione delle email - - - - - - - procedura invio email - - email mittente - email destinatario - oggetto dell'email - corpo del messaggio - - - - procedura invio email + scrittura in log! - - email mittente - email destinatario - oggetto dell'email - corpo del messaggio - - - - metodo singleton gestione email... - - - - - Tipo di comparazione, Binary == CaseSensitive, Text = insensitive - - - - - tipo controllo : binario - - - - - tipo controllo : text - - - - - Funzione di splitting compatibile con multi-character e multi-line - - - - - stringa da splittare - - - - - Delimiter con cui splittare - - - - - Costruttore dello Splitter - - - - - comparatore case sensitive - - - - - - - - comparatore case insensitive - - - - - - - - parte principale dello splitter - - stringa da splittare - delimitatore ricercato - true=il delimiter è un blocco unico, false=qualsiasi oggetto del delimiter fa split (come split base) - - 0 -> Binary=CaseSensitive, 1 -> Text=case insensitive - - - - - elimina dal nome file il tipo (desinenza) - - - - - - - Classe di metodi che estendono quelli base applicati alle string - - - - - Trasforma in MAIUSCOLo il primo carattere della stringa - - stringa da processare - stringa processata - - - - restituisce la stringa completa e corretta del filepath del server (anche con vDir) - - path relativo alla cartella iis dell'applicativo - path fisico tradotto - - - - effettua escape di stringhe di ricerca di tipo filtro per apici e altri caratteri non ammessi - - - - - - - fornisce dati di base per l'utente - - - - - fornisce cognome e nome utente formattati a partire dall'username e dalla tabella UTENTE - - - - - - - restituisce la riga completa dall'username richiesto - - - - - - - Represents a strongly typed in-memory cache of data. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents the strongly named DataTable class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Represents strongly named DataRow class. - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Row event argument class - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - Represents the connection and commands used to retrieve and save data. - - - - - classe gestione utente: auth e permission/ruoli - versione GENERICA - - - - - cancella da session l'utente - - - - - carica la riga dati utente - - - - - Carica la tabella diritti dell'utente da db e salva in session - - - - - Carica la tabella diritti dell'utente da db e salva in session SOLO per il CDC indicato - - - - - - Effettua setup dei permessi una volta salvati i diritti - - - - - imposta la lingua utente dal valore della riga DB - - - - - costruisce la mappa del sito per l'utente - - - - - formatta un nodo in modo corretto dai dati indicati - - - - - - - - - inizializza la gestione utente... - - - - - traduce il lemma nella lingua dell'user corrente - - - - - - - traduce il lemma in inglese - - - - - - - traduce il lemma nella lingua dell'user e in inglese tra parentesi - - - - - - - Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati - - - - - - - - Procedura da chiamare DOPO aver messo in session i dati utente/dominio x caricare gli altri dati CON I DIRITTI SOLO per il CDC indicato - - - - - - - - - salva dati accessori quali il cdc dell'utente... - - - - - verifica nella tab diritti se l'utente abbia il right richiesto e fornisce bool in risposta - - - - - - - verifica le credenziali AD dell'utente... - - - - - - - - conta il numero di permessi utente per la pagina attuale e restituisce true se ne trova almeno 1 - - - - - - - verifica se il permesso utente per la pagina attuale sia write per almeno 1 diritto assegnato (restituisce true se ne trova almeno 1 con permessi2funzione.readwrite='S') - - - - - - - ricarica e ri-traduce la mappa sito per l'utente... - - - - - retituisce il nome apgina dai permessi utente - - - - - - restituisce cognome e nome di un utente dato username... - - username - - - - - restituisce cognome e nome di un utente data la matricola... - - matricola - - - - - restituisce cognome e nome di un utente dato username e dominio... - - username - dominio - - - - - restituisce cognome e nome di un utente dato username... - - username - - - - - restituisce cognome e nome di un utente dato username e dominio... - - username - dominio - - - - - restituisce cognome e nome di un utente dato username eventualmente comprensivo di dominio... - - {dominio\}userName - - - - - restituisce l'elenco delle funzioni abilitate dato modulo ed username partendo dalla radice dell'albero dei diritti - - - - - - - - restituisce l'elenco degli utenti dato i diritti che devono avere come modulo/funzione - - nome del modulo - nome della funzione - tabella utenti - - - - restituisce l'elenco delle email degli utenti dato i diritti che devono avere come modulo/funzione - - nome del modulo - nome della funzione - stringa di email separate da "," - - - - crea un nuovo utente con le credenziali indicate - - - - - - - - - - - - assegna il diritto all'utente indicato - - - - - - - - - - - toglier il diritto all'utente indicato - - - - - - - - - - - restituisce la tabella (per utente corrente) dei CDC abilitati per l'applicazione attuale da sessione (se non c'è salva...) - - modulo di cui si testano i diritti - - - - - versione statica della classe utente come singleton UtenTeSignletoN - - - - - restituisce la tabella diritti da session - - - - - tabella dei permessi utente - - - - - tabella dei permessi utente di tipo "WRITE" enabled - - - - - retituisce username AD - - - - - oggetto utente con metodi get/set - - - - - oggetto dominio con metodi get/set - - - - - oggetto modulo (applicazione) con metodi get/set - - - - - oggetto lingua utente con metodi get/set - - - - - restituisce true se utente forzato da forceUser.aspx - - - - - restituisce i valori della riga utente da db - - - - - restituisce una stringa formattata con cognome, nome e matricola - - - - - restituisce una stringa della sigla dell'utente - - - - - restituisce una stringa formattata con cognome e nome - - - - - restituisce una stringa formattata con cognome - - - - - restituisce una stringa formattata con nome - - - - - fornisce un file XML della mappa del sito abilitato per l'utente... - - - - - è un boolean che indica se in session ci siano user/dominio e quindi utente autenticato in rpecedenza... - - - - - Accesso in lettura e scrittura al filesystem per gestione files upload e download - - - - - path di lavoro dei metodi leggi/scrivi - - - - - verifica esistenza directory ed eventualmente crea restituendo nome completo di "/" finale - - - - - - - restituisce una tab di files dato l'elenco dei files - - - - - - - setta le directory - - - - - - oggetto WebClient - - - - - inizializza il metodo alla cartella indicata - - - non serve +... x retrocompatibilità... - - - - metodo di avvio empty - - - - - cerca di caricare il fileinfo o da httpcontext-application re-position o direttamente come workpath + nomefile - - - - - - - cerca di caricare il fileinfo o da httpcontext-application re-position o direttamente come workpath + nomefile - - - - - - - - cerca di caricare la directoryInfo o da httpcontext-application re-position o direttamente come workpath - - - - - - - Legge i dati da uno stream fino a quando arriva alla fine. - I dati sono restituiti come un byte[] array. un eccezione IOException è - sollevata se una delle chiamate IO sottostanti fallisce. - - Lo stream da cui leggere - Lunghezza buffer iniziale (-1 = default 32k) - - - - verifica esistenza directory, eventualmente crea e restituisce controllo DirectoryInfo - - - - - - ottiene il dataset dei files presenti nella directory indicata esplicitamente - - dir da indicizzare... già mappata! ( es SteamwareStrings.getFilePath(...) ) - - - - - ottiene il dataset dei files presenti nella directory indicata all'istanziazione dell'oggetto - - - - - - ottiene il dataset dei files DEL TIPO "like {param}" presenti nella directory indicata all'istanziazione dell'oggetto - - - - - - elenco dei files come array di oggetti FileInfo - - - - - - elenco dei files come array di oggetti FileInfo filtrati per parametro - - - - - - - elimina la directory di lavoro se è dir virtuale mappata - - - - - - elimina tutti i files con la regexp indicata da una directory, true se cancellato almeno uno - - regexp selezione files in dir (* = tutti!!!) - - - - - verifica se il file indicato esista in workDir - - - - - - - elimina il file indicato dalla directory di lavoro - - - - - - - restituisce lo stream del file richiesto - - - - - - - restituisce la stringa letta dal file richiesto - - - - - - - scrive il file dallo stream byte[] inviato - - - - - - - - scrive il file dalla stringa inviata - - - - - - - - converte una string in un byte[] - - - - - - - converte un byte[] in una string - - - - - - - sposta il file da From a To... - - - - - - - - - copia il file da From a To... - - - - - - - - - copia il file da From a To... - - - - - - - - - - imposta la dir di lavoro - - - - - - imposta la dir di lavoro - - - non serve +... x retrocompatibilità... - - - - imposta la dir di lavoro impostandola dal mapPath corretto della web app... - - - - - - esegue un comando in shell - - - - - - - - - esegue un comando in shell - - - - - - - - - Scarica un file dall'url fornito nella directory indicata x il filemover col nome richiesto - - url del file - nome con cui salvare il file - - - - - comprime zip il file indicato - - - - - - - comprime zip i files corrispondenti alla RegExp indicata nella dir corrente - - Espressione ricerca, come *.txt - Nome del file zip da creare - - - - - calcola la dim della directory corrente... - - - - - - - elimina il file + vecchio - - - - - - - versione statica (singleton) del'oggetto fileMover - - - - - classe per effettuare confronto tra valori disomogeneri per tipo e costruire diff testuali - - - - - valore originale - - - - - nuovo valore - - - - - dictionary dei parametri vecchi - - - - - dictionary dei parametri nuovi - - - - - inizializzazione classe - - - - - valorizza i diff dei valori old e new - - - - - calcola solo il vettore dei valori old (x delete) - - - - - oggetto statico per il confronto valori - - - - - stringa diff dei valori originali modificati - - - - - stringa diff dei valori nuovi modificati - - - - - dictionary dei parametri old - - - - - dictionary dei parametri new - - - - - classe gestione logging esteso di eventi e note utente (correlabili) - - - - - TableAdapter di accesso alla tabella anagrafica filtraggi - - - - - TableAdapter di accesso alla tabella anagrafica record - - - - - TableAdapter di accesso alla tabella logging record di eventi - - - - - TableAdapter di accesso alla tabella logging utente - - - - - TableAdapter di accesso alla vista logging eventi - - - - - TableAdapter di accesso alla vista logging utente - - - - - effettua setup dei connection strings da web.config delal singola applicazione - - - - - avvio i tari tableAdapters - - - - - avvio della classe istanziando db e - - - - - oggetto statico di accesso ai metodi della classe... - - - - - tabella eventi - - - - - - tabella note - - - - - - tabella eventi secondo filtro - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - - - - - tabella note secondo filtro - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - - - - - tabella eventi secondo filtro e condizione ulteriore WHERE esplicitata - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - ulteriore condizione WHERE per filtrare i dati (testo {0} della condizione "WHERE {0}" - - - - - tabella note secondo filtro e condizione ulteriore WHERE esplicitata - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - ulteriore condizione WHERE per filtrare i dati (testo {0} della condizione "WHERE {0}" - - - - - tabella note secondo filtro - - filtro gestito come condizione "LIKE '%{0}%'" rispetto al filtro salvato con l'evento - - - - - inserisce l'evento indicato dai parametri - - user che ha generato l'evento - pagina/form applicaizone in cui l'evento si è generato - valore originale(se c'è) - valore nuovo/modificato - descrizione evento (poi gestita con anagrafica interna) - filtro logico evento (poi gestita con anagrafica interna) - - - - inserisce la nota utente indicata dai parametri, restituisce idx della nota creata... - - user che ha inserito la nota - testo della nota - valore ulteriore da associare alla nota (es: label, codice, versione, ...) - filtro logico evento (poi gestita con anagrafica interna) - intero dell'idx della nota creata - - - - associa l'evento e la nota indicati - - idx del record da associare - idx chiave della nota da associare - - - - associa l'ultimo evento del filtro indicato alla nota - - filtro associato all'ultimo evento... - idx chiave della nota da associare - - - - segna come cestinati tutti gli eventi dell'utente indicato non ancora associati o cestinati - - utente generatore dell'evento - - - - segna come cestinati tutti gli eventi dell'utente indicato non ancora associati o cestinati - - utente generatore dell'evento - - - - Elimina gli eventi cestinati generati dall'utente indicato - - utente generatore dell'evento - - - - Elimina gli eventi cestinati anteriori alla data selezionata - - dataOra dell'evento - - - - effettua la registrazione dell'evento in session - - - - - metodo di comportamento del controllo di logging - - - - - nasconde pannello log - - - - - memorizza log inserito - - - - - mostra pannello log - - - - - metodo di comportamento del controllo di logging - - - - - indica il primo step del doppio livello di approvazione (completamento) - - - - - SOLO con incremento indice di revisione dell'oggetto approvato - - - - - SOLO mantenendo indice di revisione corrente - - - - - permette SIA con revisione che senza (e anche rev -1) - - - - - Pagina base applicazioni SteamWare da cui derivare le altre - - - - - Iniziazlizzazione void (non fa nulla) - - - - - Metodo MAIN: viene eseguita al caricamento ed effettua delle routines per il controllo utente e istanzia l'oggetto memLayer - - - - - - - rimanda alla pagina di Work In Progress salvando in session un titolo ed una descrizione che al pagina wip poi mostrerà all'utente - - titolo da mostrare nella pagina WIP - descrizione da mostrare nella pagina WIP - diff --git a/GMW/GMW_data/obj/Debug/GMW_data.dll b/GMW/GMW_data/obj/Debug/GMW_data.dll index b4d40ab1ff3b437d1a942d0a6d2fb7e0a7171e49..88c9fde787c49c02b72e65f6950258399f2586e7 100644 GIT binary patch delta 95 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 literal 192000 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