Esempio n. 1
0
        public void SaveOrUpdate(DTO_Term term)
        {
            View.ShowInfo(SaveStateEnum.None, MessageType.none);

            var litePerson = CurrentManager.GetLitePerson(UserContext.CurrentUserID);

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

            var module = Service.GetPermissions(View.IdCommunity, litePerson);

            if (module.EditTerm || module.Administration || module.ManageGlossary)
            {
                term.IdCommunity = View.IdCommunity;
                var result = Service.SaveOrUpdateTerm(term);
                if (result.SaveState == SaveStateEnum.Saved)
                {
                    View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), result.Id, ModuleGlossaryNew.ObjectType.Term, ModuleGlossaryNew.ActionType.SaveTerm);
                    //View.GoToGlossaryView();
                    View.ShowInfo(SaveStateEnum.Saved, MessageType.success);
                }
                else
                {
                    View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.GenericError);
                    View.ShowInfo(SaveStateEnum.NotSaved, MessageType.error);
                }
            }
            else
            {
                View.SendUserAction(View.IdCommunity, Service.GetServiceIdModule(), ModuleGlossaryNew.ActionType.NoPermission);
                View.DisplayNoPermission(View.IdCommunity, Service.GetServiceIdModule());
            }
        }
Esempio n. 2
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);
        }