public static PageAssemblyDto GetPage(QuestionnaireDto questionnaire, bool forDisplay, PageType type, ViewType viewType, bool throwException) { PageAssemblyDto retval = null; //first get the questionnaire if there is no questionnaire then the page will also be null... //The QuestionnaireDto can be accessed via FormRegistry.QuestionnaireDao.Get (…). if (questionnaire != null) { //The PageDto can be accessed via FormRegistry.PageDao.Get(…). PageDto page = FormRegistry.PageDao.Get(questionnaire.QuestionnaireId, type); if (page != null) { //The QuestionnaireDto can be accessed via FormRegistry.QuestionnaireDao.Get (…). //QuestionnaireDto questionnaire = FormRegistry.QuestionnaireDao.Get((int)questionnaireId, QuestionnaireType.Questionnaire, viewType); if (forDisplay) CheckQuestionnaire(questionnaire, type, viewType); OmnitureDto omniture = FormRegistry.OmnitureDao.Get(questionnaire.QuestionnaireId, viewType); //The PageElementDtos can be accessed via FormRegistry.PageElementDao.GetPageElement(…) List<PageElementReqDto> pageElements = FormRegistry.PageElementDao.GetElements(page.PageId); //The PageElementChoiceDtos per page element can be accessed via FormRegistry.PageElementDao.List (parentElementId) List<PageElementAssemblyDto> assemblyElements = new List<PageElementAssemblyDto>(); List<PagePredefinedQuestionDto> predefinedQuestions = FormRegistry.PredefinedQuestionDao.GetPagePredefinedQuestion(null, page.PageId, null); List<PagePredefinedQuestionAssemblyDto> assemblyPredefinedQuestions = new List<PagePredefinedQuestionAssemblyDto>(); if (pageElements != null) { pageElements.RemoveAll(delegate(PageElementReqDto cur) { if (cur != null) return !cur.IsActive; return false; }); foreach (PageElementReqDto ped in pageElements) { PageElementAssemblyDto pead = new PageElementAssemblyDto(ped, FormRegistry.PageElementDao.List(ped.ElementId)); Trace.WriteLine("Element found:" + ped.PageElementType.ToString()); assemblyElements.Add(pead); } } if (predefinedQuestions != null) { predefinedQuestions.RemoveAll(q => q.StatusActive.HasValue && q.StatusActive.Value == 0); foreach (PagePredefinedQuestionDto q in predefinedQuestions) { PagePredefinedQuestionAssemblyDto ppqa = new PagePredefinedQuestionAssemblyDto(); ppqa.Question = q; ppqa.Choices = FormRegistry.PredefinedQuestionDao.GetPagePredefinedQuestionChoices(q.PagePredefinedQuestionId, null); assemblyPredefinedQuestions.Add(ppqa); } } PrivacyDataSectionDto privacy = FormRegistry.PrivacyDao.GetByPageId(page.PageId); PersonalDataSectionDto personal = FormRegistry.PersonalDao.GetByPageId(page.PageId); if (personal != null) { assemblyElements.Add(new PageElementAssemblyDto(personal, null)); } else { assemblyElements.Add(new PageElementAssemblyDto(new PersonalDataSectionDto(page.PageId), null)); } assemblyElements.Sort(delegate(PageElementAssemblyDto x, PageElementAssemblyDto y) { return x.Pageelement.SortSequence.CompareTo(y.Pageelement.SortSequence); }); assemblyPredefinedQuestions.Sort(delegate(PagePredefinedQuestionAssemblyDto x, PagePredefinedQuestionAssemblyDto y) { return x.Question.SortSequence.CompareTo(y.Question.SortSequence); }); if (privacy != null) { assemblyElements.Add(new PageElementAssemblyDto(privacy, null)); } retval = new PageAssemblyDto(questionnaire, page, omniture, assemblyElements, assemblyPredefinedQuestions); } else if (throwException) { throw new Com.SunnySystems.Util.Base.UserCausedException(HP.Rfg.Common.Constants.UserCausedPageNotFound); } } else if (throwException) { throw new Com.SunnySystems.Util.Base.UserCausedException(HP.Rfg.Common.Constants.UserCausedQuestionnaireNotFound); } return retval; }
public void Initialize(QuestionnaireDto quesitonnaire, PageDto page, PageElementAssemblyDto pageElementAssembly) { _pageElementType = pageElementAssembly.Pageelement.PageElementType; _questionnaire = quesitonnaire; _page = page; _pageElement = pageElementAssembly.Pageelement; _choices = pageElementAssembly.Elementchoices; _isValid = true; Load += new EventHandler(WucPageElementBase_Load); }