public void ChangeLetter(String letter, GlossaryFilter filter) { var litePerson = CurrentManager.GetLitePerson(UserContext.CurrentUserID); if (UserContext.isAnonymous || litePerson == null) { View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission); View.DisplaySessionTimeout(); return; } if (String.IsNullOrEmpty(letter)) { letter = " "; } var words = new List <String>(); var currentChar = letter[0]; var wordAlls = new List <String>(); var currentLetterTermList = Service.GetDTO_TermListMapFromliteTerm(f => f.IdGlossary == View.IdGlossary && f.Deleted == BaseStatusDeleted.None, f => f.Name, currentChar, filter, out wordAlls); if (!String.IsNullOrWhiteSpace(letter)) { words.Add(letter); } else { words.AddRange(currentLetterTermList.Select(dtoTermMap => dtoTermMap.FirstLetter.ToString())); } View.BindRepeaterList(words, wordAlls, currentLetterTermList, currentChar); }
public void InitView() { var idCommunity = View.PreloadIdCommunity; View.SetTitle((idCommunity > 0) ? CurrentManager.GetCommunityName(idCommunity) : ""); var litePerson = CurrentManager.GetLitePerson(UserContext.CurrentUserID); if (UserContext.isAnonymous || litePerson == null) { View.IdCommunity = idCommunity; View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission); View.DisplaySessionTimeout(); } else { View.IdCommunity = idCommunity; var module = Service.GetPermissions(View.IdCommunity, litePerson); // Verifico Permessi modulo if (module.ViewTerm || module.Administration || module.ManageGlossary) { // var usedLetters = Service.GetGlossaryUsedLetters(GetIDGlossary()); var filter = new GlossaryFilter { SearchString = View.SearchString, LemmaString = View.LemmaString, LemmaContentString = View.LemmaContentString, LemmaSearchType = (FilterTypeEnum)View.LemmaSearchType, LemmaVisibilityType = (FilterVisibilityTypeEnum)View.LemmaVisibilityType }; View.LoadViewData(View.IdCommunity, filter); ChangeLetter(String.Empty, 0, 50, filter); return; } View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission); View.DisplayNoPermission(View.IdCommunity, Service.GetServiceIdModule()); } }
public void ShowFilterResult(GlossaryFilter searchFilter) { var litePerson = CurrentManager.GetLitePerson(UserContext.CurrentUserID); if (UserContext.isAnonymous || litePerson == null) { View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission); View.DisplaySessionTimeout(); return; } if (searchFilter == null) { InitView(View.ForManagement); } else { View.GoToGlossarySearch(); } }
public void ChangeLetter(String letter, Int32 currentPage, Int32 pageSize, GlossaryFilter filter) { var litePerson = CurrentManager.GetLitePerson(UserContext.CurrentUserID); if (UserContext.isAnonymous || litePerson == null) { View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission); View.DisplaySessionTimeout(); return; } if (String.IsNullOrEmpty(letter)) { letter = AllChar; } if (pageSize == 0) { pageSize = 10; } Int32 records; var currentChar = letter[0]; Dictionary <string, CharInfo> usedLetters; var currentLetterTermList = Service.GetDTO_TermListFromliteTerm(f => f.IdGlossary == View.IdGlossary && f.Deleted == BaseStatusDeleted.None, f => f.Name, currentPage, currentChar, pageSize, filter, out records, out usedLetters).ToList(); var filteredTerms = new List <DTO_Term>(); var usedletterList = new List <String>(); var letterList = new List <CharInfo>(); var startIndex = currentPage == 0 ? 0 : 1; var endIndex = currentLetterTermList.Count; var lastChildLastPage = currentPage > 0 && currentLetterTermList.Count > 0 ? currentLetterTermList[0] : null; DTO_Term firstChildNextPage = null; var lastPageIndex = records % pageSize == 0 ? (records / pageSize) - 1 : (records / pageSize); if (currentLetterTermList.Count == pageSize + 1) { firstChildNextPage = currentLetterTermList[currentLetterTermList.Count - 1]; } else if (currentLetterTermList.Count == pageSize + 2) { firstChildNextPage = currentLetterTermList[currentLetterTermList.Count - 1]; } for (var index = startIndex; index < endIndex; index++) { var currentTerm = currentLetterTermList[index]; if (filteredTerms.Count >= pageSize) { break; } filteredTerms.Add(currentTerm); if (!usedletterList.Contains(currentTerm.FirstLetter.ToString())) { usedletterList.Add(currentTerm.FirstLetter.ToString()); var wordInPreviousPage = lastChildLastPage != null && lastChildLastPage.FirstLetter == currentTerm.FirstLetter; var wordInNextPage = firstChildNextPage != null && firstChildNextPage.FirstLetter == currentTerm.FirstLetter; if (lastPageIndex == currentPage || records < pageSize) { wordInNextPage = false; } letterList.Add(new CharInfo(currentTerm.FirstLetter.ToString(), wordInPreviousPage, wordInNextPage)); } } View.BindRepeaterList(filteredTerms, usedLetters, currentChar, records, currentPage, letterList); }