예제 #1
0
        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);
        }
예제 #2
0
        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();
            }
        }
예제 #4
0
        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);
        }