From 53179248b88ef5a56f499256aefb6cb34e52efb9 Mon Sep 17 00:00:00 2001 From: samuele Date: Tue, 3 Aug 2010 09:08:38 +0000 Subject: [PATCH] Corretto login e aggiungo logoff Semplificata struttura grafica inserito dummy x UDC inserito modulo x current task (in basso) git-svn-id: https://keyhammer.ath.cx/svn/GMW/trunk@182 365432ac-a1b5-4ffd-bb28-6d3099d32164 --- GMW/GMW_Term/Barcode.aspx | 4 +- GMW/GMW_Term/Barcode.aspx.cs | 38 +- GMW/GMW_Term/Barcode.aspx.designer.cs | 9 - GMW/GMW_Term/GMW_Term.csproj | 24 + GMW/GMW_Term/Home.aspx | 4 +- GMW/GMW_Term/Home.aspx.designer.cs | 9 - GMW/GMW_Term/ListePrelievo.aspx | 4 +- GMW/GMW_Term/ListePrelievo.aspx.designer.cs | 9 - GMW/GMW_Term/Login.aspx | 10 +- GMW/GMW_Term/Login.aspx.designer.cs | 9 - GMW/GMW_Term/Search.aspx | 9 +- GMW/GMW_Term/Search.aspx.designer.cs | 9 - GMW/GMW_Term/Style.css | 35 +- GMW/GMW_Term/UDC.aspx | 8 + GMW/GMW_Term/UDC.aspx.cs | 17 + GMW/GMW_Term/UDC.aspx.designer.cs | 16 + GMW/GMW_Term/WebMasterPages/Compact.Master | 15 +- .../WebMasterPages/Compact.Master.designer.cs | 9 + GMW/GMW_Term/WebUserControls/mod_barcode.ascx | 19 +- .../WebUserControls/mod_barcode.ascx.cs | 104 +- .../WebUserControls/mod_currentTask.ascx | 4 + .../WebUserControls/mod_currentTask.ascx.cs | 23 + .../mod_currentTask.ascx.designer.cs | 25 + GMW/GMW_Term/WebUserControls/mod_login.ascx | 2 +- .../WebUserControls/mod_menuTop.ascx.cs | 16 +- GMW/GMW_Term/WebUserControls/mod_search.ascx | 2 +- GMW/GMW_Term/WebUserControls/mod_userBar.ascx | 9 +- .../WebUserControls/mod_userBar.ascx.cs | 3 +- GMW/GMW_Term/bin/GMW_Term.dll | Bin 11776 -> 14848 bytes GMW/GMW_Term/bin/GMW_data.dll | Bin 919552 -> 919552 bytes GMW/GMW_Term/bin/SteamWare.XML | 3156 +++++++++++++++++ GMW/GMW_Term/bin/SteamWare.dll | Bin 359936 -> 359936 bytes GMW/GMW_Term/mod_taskUdc.ascx | 1 + GMW/GMW_Term/mod_taskUdc.ascx.cs | 17 + GMW/GMW_Term/mod_taskUdc.ascx.designer.cs | 18 + GMW/GMW_Term/obj/Debug/GMW_Term.dll | Bin 11776 -> 14848 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 49783 -> 49783 bytes GMW/GMW_data/bin/Debug/GMW_data.dll | Bin 919552 -> 919552 bytes GMW/GMW_data/bin/Debug/SteamWare.dll | Bin 359936 -> 359936 bytes GMW/GMW_data/bin/Debug/SteamWare.xml | 3156 +++++++++++++++++ GMW/GMW_data/obj/Debug/GMW_data.dll | Bin 919552 -> 919552 bytes GMW/GMW_data/obj/Debug/Refactor/GMW_data.dll | Bin 210944 -> 210944 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 27478 -> 26863 bytes 43 files changed, 6684 insertions(+), 109 deletions(-) create mode 100644 GMW/GMW_Term/UDC.aspx create mode 100644 GMW/GMW_Term/UDC.aspx.cs create mode 100644 GMW/GMW_Term/UDC.aspx.designer.cs create mode 100644 GMW/GMW_Term/WebUserControls/mod_currentTask.ascx create mode 100644 GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.cs create mode 100644 GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.designer.cs create mode 100644 GMW/GMW_Term/mod_taskUdc.ascx create mode 100644 GMW/GMW_Term/mod_taskUdc.ascx.cs create mode 100644 GMW/GMW_Term/mod_taskUdc.ascx.designer.cs diff --git a/GMW/GMW_Term/Barcode.aspx b/GMW/GMW_Term/Barcode.aspx index e140abc8..60b8abd4 100644 --- a/GMW/GMW_Term/Barcode.aspx +++ b/GMW/GMW_Term/Barcode.aspx @@ -1,14 +1,14 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/WebMasterPages/Compact.Master" AutoEventWireup="true" CodeBehind="Barcode.aspx.cs" Inherits="GMW_Term.Barcode" %> -<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc1" %> +<%--<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc1" %>--%> <%@ Register src="WebUserControls/mod_barcode.ascx" tagname="mod_barcode" tagprefix="uc2" %> - + <%----%> diff --git a/GMW/GMW_Term/Barcode.aspx.cs b/GMW/GMW_Term/Barcode.aspx.cs index 42cb8e14..0ab2e639 100644 --- a/GMW/GMW_Term/Barcode.aspx.cs +++ b/GMW/GMW_Term/Barcode.aspx.cs @@ -3,11 +3,47 @@ using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using SteamWare; namespace GMW_Term { public partial class Barcode : System.Web.UI.Page { - + protected void Page_Load(object sender, EventArgs e) + { + mod_barcode1.eh_scannedListaPrelievo += new EventHandler(mod_barcode1_eh_scannedListaPrelievo); + mod_barcode1.eh_scannedParticolare += new EventHandler(mod_barcode1_eh_scannedParticolare); + mod_barcode1.eh_scannedUdc += new EventHandler(mod_barcode1_eh_scannedUdc); + mod_barcode1.eh_scannedUser += new EventHandler(mod_barcode1_eh_scannedUser); + mod_barcode1.eh_resetUser += new EventHandler(mod_barcode1_eh_resetUser); + } + + void mod_barcode1_eh_resetUser(object sender, EventArgs e) + { + memLayer.ML.setSessionVal("activeTask", "LogOff Operatore"); + Response.Redirect("Barcode.aspx"); + } + + void mod_barcode1_eh_scannedUser(object sender, EventArgs e) + { + memLayer.ML.setSessionVal("activeTask", "Selezionato Operatore"); + Response.Redirect("Home.aspx"); + } + + void mod_barcode1_eh_scannedUdc(object sender, EventArgs e) + { + memLayer.ML.setSessionVal("activeTask", string.Format("UDC: {0}", memLayer.ML.StringSessionObj("scannedValue"))); + Response.Redirect("UDC.aspx"); + } + + void mod_barcode1_eh_scannedParticolare(object sender, EventArgs e) + { + //throw new NotImplementedException(); + } + + void mod_barcode1_eh_scannedListaPrelievo(object sender, EventArgs e) + { + //throw new NotImplementedException(); + } } } diff --git a/GMW/GMW_Term/Barcode.aspx.designer.cs b/GMW/GMW_Term/Barcode.aspx.designer.cs index 000f3afb..178dda88 100644 --- a/GMW/GMW_Term/Barcode.aspx.designer.cs +++ b/GMW/GMW_Term/Barcode.aspx.designer.cs @@ -13,15 +13,6 @@ namespace GMW_Term { public partial class Barcode { - /// - /// mod_userBar1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::GMW_Term.WebUserControls.mod_userBar mod_userBar1; - /// /// mod_barcode1 control. /// diff --git a/GMW/GMW_Term/GMW_Term.csproj b/GMW/GMW_Term/GMW_Term.csproj index b5a13024..f8efd060 100644 --- a/GMW/GMW_Term/GMW_Term.csproj +++ b/GMW/GMW_Term/GMW_Term.csproj @@ -74,6 +74,20 @@ Default.aspx + + mod_taskUdc.ascx + ASPXCodeBehind + + + mod_taskUdc.ascx + + + UDC.aspx + ASPXCodeBehind + + + UDC.aspx + mod_barcode.ascx ASPXCodeBehind @@ -81,6 +95,13 @@ mod_barcode.ascx + + mod_currentTask.ascx + ASPXCodeBehind + + + mod_currentTask.ascx + mod_home.ascx ASPXCodeBehind @@ -174,7 +195,10 @@ + + + diff --git a/GMW/GMW_Term/Home.aspx b/GMW/GMW_Term/Home.aspx index 5d7fb399..54418d75 100644 --- a/GMW/GMW_Term/Home.aspx +++ b/GMW/GMW_Term/Home.aspx @@ -2,12 +2,12 @@ AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="GMW_Term.Home" %> <%@ Register src="WebUserControls/mod_home.ascx" tagname="mod_home" tagprefix="uc1" %> -<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc2" %> +<%--<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc2" %>--%> - + <%----%> diff --git a/GMW/GMW_Term/Home.aspx.designer.cs b/GMW/GMW_Term/Home.aspx.designer.cs index 6924e4af..f1aa63af 100644 --- a/GMW/GMW_Term/Home.aspx.designer.cs +++ b/GMW/GMW_Term/Home.aspx.designer.cs @@ -13,15 +13,6 @@ namespace GMW_Term { public partial class Home { - /// - /// mod_userBar1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::GMW_Term.WebUserControls.mod_userBar mod_userBar1; - /// /// mod_home1 control. /// diff --git a/GMW/GMW_Term/ListePrelievo.aspx b/GMW/GMW_Term/ListePrelievo.aspx index 18ffd5ff..531bb55f 100644 --- a/GMW/GMW_Term/ListePrelievo.aspx +++ b/GMW/GMW_Term/ListePrelievo.aspx @@ -1,11 +1,11 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/WebMasterPages/Compact.Master" AutoEventWireup="true" CodeBehind="ListePrelievo.aspx.cs" Inherits="GMW_Term.ListePrelievo" %> -<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc1" %> +<%--<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc1" %>--%> <%@ Register src="WebUserControls/mod_listePrelievo.ascx" tagname="mod_listePrelievo" tagprefix="uc2" %> - + <%----%> diff --git a/GMW/GMW_Term/ListePrelievo.aspx.designer.cs b/GMW/GMW_Term/ListePrelievo.aspx.designer.cs index 3f88f26b..c940384b 100644 --- a/GMW/GMW_Term/ListePrelievo.aspx.designer.cs +++ b/GMW/GMW_Term/ListePrelievo.aspx.designer.cs @@ -13,15 +13,6 @@ namespace GMW_Term { public partial class ListePrelievo { - /// - /// mod_userBar1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::GMW_Term.WebUserControls.mod_userBar mod_userBar1; - /// /// mod_listePrelievo1 control. /// diff --git a/GMW/GMW_Term/Login.aspx b/GMW/GMW_Term/Login.aspx index e0568291..1155d306 100644 --- a/GMW/GMW_Term/Login.aspx +++ b/GMW/GMW_Term/Login.aspx @@ -1,13 +1,11 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/WebMasterPages/Compact.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="GMW_Term.Login" %> -<%@ Register src="WebUserControls/mod_login.ascx" tagname="mod_login" tagprefix="uc1" %> - -<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc2" %> - +<%@ Register Src="WebUserControls/mod_login.ascx" TagName="mod_login" TagPrefix="uc1" %> +<%--<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc2" %>--%> - - + <%----%> + diff --git a/GMW/GMW_Term/Login.aspx.designer.cs b/GMW/GMW_Term/Login.aspx.designer.cs index 12c40285..f08448bf 100644 --- a/GMW/GMW_Term/Login.aspx.designer.cs +++ b/GMW/GMW_Term/Login.aspx.designer.cs @@ -13,15 +13,6 @@ namespace GMW_Term { public partial class Login { - /// - /// mod_userBar1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::GMW_Term.WebUserControls.mod_userBar mod_userBar1; - /// /// mod_login1 control. /// diff --git a/GMW/GMW_Term/Search.aspx b/GMW/GMW_Term/Search.aspx index 479241e6..55ebe842 100644 --- a/GMW/GMW_Term/Search.aspx +++ b/GMW/GMW_Term/Search.aspx @@ -1,12 +1,11 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/WebMasterPages/Compact.Master" AutoEventWireup="true" CodeBehind="Search.aspx.cs" Inherits="GMW_Term.Search" %> -<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc1" %> -<%@ Register src="WebUserControls/mod_search.ascx" tagname="mod_search" tagprefix="uc2" %> + +<%--<%@ Register src="WebUserControls/mod_userBar.ascx" tagname="mod_userBar" tagprefix="uc1" %>--%> +<%@ Register Src="WebUserControls/mod_search.ascx" TagName="mod_search" TagPrefix="uc2" %> - - + <%----%> - diff --git a/GMW/GMW_Term/Search.aspx.designer.cs b/GMW/GMW_Term/Search.aspx.designer.cs index 34008bff..b23c9f29 100644 --- a/GMW/GMW_Term/Search.aspx.designer.cs +++ b/GMW/GMW_Term/Search.aspx.designer.cs @@ -13,15 +13,6 @@ namespace GMW_Term { public partial class Search { - /// - /// mod_userBar1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::GMW_Term.WebUserControls.mod_userBar mod_userBar1; - /// /// mod_search1 control. /// diff --git a/GMW/GMW_Term/Style.css b/GMW/GMW_Term/Style.css index 64361e34..639c09dd 100644 --- a/GMW/GMW_Term/Style.css +++ b/GMW/GMW_Term/Style.css @@ -8,18 +8,31 @@ height: 280px; padding: 0px; border: 1px black solid; - background-position: center bottom; + background-position: center bottom; background-image: url('images/logo_sw.png'); background-repeat: no-repeat; } +#activeContent +{ + height: 240px; +} +#topBanner +{ + height: 20px; +} +#taskBanner +{ + height: 20px; +} + .quadro1, .quadro2 { float: left; width: 120px; height: 100px; text-align: center; - vertical-align:middle; + vertical-align: middle; } .quadro1 @@ -30,4 +43,20 @@ { } - +.userBanner +{ + padding-top: 2px; + padding-bottom: 2px; + background-color: #6969AC; + text-align: center; + font-weight: bold; + color: White; +} +.taskBanner +{ + padding-top: 2px; + padding-bottom: 2px; + background-color: #ABABFF; + text-align: center; + color: Black; +} diff --git a/GMW/GMW_Term/UDC.aspx b/GMW/GMW_Term/UDC.aspx new file mode 100644 index 00000000..134cc487 --- /dev/null +++ b/GMW/GMW_Term/UDC.aspx @@ -0,0 +1,8 @@ +<%@ Page Title="" Language="C#" MasterPageFile="~/WebMasterPages/Compact.Master" + AutoEventWireup="true" CodeBehind="UDC.aspx.cs" Inherits="GMW_Term.UDC" %> + + + + + WIP + diff --git a/GMW/GMW_Term/UDC.aspx.cs b/GMW/GMW_Term/UDC.aspx.cs new file mode 100644 index 00000000..a2e017b8 --- /dev/null +++ b/GMW/GMW_Term/UDC.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace GMW_Term +{ + public partial class UDC : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/GMW/GMW_Term/UDC.aspx.designer.cs b/GMW/GMW_Term/UDC.aspx.designer.cs new file mode 100644 index 00000000..098e9037 --- /dev/null +++ b/GMW/GMW_Term/UDC.aspx.designer.cs @@ -0,0 +1,16 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GMW_Term { + + + public partial class UDC { + } +} diff --git a/GMW/GMW_Term/WebMasterPages/Compact.Master b/GMW/GMW_Term/WebMasterPages/Compact.Master index cda2b4db..cc988320 100644 --- a/GMW/GMW_Term/WebMasterPages/Compact.Master +++ b/GMW/GMW_Term/WebMasterPages/Compact.Master @@ -1,6 +1,8 @@ <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Compact.master.cs" Inherits="GMW_Term.Compact" %> <%@ Register Src="../WebUserControls/mod_menuTop.ascx" TagName="mod_menuTop" TagPrefix="uc1" %> +<%@ Register Src="../WebUserControls/mod_currentTask.ascx" TagName="mod_currentTask" + TagPrefix="uc2" %> @@ -12,9 +14,16 @@
- - - +
+ +
+
+ + +
+
+ +
diff --git a/GMW/GMW_Term/WebMasterPages/Compact.Master.designer.cs b/GMW/GMW_Term/WebMasterPages/Compact.Master.designer.cs index 690b116b..4773bb2b 100644 --- a/GMW/GMW_Term/WebMasterPages/Compact.Master.designer.cs +++ b/GMW/GMW_Term/WebMasterPages/Compact.Master.designer.cs @@ -48,5 +48,14 @@ namespace GMW_Term { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder1; + + /// + /// mod_currentTask1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::GMW_Term.WebUserControls.mod_currentTask mod_currentTask1; } } diff --git a/GMW/GMW_Term/WebUserControls/mod_barcode.ascx b/GMW/GMW_Term/WebUserControls/mod_barcode.ascx index e9d6715d..faa029fc 100644 --- a/GMW/GMW_Term/WebUserControls/mod_barcode.ascx +++ b/GMW/GMW_Term/WebUserControls/mod_barcode.ascx @@ -3,20 +3,17 @@
-
-
-
- +
+ +
+
+
- +
-
- - + +
-
diff --git a/GMW/GMW_Term/WebUserControls/mod_barcode.ascx.cs b/GMW/GMW_Term/WebUserControls/mod_barcode.ascx.cs index 7e6ec688..acc0d378 100644 --- a/GMW/GMW_Term/WebUserControls/mod_barcode.ascx.cs +++ b/GMW/GMW_Term/WebUserControls/mod_barcode.ascx.cs @@ -13,6 +13,17 @@ namespace GMW_Term.WebUserControls { // variabile per verificare se è operatore bool _validUserInSession = false; + + #region area eventi + + public event EventHandler eh_scannedUser; + public event EventHandler eh_resetUser; + public event EventHandler eh_scannedUdc; + public event EventHandler eh_scannedListaPrelievo; + public event EventHandler eh_scannedParticolare; + + #endregion + /// /// metodi al caricamento della pagina /// @@ -28,8 +39,8 @@ namespace GMW_Term.WebUserControls verificaOperatoreInSessione(); if (_validUserInSession) { - btnLoginPage.Text = "Rifai Login"; - btnLoginPage.Visible = false; + btnLoginPage.Text = "LogOff"; + btnLoginPage.Visible = true; btnButtonsHome.Visible = true; lblData.Text = "Inserire Dati..."; } @@ -50,20 +61,21 @@ namespace GMW_Term.WebUserControls /// protected void txtInput_TextChanged(object sender, EventArgs e) { - string dataIn = txtInput.Text.Trim(); + // salvo in sessione la scansione attuale... + valoreScan = txtScansione; // verifica l'input immesso - tipoCodiceBarcode answ = TermClass.Ter.riconosciBarcode(dataIn); + tipoCodiceBarcode answ = TermClass.Ter.riconosciBarcode(txtScansione); verificaOperatoreInSessione(); if (!_validUserInSession) //controllo: se non c'è operatore in sessione { if (answ == tipoCodiceBarcode.Operatore) { - effettuaLoginOperatore(dataIn); + effettuaLoginOperatore(txtScansione); } else { - lblData.Text = string.Format("Codice non riconosciuto: {0}{1}Inserire Operatore!", txtInput.Text, Environment.NewLine); - txtInput.Text = ""; + lblData.Text = "Codice non valido, inserire Operatore!"; + txtScansione = ""; } } else @@ -71,26 +83,25 @@ namespace GMW_Term.WebUserControls switch (answ) { case tipoCodiceBarcode.ND: - lblData.Text = "Codice non riconosciuto: " + txtInput.Text; + lblData.Text = "Codice non riconosciuto: " + txtScansione; txtInput.Text = ""; break; case tipoCodiceBarcode.Operatore: - effettuaLoginOperatore(dataIn); + effettuaLoginOperatore(txtScansione); break; case tipoCodiceBarcode.ListaPrelievo: - lblData.Text = "Codice Lista Prelievo: " + txtInput.Text; + lblData.Text = "Codice Lista Prelievo: " + txtScansione; txtInput.Text = ""; break; case tipoCodiceBarcode.UDC: - lblData.Text = "Codice UDC: " + txtInput.Text; - txtInput.Text = ""; + verificaUdc(); break; case tipoCodiceBarcode.Particolare: - lblData.Text = "Codice Particolare: " + txtInput.Text; + lblData.Text = "Codice Particolare: " + txtScansione; txtInput.Text = ""; break; default: - lblData.Text = "Codice non riconosciuto: " + txtInput.Text; + lblData.Text = "Codice non riconosciuto: " + txtScansione; txtInput.Text = ""; break; } @@ -98,6 +109,22 @@ namespace GMW_Term.WebUserControls lblData.Font.Italic = false; } /// + /// verifica validità UDC + /// + private void verificaUdc() + { + lblData.Text = "Codice UDC: " + valoreScan; + txtScansione = ""; + // controllo l'UDC se sia valido.. + if (true) + { + if (eh_scannedUdc != null) + { + eh_scannedUdc(this, new EventArgs()); + } + } + } + /// /// effettua le chiamate per la login /// /// @@ -107,7 +134,10 @@ namespace GMW_Term.WebUserControls esitoLoginTerm esito = TermClass.Ter.doUserLogin(dataIn); if (esito == esitoLoginTerm.ok) { - Response.Redirect("Home.aspx"); + if (eh_scannedUser != null) + { + eh_scannedUser(this, new EventArgs()); + } } else { @@ -116,10 +146,20 @@ namespace GMW_Term.WebUserControls txtInput.Text = ""; } } - + /// + /// effettua logout... + /// + /// + /// protected void btnLoginPage_Click(object sender, EventArgs e) { - + user_std.UtSn.logOffUtente(); + verificaOperatoreInSessione(); + // evento reset + if (eh_resetUser != null) + { + eh_resetUser(this, new EventArgs()); + } } protected void btnButtonsHome_Click(object sender, EventArgs e) @@ -155,7 +195,33 @@ namespace GMW_Term.WebUserControls return _validUserInSession; } } - - + /// + /// testo contenuto nella textbox + /// + public string txtScansione + { + get + { + return txtInput.Text.Trim(); + } + set + { + txtInput.Text = value; + } + } + /// + /// valore della scansione barcode + /// + public string valoreScan + { + get + { + return memLayer.ML.StringSessionObj("scannedValue"); + } + set + { + memLayer.ML.setSessionVal("scannedValue", value, false); + } + } } } \ No newline at end of file diff --git a/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx b/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx new file mode 100644 index 00000000..9b7a9afc --- /dev/null +++ b/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx @@ -0,0 +1,4 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_currentTask.ascx.cs" Inherits="GMW_Term.WebUserControls.mod_currentTask" %> +
+ +
diff --git a/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.cs b/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.cs new file mode 100644 index 00000000..00cb6021 --- /dev/null +++ b/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using SteamWare; + +namespace GMW_Term.WebUserControls +{ + public partial class mod_currentTask : System.Web.UI.UserControl + { + protected void Page_Load(object sender, EventArgs e) + { + string task = memLayer.ML.StringSessionObj("activeTask"); + if (task == "") + { + task = "...wait..."; + } + lblTask.Text = task; + } + } +} \ No newline at end of file diff --git a/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.designer.cs b/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.designer.cs new file mode 100644 index 00000000..f37e7636 --- /dev/null +++ b/GMW/GMW_Term/WebUserControls/mod_currentTask.ascx.designer.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GMW_Term.WebUserControls { + + + public partial class mod_currentTask { + + /// + /// lblTask control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblTask; + } +} diff --git a/GMW/GMW_Term/WebUserControls/mod_login.ascx b/GMW/GMW_Term/WebUserControls/mod_login.ascx index 665f5564..ab87fa98 100644 --- a/GMW/GMW_Term/WebUserControls/mod_login.ascx +++ b/GMW/GMW_Term/WebUserControls/mod_login.ascx @@ -3,7 +3,7 @@
+ Width="200px" />
diff --git a/GMW/GMW_Term/WebUserControls/mod_menuTop.ascx.cs b/GMW/GMW_Term/WebUserControls/mod_menuTop.ascx.cs index d0a96e2a..935e92c0 100644 --- a/GMW/GMW_Term/WebUserControls/mod_menuTop.ascx.cs +++ b/GMW/GMW_Term/WebUserControls/mod_menuTop.ascx.cs @@ -12,7 +12,21 @@ namespace GMW_Term.WebUserControls { protected void Page_Load(object sender, EventArgs e) { - lblTitolo.Text = traduci(memLayer.ML.confReadString("titleApp")); + string operatore = ""; + try + { + operatore = user_std.UtSn.CognomeNome; + } + catch + { } + if (operatore != "") + { + lblTitolo.Text = string.Format("{0} - {1}", traduci(memLayer.ML.confReadString("titleApp")), operatore); + } + else + { + lblTitolo.Text = traduci(memLayer.ML.confReadString("titleApp")); + } } /// diff --git a/GMW/GMW_Term/WebUserControls/mod_search.ascx b/GMW/GMW_Term/WebUserControls/mod_search.ascx index 5c778831..5ee9b6a0 100644 --- a/GMW/GMW_Term/WebUserControls/mod_search.ascx +++ b/GMW/GMW_Term/WebUserControls/mod_search.ascx @@ -8,7 +8,7 @@
- + diff --git a/GMW/GMW_Term/WebUserControls/mod_userBar.ascx b/GMW/GMW_Term/WebUserControls/mod_userBar.ascx index 688c894c..abb29f85 100644 --- a/GMW/GMW_Term/WebUserControls/mod_userBar.ascx +++ b/GMW/GMW_Term/WebUserControls/mod_userBar.ascx @@ -1,7 +1,6 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_userBar.ascx.cs" Inherits="GMW_Term.WebUserControls.mod_userBar" %> - -
- - -
+
+ + +
diff --git a/GMW/GMW_Term/WebUserControls/mod_userBar.ascx.cs b/GMW/GMW_Term/WebUserControls/mod_userBar.ascx.cs index b22c6ad9..e9ea6572 100644 --- a/GMW/GMW_Term/WebUserControls/mod_userBar.ascx.cs +++ b/GMW/GMW_Term/WebUserControls/mod_userBar.ascx.cs @@ -19,8 +19,7 @@ namespace GMW_Term.WebUserControls try { - nomeUtente = String.Format("{0}", user_std.UtSn.CognomeNome); - + nomeUtente = String.Format("{0}", user_std.UtSn.CognomeNome); } catch diff --git a/GMW/GMW_Term/bin/GMW_Term.dll b/GMW/GMW_Term/bin/GMW_Term.dll index 1b5b252ab9f2b98583ba0505f6e3adb37e00933f..04823a613c3ed08d4ca5911abfcd3b9d4c1bceda 100644 GIT binary patch literal 14848 zcmeHO4RBo5bw2OyYNcICYfJJkHezjKBTIO##Wq+FjP++*Ajyg(TlsM!o_3$)7w_&{ z-g_%qxPa^lX&InNnxBTYAqnIUl1xaake?|5@-r==Oot|h%tATj;U zxo>yhN+L}0J~eqA>1PUnTkiKKa@&@Hc}6u;Uke zDNcVEeSFgww86(WjUTt%M8UCV93z)V8~MELC8o@TQ_Lr_Xr4 zNI%h_7NVa$H8EJ~?P=0C)oXP`mw*yc)O{oPOyIs2H+z@BhpzlaOZ?|g`Y>+L`3lkg zn~7G+zsjeNDiM0-Fwq3JuO%AcKrFr%h#EjU1i6iidA|uy5Mc!6s}A^~GDej2%#$AQ zzD@w}WURj5z~oB6tEA&PX<*{pwP^4}?ZzFr_9Gxk$IRLgWM63kH{05aJ8ItCI zOmJLrv2Qxn(1$ySKDmWR6YB2{LY+DtD5>eEU?%JU6l_dGjPz4*E9^7{2#9&u*%TmP zfMMsVGNFB#^foBO986QeZe}wT+I7p&Zdr!**$S;yZ)<^(c9=nPRi(MQ(hLZcs2EdA zXNZtc9GfN#1)Q+G21?F9v-P!TtvRQ~B0G9W4{&dQv9R8@js?F7!2ru%4`OL}KQ6mS z9a~`@_QLjg5Ljz(5HX=Rudo<0F-FubK4~)Nh%5WVeZ@K`(!P!Kko4R>tlxM(#CMO5R%K9k`DID<~>_}9bR$ONQmP

kQYR&X#EbVX+vmBv(p0qur;Vy--v{aIWDVV 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 delta 4814 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 diff --git a/GMW/GMW_Term/bin/GMW_data.dll b/GMW/GMW_Term/bin/GMW_data.dll index 2b018d4e883a80b859e211a9c34f728504e2b558..7aab672ffde1e6858154792eb221d3d445ab33fa 100644 GIT binary patch delta 93 zcmZpeV9_waVnPS=yW8Q7-L2h>t=&wm-OR1sEUn$Ft=(*`-R!O19If4)t=(L$-Q2C+ wJX^bY&+Zhc&AxunXv1u;c^ZHGBOS7Jw`c6)o#6^HWhyhDCL_mIUB1ig054=E+5i9m delta 93 zcmZpeV9_waVnPSA?7gtY?$&O`)^4WOZsyi*mey|8)^4`eZuZu0j@E9@)^4uWZtm7@ wo~_-yXLkx*6aTQ9)AF*@B-8!8wbK(nY|q%mJHr)Z%2Z}PO-9zOx_p<}0pYVGhX4Qo diff --git a/GMW/GMW_Term/bin/SteamWare.XML b/GMW/GMW_Term/bin/SteamWare.XML index 6809ec2a..64eda3e0 100644 --- a/GMW/GMW_Term/bin/SteamWare.XML +++ b/GMW/GMW_Term/bin/SteamWare.XML @@ -4,5 +4,3161 @@ SteamWare + +

+ 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 + + + + + + + LogOff utente con reset dati + + + + + + + + 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_Term/bin/SteamWare.dll b/GMW/GMW_Term/bin/SteamWare.dll index 1458a42f6a906389182420279a1f2002da282b89..14010e5124a84697a601572baa25674755903e7d 100644 GIT binary patch delta 14592 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 delta 14509 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 JS?!R3{|CnxS#kgX diff --git a/GMW/GMW_Term/mod_taskUdc.ascx b/GMW/GMW_Term/mod_taskUdc.ascx new file mode 100644 index 00000000..184f92c0 --- /dev/null +++ b/GMW/GMW_Term/mod_taskUdc.ascx @@ -0,0 +1 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_taskUdc.ascx.cs" Inherits="GMW_Term.mod_taskUdc" %> diff --git a/GMW/GMW_Term/mod_taskUdc.ascx.cs b/GMW/GMW_Term/mod_taskUdc.ascx.cs new file mode 100644 index 00000000..599e0b7a --- /dev/null +++ b/GMW/GMW_Term/mod_taskUdc.ascx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace GMW_Term +{ + public partial class mod_taskUdc : System.Web.UI.UserControl + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/GMW/GMW_Term/mod_taskUdc.ascx.designer.cs b/GMW/GMW_Term/mod_taskUdc.ascx.designer.cs new file mode 100644 index 00000000..0df84f02 --- /dev/null +++ b/GMW/GMW_Term/mod_taskUdc.ascx.designer.cs @@ -0,0 +1,18 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GMW_Term +{ + + + public partial class mod_taskUdc + { + } +} diff --git a/GMW/GMW_Term/obj/Debug/GMW_Term.dll b/GMW/GMW_Term/obj/Debug/GMW_Term.dll index 1b5b252ab9f2b98583ba0505f6e3adb37e00933f..04823a613c3ed08d4ca5911abfcd3b9d4c1bceda 100644 GIT binary patch literal 14848 zcmeHO4RBo5bw2OyYNcICYfJJkHezjKBTIO##Wq+FjP++*Ajyg(TlsM!o_3$)7w_&{ z-g_%qxPa^lX&InNnxBTYAqnIUl1xaake?|5@-r==Oot|h%tATj;U zxo>yhN+L}0J~eqA>1PUnTkiKKa@&@Hc}6u;Uke zDNcVEeSFgww86(WjUTt%M8UCV93z)V8~MELC8o@TQ_Lr_Xr4 zNI%h_7NVa$H8EJ~?P=0C)oXP`mw*yc)O{oPOyIs2H+z@BhpzlaOZ?|g`Y>+L`3lkg zn~7G+zsjeNDiM0-Fwq3JuO%AcKrFr%h#EjU1i6iidA|uy5Mc!6s}A^~GDej2%#$AQ zzD@w}WURj5z~oB6tEA&PX<*{pwP^4}?ZzFr_9Gxk$IRLgWM63kH{05aJ8ItCI zOmJLrv2Qxn(1$ySKDmWR6YB2{LY+DtD5>eEU?%JU6l_dGjPz4*E9^7{2#9&u*%TmP zfMMsVGNFB#^foBO986QeZe}wT+I7p&Zdr!**$S;yZ)<^(c9=nPRi(MQ(hLZcs2EdA zXNZtc9GfN#1)Q+G21?F9v-P!TtvRQ~B0G9W4{&dQv9R8@js?F7!2ru%4`OL}KQ6mS z9a~`@_QLjg5Ljz(5HX=Rudo<0F-FubK4~)Nh%5WVeZ@K`(!P!Kko4R>tlxM(#CMO5R%K9k`DID<~>_}9bR$ONQmP

kQYR&X#EbVX+vmBv(p0qur;Vy--v{aIWDVV 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 delta 4814 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 diff --git a/GMW/GMW_Term/obj/Debug/ResolveAssemblyReference.cache b/GMW/GMW_Term/obj/Debug/ResolveAssemblyReference.cache index 8073ba77db97e5519142eca7e341ca16d6f299b6..30e269f0d2d9533dd6a501f885365131661b3948 100644 GIT binary patch delta 39 ucmey~!u-93c|!*yquAz7#tm$2bB%1i3o%Z%=lH~yKJht_x!Ii4VJ84F*bf2# delta 39 vcmey~!u-93c|!*yqrm1)#tm$2pJWW)l`u@U=lI0-T%>zlHN$3ePKTWUIn@tM diff --git a/GMW/GMW_data/bin/Debug/GMW_data.dll b/GMW/GMW_data/bin/Debug/GMW_data.dll index 2b018d4e883a80b859e211a9c34f728504e2b558..7aab672ffde1e6858154792eb221d3d445ab33fa 100644 GIT binary patch delta 93 zcmZpeV9_waVnPS=yW8Q7-L2h>t=&wm-OR1sEUn$Ft=(*`-R!O19If4)t=(L$-Q2C+ wJX^bY&+Zhc&AxunXv1u;c^ZHGBOS7Jw`c6)o#6^HWhyhDCL_mIUB1ig054=E+5i9m delta 93 zcmZpeV9_waVnPSA?7gtY?$&O`)^4WOZsyi*mey|8)^4`eZuZu0j@E9@)^4uWZtm7@ wo~_-yXLkx*6aTQ9)AF*@B-8!8wbK(nY|q%mJHr)Z%2Z}PO-9zOx_p<}0pYVGhX4Qo diff --git a/GMW/GMW_data/bin/Debug/SteamWare.dll b/GMW/GMW_data/bin/Debug/SteamWare.dll index 1458a42f6a906389182420279a1f2002da282b89..14010e5124a84697a601572baa25674755903e7d 100644 GIT binary patch delta 14592 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 delta 14509 zcmc(G33yahmjAi;y}H?#sv-r!grrzP!k!j{hzem*5D_8*jUq`UK-eUyB}-*{sVuZn zbc{h>5S2vZf;uXq25bfC4oDnSpcxdjMQlWoAmGACH|qb~^C}^1-ORv$hVSF|&UVi^ z_uRE!Rm#sqm7j@v_&%j|_l(*HV)>>OwJ*#F&s|}HNr3+vOaN-F-5UC?2||(IQ)hyh zIy)awH;eV!CLK)S)ziqyahc0Kqwxb@!=pVJoGvVV(2n`qx!qVRP#KXuFZ6uRm>jp0kYg zPeuPNY}m`vtRGx6M1?~bIuXDOQNd-OV-TLxKmjGKG2)WcQXLW}L&I(*!OgV8nCTRPWg#`^vXxG(ENu0(S>R#y^UH5k4O>9-&KN9<} z)$8p^tM`PR?Xi+mUD^6ebL%hcU3-WJ16Wlst2rh5ia34;t8D%{j%Tmz$1r<Mt!LQdF-sC-}8w%?X4%f7|bA|7OTz})S*fa^XrzD$Oe?9bqIqPO!7CQb45}ia_pE~NI;?sxzNC{{t(npCK-Fa zos#n$JKqp(q)#h8LDr2Y7U@%4cpNLzbB)KtEqqK54PA#ofK|0wP5oods@e2dDDXg< zYKfKli55PTP; zn)j?o2k)UZqEzIRp);&U zXyCvijAF>vpo}N3A-$yA*9RKi3A|6DTw^ZFQOFhNSViNgC*ouXPJ9dvq@i4L?S^Mv zCz7Ec%g6QQAMm89v}y-p)9$}=Bbzb6IR&yAj~vp@${BOkKPUgFrWe?*z1b@L;SaejTAE)psJ{6_Tr~B~BR=B8S>Q9&$Hb=Qf}Q+(9!xtH zV3D8I-GAYEDRYAu^eO|`iO;HPfL_x)u7yjp-Ev;v`ELvwj-qV(H2ATILnO+2-70^B){90B(eK1aBX@Brb@gw|YXGl+10?k%|j ziU{u`Nh9H|+)cUv1z+Xjw1zIuAJJwg;T_Irg9SX`j0hD_PuQyABOH=kHkW|8E~zeb zNy)>m&yju$CE@Tn(&2ELBwgInraNJrJ3K@{647Jb!`%X$L{|{jAqK5LP zu+Wo+Snt^wY=KujQmf`^E%*q{YeA<;c`{gXo(y(9;Uq*0Ss1OUh zgJ^@JdAsv$Ao6$TSzu^>*L(pJ^Ec&MAU9uXzsY~lCSY;FjDm1DP#}GFDU@AGEQ|=X z!LUN99a}hDbKBrHWNhFneA8xunnKyQ0cjh&M!1=9H{mHl;e8Vur+C9LmAPJ-Pyt~B zqJVe3a)A04$VOtR!54DBx?<+90I(O`B$e>+ul|WyMmlqF9#qNkj`olt|aT z5W`_{iOm%bPY~`P{G9Mx!lY8E9a}1crI$AK3x{gLM@aHG;VXz1__9>`JcEdXUWTnS z7>*AdX$%<-)5>HL>&s*k-xBuIBt2655eqv*OUK5!gpUxuK)8``uQn?6`s^uGl zyF+C8_Y=B9SHfh%8xRFdEtftWh{2#OA=Br}Ysp_kgr&d-Yhj7x#oo%F^cAef*YyTbuz5cY)i3)LoRi_ixi8{$6JskJLWr45FX@gYJ;OG8C+;%_rA#o=R4nCf9GfNe@|4HrO0CHnQ zi=R7!+*t9W!3BPg?Z%0yy+#B`w<9;e;2=DGaKL!cq;;^Bk++EMA4}5~7Ly(ew~7(O zErY@71Ca9&w~gI^4JU~&3|-*(^l5Ce==O<`%v7|TEN=62bCA1TJnrY5=yQtL>E|lb zZ)Q`(fPI?LupZf|;^BP;_cC&6;%7fspT3aYA!hG4bgihnQ@q;2Eo9S$`l+GYhq{?! zfuB2?J|g7zV!5CDd-{QpyTq%0E;wT$n=Pt7X@rQ@@aIR)Q8e zkQIo)gGQnr)Op1SKUeD5gxv4_+;Yd^up&|3!EK5x5-&+k!`|0Bwni3<9e!oKV+V3= ze(pKPG*%)8d})Mu%`pHS0=vjbGsdTA~litH>2I>SebG$!Oxv= z?2q(`w~5o10b~vis1%m_vq}-kFt=e-O+4+#uxc7e97z zlh}iz{42w9M5Y~T#RDB&MA#!@rJoy*x)tJ8;#O)fEA#8fM+F>~4OhZ~%MZ4gWRT;I@GXb@i#XUviY@f~qh zG}sN|jA0q5?aORK(=OkVo4`YuTZ4%Ab6R2>G>Q>^?*2qOa^nmRj%UWgQ{uj(M)*_2 zjcYT!u&jBgo9*YqvrJ)636Gz<26a!1<$f+vL*>(=kysSIO;`{Xd`YJyqMLWH;K^ijAS-s#UMAp&%Kz{C7?;%)}d3yGh#`HPU~rYR&4K3 zCYhfXy^kAi{+yL(dO?iwbCaz@%rA=Ber`urQph^-sGr-Db-now@v5KuIx7L1#Wp|p zYnB~0ioJd=a;_cT5{La<@40pj{wPlQ**#eW>f0jpgc1HGYed*P;xpom%4`j0v7X6!5|YMz5hn z1tYl)NOLHdr^nx;#AsWI+k>dU0kZlA5qm}5IoXN+2h#XHXTH>)r4ouYgC7q$z#^Bm7s*u39S%L;kM?yGX2*_W9mkkc;=sSTUW8 z|A1~^qzs!;iDum7SV-h*c)SWDW|-4zMhe(^c;H+&A}^o$ZGYI_b9_| zymC+e{&vULj0_?OuiUBZ@94RTE&B;9oe6d$3R*D%v|<7wARF*TAA_rhK?32G2gRD~ zN>?V|boriAFbf98qBAfhTkau=+;|S^a#4%idzI1pkb4x1G$SVCE=6c^B5=5Yd|nCN zIiIoQ&A`b-Pba*Ga6TdjFVPdU1lbumZ#hVXLJHMChtHRv+ifF&G3PH8tcHR;MxI|n zRACdMiDC)Zku4|q=s0N=0MaTDq*V}E1(Q_>?9ex7DoOv+C?HE2taZ-m@=LN0V{$l# z$iSG>5;;h@LUPqV%g>jeR}rJmmnz0@6vnbZI_-t1!nKGd3L~hq0WcONfp8~c5XiCw z!`uaORgBQbAPko-LO{9*B^P1jBAi@Akc&uiVI~*&`UUN+FjrqUS4o}tKWvP_j48t4 zwZ;MqO(F2$B`u_Io3>U`#$doAcG&;2hllK{CXfpJ zHUp8tN26q!KSfkPYE{yj{MvJ}z(eZNAqS#2{3cxw$WdbNmW<)3J%E%bT>mUbNDQgUb;#DK}9e1nfqd(bmF2$`z8Ue))w3x^QltFHzwu@_DJOjzpuH z(;QO3m;f?G6P#HjH=EJg5#$0$A4vKjN+}riGSzo+7vvyq+UKG4(cT@yMrtpNaIp!s zls1fz#nSVew7*(4WH`vxgWtl_lrc8jOZ6v)?2Uv5BCXPBncya*1x!P1@63FpgCGwv z7^)CMpdOJy6YXF!yaH9@^g(XrcX|)EGVVs{I*j@n4$^f5xsD{)W^!$zI$1%w?n17k z$h8gX^)+rKRg*44$we5s2qza2n8}5OTv*9P7jhBh&+fuGaH&c>kFhwsg=p-= zxGU>Fl`7_BsZjk2xlwbF62&jsPR({uGhevW?$8@O$}nv=iS~8EfwQIWuSn8HcI4@SB@mElB>M^qpUQH9w{ zEOJ^eKt@0wVgQscksnM4X%8XCVI?AiCp+Oe1IBvroSWkX+#B-du6XO@Mk+Fup-Ui8p1@vYY9gZT4_iPyx3<3 zx}yJ2-;BvruJFZ}e7W_%{5}mMp8ceu{r~@fa*(jhfT zmnV_C65WUC)%)dKS}(`u^3R=lxNUIAL&Wn_|FlF&(xk{lA^}yjtGslVG?H?KnO zwlRbAZ7z0WxYXfi_^GE@YxK%erRx+a!mlt$bgEN$Lvs23^Pj8wky0gg#6LevjjPvs z42cIZq5|6}iTCf7gEUm@{C$Q&8)^K7T6~7c;4H29uX2Y;F0Vu!jD1=3la>a`2n^&k zkimBybo&*`kozx*8XcxTlac&n!oj%98?^n_AabZfRQw_Txnwn3s<4*YUf2Oc(u~^cIcz4U?~$n# zoh$i>Bp;L3$odPCe7#i8pBTNRT(M}UNNv1LK1(zBg-lI3GV3rz`BNLY3~fjY=z)kY z`Vlz{K~zBYSZ$Z%gyL`=*%+P;TKZ&u8-pIzn~cr|JNG!8KmqR1y*_2VHp`i2UIh+k z8>|91Vi2!#&M=$#;gH$pX#TX*4$=JIow11P5rg%5ssy2vc;%guKFiPNR7 zf+NlcPP?+iZ z*lcEZyQZ;Zp6iN*6imVn$z&SDt6hDRWO&9EX-VblTm!()cDQUv&veCE()i!HNo|Nb z$ubKigDoQsSN6}r4dr4?5)VupAUf$?_&Qc4{x?i)@@E6^?EUVy6lsmZevkEpN9mHGR zAESI1(yL$};g^KRNL%In0i&2a|IjRr+~UFCCKyGAWRJMj#liT7PO(fO99Re=uPxsqOT`<0?`Hi3nHTIP*D(t_+Y^_W`{Ke zIf(0s-cIxn1u>{SU7(MyR%~P6%g;tGyileTU$`{NfeFOILc|i3&nT>ps)c!l%PFzi zsC_t)dQ>YWwl=B}yYLFqGxb%~_-aIE(5SQ(?u=Ti%yjLIIs)Cie?=F&ZBzL^=;LjJ zlOU(!KCpOdqfWwj@1dv^SloTQQVWy4%P~x~>nP$(uSB_iPGZlGN3~)qIcyhVwCy0G zoa7&SCCXYSgREvUe5GN4Wa@J={NNqWld0#)P=FOlrivtkELAedM3bq6$skLZ48M8h zdaxE{t8)DW^I16B3v5S}Aw_P)qaL?St`p6c3?qu3wWh+TqH2^(E*gw$Np>I^es9xX zU#3JR&vdw}8&eO5yl*>=rPyN&VrzOb+lVMBoXr2mtioZnqAkjY+hjdE?u0Qby9Kc~Ehq_H< z*Y&@~l)`R7I)%+5l!4PIe41KPVn=#8;l`5x>NZQA>H4MHLe*4iigqHMZkdSN7cK$T zwKOE!t6p1b2d_G%)Dk_B<(EcB*P@@e=o+-VE;@y6LYow}6ET$?wqUb$s2-0Zb6H4q zGW60X-KX@@#+KDZ?@}k1)uWHT{i94tJge-9=p=q`SuFZ?mGx1QXuC~e6=jFI4S*G8 z)7SuLEISxIl<1*Ex2lb0xO>8jWq5DFq8*Dqh{5b|1KHd_HkbuUQdukd@v0w}W#cCO z!DSJO64dh1aRV|v_hU2wA$H)z5dyL%mK8QJ~4%T)feXaIM%xNkYGs&%q znX>f3H8{wVT>IlvOvc_M6{)7fA=jH7EVle`+(Op3{CHd%N`8uSurcLl;v7iF;s!ah z{AiTJlwF=}O)-^~2gEx~HRU%muj%#ju=t6lx67^Z4kpu@Xp$IB`{OFuQZA2{_seU| z$?(_m;qeRER~Z<`ZmR{LJuvd9qIcpK8Qb|55FHbK)IF4B53x5sE!CrG2zCI z`}WX^8haz3QBiL{f@OIUwT)$MunzZIJEWM5om}qNYfylxMLqaKNiySLb9 z!z9-y_PIDtZAi;=PadgCPbLnBMD~&xL$^y6*sQ;U&#dZ8qD4qp*(|RYv^h(VZic4~5Z@DnP3$^p~%4y6C ziz;y;b7!SX^)k8T`Dn#>aZch|!7IRyNH1*fpToTDp~~VuUbcu(N36xI^C3ie#Yn{t z;AySAQn@G6scfh`h!=-HRj$+eOr)Mo6#KE46U8w?R)xz}^r&j-lO}pseSkQms*jQ; zR4+7NwJ5n*=zP*oc&6pJc<=;K6hwNXxSs483aitnqM!+hl5CjzPq zRHx`ttt2cI520m^m|q`rd>R95Y`+6^_}#=qehm0kr0vh?q5<&`vNluU@XS z-k@b?;2*Og77E8 z-^hMgmh>6bPvQ+(QDFe%5d-0w=D)QnK6CP%fbj~0#{zCqIIJRE9WW6kk0Wwe6EF$s z21E{x0h5t_N`LfI{C#yp^YqV@+gS6OzbX;w&40W>El6k{mZh#a8u@la<=mfl9GzGd z_3-gW5A40M`OxjAroIF5&j)V<{KxS>{y__zz&{i`k!ONCrj47nC+5UMf9Y92uKpim z%HNEh_dV0!$TuwxulN7ipltT?3Vl$4sXK32q2F3yYSH6MOs_VF7n=UA@OOtcn@dc` JS?!R3{|CnxS#kgX diff --git a/GMW/GMW_data/bin/Debug/SteamWare.xml b/GMW/GMW_data/bin/Debug/SteamWare.xml index 6809ec2a..64eda3e0 100644 --- a/GMW/GMW_data/bin/Debug/SteamWare.xml +++ b/GMW/GMW_data/bin/Debug/SteamWare.xml @@ -4,5 +4,3161 @@ SteamWare + +

+ 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 + + + + + + + LogOff utente con reset dati + + + + + + + + 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 2b018d4e883a80b859e211a9c34f728504e2b558..7aab672ffde1e6858154792eb221d3d445ab33fa 100644 GIT binary patch delta 93 zcmZpeV9_waVnPS=yW8Q7-L2h>t=&wm-OR1sEUn$Ft=(*`-R!O19If4)t=(L$-Q2C+ wJX^bY&+Zhc&AxunXv1u;c^ZHGBOS7Jw`c6)o#6^HWhyhDCL_mIUB1ig054=E+5i9m delta 93 zcmZpeV9_waVnPSA?7gtY?$&O`)^4WOZsyi*mey|8)^4`eZuZu0j@E9@)^4uWZtm7@ wo~_-yXLkx*6aTQ9)AF*@B-8!8wbK(nY|q%mJHr)Z%2Z}PO-9zOx_p<}0pYVGhX4Qo diff --git a/GMW/GMW_data/obj/Debug/Refactor/GMW_data.dll b/GMW/GMW_data/obj/Debug/Refactor/GMW_data.dll index 30eda3d8cfc582492db84b3a2e84a8f530829f0b..83d07f44821eb24699e75ecec2ba49013879e5c5 100644 GIT binary patch delta 47 zcmZqpz|-)7XF>;4+JnZf)-J}@E~c$r%uK8T&B4L(fuCP{?XkCW&~(!_-9CqvImHM7 D+8q)Y delta 47 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 fLEEV4>eUlKmyf9UR^EJQ&()}C*Aca2xpw literal 27478 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