Exemplo n.º 1
0
        /// <summary>
        /// Handle logic for dynamic content within a page, overriding supplied content as required
        /// </summary>
        /// <param name="page">The page with potential dynamic content</param>
        /// <param name="formContext">Form the question is part of</param>
        /// <returns></returns>
        public static PageVM HandleDynamicContent(this PageVM page, FormVM formContext)
        {
            var defaultPage = page;

            try
            {
                if (page.DynamicContent != null)
                {
                    var conditions = page.DynamicContent.Conditions;
                    page.ApplyDynamicContent(conditions, formContext);
                }

                foreach (var question in page.Questions)
                {
                    if (question.DynamicContent != null)
                    {
                        var conditions = question.DynamicContent.Conditions;
                        question.ApplyDynamicContent(conditions, formContext);
                    }
                }
            }
            catch
            {
                return(defaultPage);
            }

            return(page);
        }