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); } }