Example #1
0
        public static void LoadTextFormatDefinition(XmlElement root, ref FormatContainer proContainer)
        {
            TextFormatContainer intro = new TextFormatContainer();

            foreach (XmlElement TextFormatDefinition in root.GetElementsByTagName("TextFormatDefinition"))
            {
                intro.TextFormatDefinition = new TextFormatDefinition()
                {
                    ElementFormatDefinitionName = TextFormatDefinition.Attributes["ElementFormatDefinitionName"].Value
                };
                foreach (XmlElement QuestionnaireElementFormatDefinition in TextFormatDefinition.GetElementsByTagName("QuestionnaireElementFormatDefinition"))
                {
                    string OrderInSectionString = QuestionnaireElementFormatDefinition.Attributes["OrderInSection"].Value;

                    int  num1;
                    bool res = int.TryParse(OrderInSectionString, out num1);
                    if (res == false)
                    {
                        Form1.Print("The OrderInSection: " + OrderInSectionString + " need to be a number");
                    }
                    else
                    {
                        int OrderInSectionInt = int.Parse(OrderInSectionString);

                        intro.Elements.Add(new FormatContainerElement()
                        {
                            OrderInSection = OrderInSectionInt,
                            QuestionnaireElementActionId = (QuestionnaireElementFormatDefinition.Attributes["QuestionnaireElementActionId"]).Value
                        });
                    }
                }
                proContainer.Children.Add(intro);
            }
        }
Example #2
0
        /// <summary>
        /// Loads the Format Container with the given Id recursively
        /// </summary>
        /// <param name="formatContainerId">The Id of the format container to load</param>
        /// <returns>The requested format container</returns>
        private FormatContainer GetContainer(int formatContainerId)
        {
            FormatContainer        root     = this.context.QuestionnaireFormatContainers.Where(c => c.Id == formatContainerId).Include(c => c.ContainerFormatDefinition).Include(c => c.Children).SingleOrDefault();
            List <FormatContainer> children = root.Children.ToList();

            root.Children = root.Children.OrderBy(c => c.OrderInParent).ToList();
            for (int i = 0; i < children.Count; i++)
            {
                children[i] = this.GetContainer(children[i].Id);
            }

            root.Children = children;
            root.Elements = this.context.QuestionnaireFormatContainers.Where(c => c.Id == root.Id).Select(c => c.Elements).Single();
            root.Elements = root.Elements.OrderBy(e => e.OrderInSection).ToList();
            if (root.GetType() == typeof(TextFormatContainer))
            {
                TextFormatContainer textFormatRoot = (TextFormatContainer)root;
                textFormatRoot.TextFormatDefinition = this.context.QuestionnaireFormatContainers.OfType <TextFormatContainer>().Where(c => c.Id == textFormatRoot.Id).Select(c => c.TextFormatDefinition).SingleOrDefault();
            }
            else if (root.GetType() == typeof(ItemFormatContainer))
            {
                ItemFormatContainer ifRoot = (ItemFormatContainer)root;
                ifRoot.ItemFormatDefinition = this.context.QuestionnaireFormatContainers.OfType <ItemFormatContainer>().Where(c => c.Id == ifRoot.Id).Select(c => c.ItemFormatDefinition).SingleOrDefault();
                ifRoot.ItemGroupFormats     = this.context.QuestionnaireFormatContainers.OfType <ItemFormatContainer>().Where(c => c.Id == ifRoot.Id).Select(c => c.ItemGroupFormats).Single();
                foreach (ItemGroupFormat igf in ifRoot.ItemGroupFormats)
                {
                    igf.ItemGroupOptionsFormatDefinition = this.context.ItemGroupFormats.Where(f => f.Id == igf.Id).Select(f => f.ItemGroupOptionsFormatDefinition).Single();
                    igf.ItemGroupOptionsFormatDefinition.ForEachOption = this.context.ItemGroupOptionsForEachOptionDefinitions.Where(o => o.ItemGroupOptionsFormatDefinition.GroupOptionDefinitionName == igf.ItemGroupOptionsFormatDefinition.GroupOptionDefinitionName).OrderBy(o => o.OrderInItemGroupOptionsFormatDefinition).ToList();
                }
            }

            return(root);
        }
Example #3
0
        /// <summary>
        /// Adds a format container and it's children (but not Definition References) to the database recursively.
        /// Does not call context.SaveChanges()
        /// </summary>
        /// <param name="container">The container to add</param>
        private void AddFormatContainersRecursive(FormatContainer container)
        {
            container.ContainerFormatDefinition_Name = container.ContainerFormatDefinition == null ? container.ContainerFormatDefinition_Name : container.ContainerFormatDefinition.ContainerDefinitionName;
            container.ContainerFormatDefinition      = null;

            if (container.GetType() == typeof(TextFormatContainer))
            {
                TextFormatContainer tf = (TextFormatContainer)container;
                tf.TextFormatDefinition_Name = tf.TextFormatDefinition.ElementFormatDefinitionName == null ? tf.TextFormatDefinition_Name : tf.TextFormatDefinition.ElementFormatDefinitionName;
                tf.TextFormatDefinition      = null;

                int orderInSection = 0;
                foreach (FormatContainerElement element in tf.Elements)
                {
                    element.OrderInSection  = orderInSection++;
                    element.FormatContainer = tf;
                    this.context.QuestionnaireFormatContainerElements.Add(element);
                }
            }
            else if (container.GetType() == typeof(ItemFormatContainer))
            {
                ItemFormatContainer ifc = (ItemFormatContainer)container;

                ifc.ItemFormatDefinition_Name = ifc.ItemFormatDefinition.ElementFormatDefinitionName == null ? ifc.ItemFormatDefinition_Name : ifc.ItemFormatDefinition.ElementFormatDefinitionName;
                ifc.ItemFormatDefinition      = null;

                foreach (ItemGroupFormat igf in ifc.ItemGroupFormats)
                {
                    igf.ItemFormatContainer = ifc;

                    igf.ItemGroupOptionsFormatDefinition_Name = igf.ItemGroupOptionsFormatDefinition == null ? igf.ItemGroupOptionsFormatDefinition_Name : igf.ItemGroupOptionsFormatDefinition.GroupOptionDefinitionName;
                    igf.ItemGroupOptionsFormatDefinition      = null;

                    this.context.ItemGroupFormats.Add(igf);
                }

                int orderInSection = 0;
                foreach (FormatContainerElement item in ifc.Elements)
                {
                    item.OrderInSection  = orderInSection++;
                    item.FormatContainer = ifc;
                    this.context.QuestionnaireFormatContainerElements.Add(item);
                }
            }

            int orderInParent = 0;

            foreach (FormatContainer child in container.Children)
            {
                child.Parent        = container;
                child.OrderInParent = orderInParent++;
                this.AddFormatContainersRecursive(child);
            }

            this.context.QuestionnaireFormatContainers.Add(container);
        }
Example #4
0
        /// <summary>
        /// Create local resources then call <see cref="OnLoadContent()"/> for inheriting objects.
        /// </summary>
        private void LoadContent()
        {
            AddLayer(new DebugLayer(this), 9999);

            _logLayer = new ScreenLogLayer(this);
            AddLayer(_logLayer, 9998);

            _brushes = new BrushContainer(this);
            _fonts   = new TextFormatContainer(this);
            OnLoadContent();

            lock (Layers)
            {
                foreach (var layer in Layers)
                {
                    layer.LoadContent();
                }
            }
        }
Example #5
0
        /// <summary>
        /// Unloads local content then calls <see cref="OnUnloadContent()"/> for inheriting controls.
        /// </summary>
        protected void UnloadContent()
        {
            _brushes.Cleanup();
            _brushes = null;
            _fonts.Cleanup();
            _fonts = null;

            foreach (var layer in Layers)
            {
                layer.UnloadContent();

                var disposableLayer = layer as IDisposable;
                if (disposableLayer != null)
                {
                    disposableLayer.Dispose();
                }
            }
            Layers.Clear();

            OnUnloadContent();
        }
Example #6
0
        public void AddQuestionnaireFormat()
        {
            Format format = new Format();

            format.Name = "OES";
            format.SupportedPlatform = Platform.Classic;
            FormatContainer pro = new FormatContainer();

            format.Containers.Add(pro);
            pro.ContainerFormatDefinition = new ContainerFormatDefinition()
            {
                ContainerDefinitionName = "GenericQuestionnaireCanvas"
            };
            {
                TextFormatContainer intro = new TextFormatContainer();
                //container.ContainerFormatDefinition = new ContainerFormatDefinition() { ContainerDefinitionName = "Defines start and end of Table" };
                intro.TextFormatDefinition = new TextFormatDefinition()
                {
                    ElementFormatDefinitionName = "GenericQuestionnaireText"
                };
                intro.Elements.Add(new FormatContainerElement()
                {
                    OrderInSection = 1, QuestionnaireElementActionId = "Intro1"
                });
                intro.Elements.Add(new FormatContainerElement()
                {
                    OrderInSection = 2, QuestionnaireElementActionId = "Intro2"
                });
                pro.Children.Add(intro);
            }

            {
                ItemFormatContainer items = new ItemFormatContainer();
                //container.ContainerFormatDefinition = ""
                items.ItemFormatDefinition = new ItemFormatDefinition()
                {
                    ElementFormatDefinitionName = "GenericQuestionnaireItem"
                };
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "LikertHorizontalRadio"
                    }, ResponseType = QuestionnaireResponseType.List
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.1", OrderInSection = 1
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.2", OrderInSection = 2
                });
                //items.Elements.Add(new FormatContainerElement() { QuestionnaireElementActionId = "OES.3", OrderInSection = 3 });
                //items.Elements.Add(new FormatContainerElement() { QuestionnaireElementActionId = "OES.4", OrderInSection = 4 });
                pro.Children.Add(items);
            }

            {
                ItemFormatContainer items = new ItemFormatContainer();
                //container.ContainerFormatDefinition = ""
                items.ItemFormatDefinition = new ItemFormatDefinition()
                {
                    ElementFormatDefinitionName = "GenericQuestionnaireItem"
                };
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "LikertVerticalRadio"
                    }, ResponseType = QuestionnaireResponseType.List
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.3", OrderInSection = 3
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.4", OrderInSection = 4
                });
                pro.Children.Add(items);
            }

            {
                ItemFormatContainer items = new ItemFormatContainer();
                //container.ContainerFormatDefinition = ""
                items.ItemFormatDefinition = new ItemFormatDefinition()
                {
                    ElementFormatDefinitionName = "SliderQuestionnaireItem"
                };
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "LikertSlider"
                    }, ResponseType = QuestionnaireResponseType.Range
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.5", OrderInSection = 5
                });
                pro.Children.Add(items);
            }

            {
                ItemFormatContainer items = new ItemFormatContainer();
                //container.ContainerFormatDefinition = ""
                items.ItemFormatDefinition = new ItemFormatDefinition()
                {
                    ElementFormatDefinitionName = "ConditionalQuestionnaireItem"
                };
                //items.ItemFormatDefinition.ItemGroupOptionsFormatDefinitions = new ItemGroupOptionsFormatDefinition() { };
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "ConditionalItem"
                    }, ResponseType = QuestionnaireResponseType.ConditionalItem
                });
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "LikertSlider"
                    }, ResponseType = QuestionnaireResponseType.Range
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.6", OrderInSection = 6
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.7", OrderInSection = 7
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.8", OrderInSection = 8
                });
                pro.Children.Add(items);
            }

            {
                ItemFormatContainer items = new ItemFormatContainer();
                //container.ContainerFormatDefinition = ""
                items.ItemFormatDefinition = new ItemFormatDefinition()
                {
                    ElementFormatDefinitionName = "TextBoxQuestionnaireItem"
                };
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "TextBox"
                    }, ResponseType = QuestionnaireResponseType.Text
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.9", OrderInSection = 9
                });
                pro.Children.Add(items);
            }

            {
                ItemFormatContainer items = new ItemFormatContainer();
                //container.ContainerFormatDefinition = ""
                items.ItemFormatDefinition = new ItemFormatDefinition()
                {
                    ElementFormatDefinitionName = "TextAreaQuestionnaireItem"
                };
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "TextArea"
                    }, ResponseType = QuestionnaireResponseType.Text
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.10", OrderInSection = 10
                });
                pro.Children.Add(items);
            }

            {
                ItemFormatContainer items = new ItemFormatContainer();
                //container.ContainerFormatDefinition = ""
                items.ItemFormatDefinition = new ItemFormatDefinition()
                {
                    ElementFormatDefinitionName = "BodyControlQuestionnaireItem"
                };
                items.ItemGroupFormats.Add(new ItemGroupFormat()
                {
                    ItemGroupOptionsFormatDefinition = new ItemGroupOptionsFormatDefinition()
                    {
                        GroupOptionDefinitionName = "BodyControl"
                    }, ResponseType = QuestionnaireResponseType.MultiSelect
                });
                items.Elements.Add(new FormatContainerElement()
                {
                    QuestionnaireElementActionId = "OES.11", OrderInSection = 11
                });
                pro.Children.Add(items);
            }

            {
                TextFormatContainer footer = new TextFormatContainer();
                //container.ContainerFormatDefinition = new ContainerFormatDefinition() { ContainerDefinitionName = "Defines start and end of Table" };
                footer.TextFormatDefinition = new TextFormatDefinition()
                {
                    ElementFormatDefinitionName = "GenericQuestionnaireText"
                };
                footer.Elements.Add(new FormatContainerElement()
                {
                    OrderInSection = 1, QuestionnaireElementActionId = "Footer1"
                });
                pro.Children.Add(footer);
            }

            new AccessHandlerManager().QuestionnaireFormatAccessHandler.AddOrUpdateFullFormat(format);
        }