/// <summary>
        /// 	Prende un oggetto del tipo PagineComuni da una colonna di chiave univoca
        /// </summary>
        public static PagineSito GetItem(string nome)
        {
            SiteConfigurationPagineSito pagina = SiteManager.SiteConfiguration.PagineSito.Where(p => p.Nome.ToLower() == nome.ToString().ToLower()).FirstOrDefault();
            if (pagina == null) return null;
            var pagineSito = new PagineSito
            {
                Nome = pagina.Nome,
                AreaUtente = pagina.AreaUtente,
                Contenuto = pagina.Contenuto,
            };

            return pagineSito;
        }
        /// <summary>
        /// 	Elimina un oggetto del tipo PagineSistema
        /// </summary>
        public static bool Delete(out string avviso, PagineSito pagineSito)
        {
            avviso = string.Empty;

            if (pagineSito == null) return false;

            PagineSito sistema = pagineSito;
            SiteConfigurationPagineSito pagina = SiteManager.SiteConfiguration.PagineSito.Where(s => s.Nome == sistema.Nome).FirstOrDefault();
            if (pagina == null) return false;

            SiteManager.SiteConfiguration.PagineSito = SiteManager.SiteConfiguration.PagineSito.Except(SiteManager.SiteConfiguration.PagineSito.Where(s => s.Nome == sistema.Nome)).ToArray();
            SiteManager.SaveXml();

            return true;
        }
        /// <summary>
        /// 	Salva o aggiorna un oggetto del tipo PagineSistema da una colonna di chiave univoca
        /// </summary>
        public static bool Save(out string avviso, ref PagineSito pagineSito)
        {
            avviso = string.Empty;

            if (pagineSito == null) return false;

            if (!pagineSito.Validate())
            {
                avviso = pagineSito.BrokenRules.ToString();
                return false;
            }

            //Controllo che il nome non sia uguale al nome di una pagina di sistema
            bool invalidName = false;
            foreach (var name in Enum.GetNames(typeof(PagineSistema.PagineSistemaEnum)))
                if (name.ToLower() == pagineSito.Nome.ToLower()) invalidName = true;

            if (invalidName)
            {
                avviso = "- Il nome specificato è utilizzato da una pagina di sistema";
                return false;
            }

            PagineSito sistema = pagineSito;
            SiteConfigurationPagineSito pagina = SiteManager.SiteConfiguration.PagineSito.Where(s => s.Nome.ToLower() == sistema.Nome.ToLower()).FirstOrDefault();

            bool inserimento = false;
            if (pagina == null)
            {
                pagina = new SiteConfigurationPagineSito();
                inserimento = true;
            }

            pagina.Nome = pagineSito.Nome;
            pagina.Contenuto = pagineSito.Contenuto;
            pagina.AreaUtente = pagineSito.AreaUtente;

            if (inserimento)
            {
                var arrayList = new ArrayList(SiteManager.SiteConfiguration.PagineSito);
                arrayList.Add(pagina);
                SiteManager.SiteConfiguration.PagineSito = (SiteConfigurationPagineSito[])arrayList.ToArray(typeof(SiteConfigurationPagineSito));
            }

            SiteManager.SaveXml();

            return true;
        }
        protected void ButtonSalvaClick(object sender, EventArgs e)
        {
            if (__TreeView_PagineSistema.SelectedNode != null)
            {
                var paginaSistema = PagineSistema.GetItem(__TreeView_PagineSistema.SelectedNode.Text);
                if (paginaSistema == null) return;

                paginaSistema.Contenuto = __TextBox_Contenuto.Text;

                if (!PagineSistema.Save(out Avviso, ref paginaSistema)) MessageBox(Avviso);
                else
                {
                    MessageBoxOk();
                    LinkPagina = "<a target=\"_blank\" href=\"" + SiteManager.WebPath + "/" + paginaSistema.Nome.ToLower() + "\">" + SiteManager.WebPath + "/" + paginaSistema.Nome.ToLower() + "</a>";
                    FancyLink = "/amministratore/popup/sito/pagine/" + paginaSistema.Nome + ".htm";
                }

                return;
            }

            if (__TreeView_PagineSito.SelectedNode != null)
            {
                var paginaSito = PagineSito.GetItem(__TreeView_PagineSito.SelectedValue);
                if (paginaSito == null) return;

                paginaSito.Nome = HttpUtility.HtmlEncode(__TextBox_Nome.Text);
                paginaSito.Contenuto = __TextBox_Contenuto.Text;
                paginaSito.AreaUtente = __CheckBox_Logged.Checked;

                if (!PagineSito.Save(out Avviso, ref paginaSito)) MessageBox(Avviso);
                else
                {
                    MessageBoxOk();
                    LoadData();
                    LinkPagina = "<a target=\"_blank\" href=\"" + SiteManager.WebPath + "/" + paginaSito.Nome.ToLower() + "\">" + SiteManager.WebPath + "/" + paginaSito.Nome.ToLower() + "</a>";
                    FancyLink = "/amministratore/popup/sito/pagine/paginesito.htm";
                }

                return;
            }

            //Se non è selezionato niente aggiungo una pagina sito
            var pSito = new PagineSito();

            pSito.Nome = HttpUtility.HtmlEncode(__TextBox_Nome.Text);
            pSito.Contenuto = __TextBox_Contenuto.Text;
            pSito.AreaUtente = __CheckBox_Logged.Checked;

            if (!PagineSito.Save(out Avviso, ref pSito)) MessageBox(Avviso);
            else MessageBoxOk();

            LoadData();
        }