Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 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);
 }