public void UpdateView(litePerson person = null, ModuleGlossaryNew module = null)
        {
            var litePerson = CurrentManager.GetLitePerson(UserContext.CurrentUserID);

            if (UserContext.isAnonymous || litePerson == null)
            {
                View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission);
                View.DisplaySessionTimeout();
                return;
            }
            if (person == null)
            {
                person = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
            }
            if (module == null)
            {
                module = Service.GetPermissions(View.IdCommunity, person);
            }

            // Creo dizionario contentente idLingua - Code es 1-IT 2-EN 3-DE ...
            LanguageDictionaryType            = Service.GetLanguageDictionaryCodes();
            LanguageDictionaryTypeDescription = Service.GetLanguageDictionaryDescriptions();

            // Carico tutti i glossari dalla tabella Glossary Display Order quindi nell'ordine corretto, senza verifica dei permessi e distinzione fra condivisi o meno
            // Se per gestione mostro anche i non pubblicati altrimenti solo i pubblicati
            List <DTO_Glossary> glossaryList = null;


            //if (View.ForManagement)
            //glossaryList = Service.GetActiveDTO_GlossaryListOrdered(f => f.IdCommunity == View.IdCommunity && f.Deleted == BaseStatusDeleted.None && f.Glossary.Deleted == BaseStatusDeleted.None);
            glossaryList = Service.GetDTO_GlossaryListOrdered(View.IdCommunity, View.ForManagement);

            // Calcolo i permessi di tutti i glossari
            foreach (var dtoGlossary in glossaryList)
            {
                Service.UpdateGlossaryPermission(module, dtoGlossary, person, View.IdCommunity);
            }

            // Carico tutti i glossari pubblici, pubblicati e non della mia comunità
            var publicGlossaryList = Service.GetDTO_GlossaryListFromliteGlossary(f => f.IdCommunity != View.IdCommunity && f.Deleted == BaseStatusDeleted.None && f.IsPublic && f.IsPublished);

            // li metto in sola visualizzazione
            // non verifico al momento i permessi che ho nella comunità di origine del glossario
            foreach (var dtoGlossary in publicGlossaryList)
            {
                dtoGlossary.Permission.ViewTerm = module.ViewTerm;
            }

            // Dovrei aver concatenato tutti i permessi e quindi
            // invio dati alla vista solo con i glossari visibili
            View.LoadViewData(glossaryList.Where(f => f.Permission.ViewTerm).OrderBy(f => f.DisplayOrder).ToList(), publicGlossaryList);
        }
        private void UpdateView(litePerson person, ModuleGlossaryNew module)
        {
            var litePerson = CurrentManager.GetLitePerson(UserContext.CurrentUserID);

            if (UserContext.isAnonymous || litePerson == null)
            {
                View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission);
                View.DisplaySessionTimeout();
                return;
            }

            if (View.IdCommunity > 0)
            {
                List <DTO_Glossary> glossaryList = null;
                //if (View.ForManagement)
                //glossaryList = Service.GetActiveDTO_GlossaryListOrdered(f => f.IdCommunity == View.IdCommunity && f.Deleted == BaseStatusDeleted.None && f.Glossary.Deleted == BaseStatusDeleted.None);
                glossaryList = Service.GetDTO_GlossaryListOrdered(View.IdCommunity, false);

                // Calcolo i permessi di tutti i glossari
                foreach (var dtoGlossary in glossaryList)
                {
                    Service.UpdateGlossaryPermission(module, dtoGlossary, person, View.IdCommunity);
                }

                // Carico tutti i glossari pubblici, pubblicati e non della mia comunità
                var publicGlossaryList = Service.GetDTO_GlossaryListFromliteGlossary(f => f.IdCommunity != View.IdCommunity && f.Deleted == BaseStatusDeleted.None && f.IsPublic && f.IsPublished);

                // li metto in sola visualizzazione
                // non verifico al momento i permessi che ho nella comunità di origine del glossario
                foreach (var dtoGlossary in publicGlossaryList)
                {
                    dtoGlossary.Permission.ViewTerm = module.ViewTerm;
                }

                // Dovrei aver concatenato tutti i permessi e quindi
                // invio dati alla vista solo con i glossari visibili
                //View.LoadViewData(glossaryList.Where(f => f.Permission.ViewTerm).ToList(), publicGlossaryList);

                var list = Service.GetCommunityGlossaryTerms(View.IdGlossary, glossaryList.Where(f => f.Permission.ViewTerm).Select(f => f.Id).ToList(), publicGlossaryList.Select(f => f.Id).ToList());

                View.LoadViewData(list, false);
            }
        }