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