using SteamWare; using SteamWare.Logger; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace MP_MAG.WebUserControls { public partial class cmp_menuTop : BaseUserControl { #region Protected Properties /// /// Elenco pagine "safe" da web.config /// protected string safePages { get { return memLayer.ML.confReadString("_safePages"); } } /// /// Valore ricerca attivo /// protected string searchVal { get { return txtSearch.Text.Trim(); } set { txtSearch.Text = value.Trim(); } } #endregion Protected Properties #region Public Properties /// /// imposta visibilità search globale /// public bool showSearch { get { return divSearch.Visible; } set { divSearch.Visible = value; } } #endregion Public Properties #region Private Methods /// /// effettua un update completo dei valori in sessione /// private void doDataUpdate(bool doFullReset) { if (doFullReset) { // aggiorno vocabolario DataWrap.DW.resetVocabolario(); // reset dati in cache x DbConfig... memLayer.ML.resetAppConf(); // svuoto session e cache per rileggere i dati da Db Session.RemoveAll(); memLayer.ML.setSessionVal("nextPage", user_std.pagCorrente); Response.Redirect("login"); } else { resetProdData(); Response.Redirect("menu"); } } private void doSearch() { // se searchVal !="" if (!string.IsNullOrEmpty(searchVal)) { memLayer.ML.setSessionVal("valoreSearch", searchVal); } else { memLayer.ML.emptySessionVal("valoreSearch"); } // se qualcuno ascolta sollevo evento nuovo valore... raiseEvent(); } /// /// aggiornamento del menù /// private void updateTreeMenu() { try { if (string.IsNullOrEmpty(user_std.UtSn.mappaSito)) { if (safePages.IndexOf(Request.Url.Segments.LastOrDefault(), StringComparison.OrdinalIgnoreCase) < 0) { Response.Redirect("login", true); } string DefaultMenuPath = Server.MapPath("~/Resources/DefaultMenu.xml"); Logging.Instance.Info($"Manca menu utente --> leggo default da {DefaultMenuPath}"); XmlMenu.Data = File.ReadAllText(DefaultMenuPath); } else { XmlMenu.Data = devicesAuthProxy.stObj.mappaSito; } } catch (Exception exc) { Logging.Instance.Info($"Eccezione in updateTreeMenu {Environment.NewLine}{exc}"); if (safePages.IndexOf(Request.Url.Segments.LastOrDefault(), StringComparison.OrdinalIgnoreCase) < 0) { Response.Redirect("login", false); } XmlMenu.Data = ""; } XmlMenu.XPath = "mainMenu/menu"; XmlMenu.DataBind(); } #endregion Private Methods #region Protected Methods /// /// click su pagina corrente, fa update! /// /// /// protected void lbnUpdate_Click(object sender, EventArgs e) { doDataUpdate(true); } protected void lbtSearch_Click(object sender, EventArgs e) { doSearch(); } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { lblTitle.Text = titolo; searchVal = ""; doSearch(); updateTreeMenu(); } } protected void txtSearch_TextChanged(object sender, EventArgs e) { doSearch(); } #endregion Protected Methods } }