Example #1
0
        private void ChoiceTestOnEnum(string ctd, EnumTestNode.TestEnum loadValue, EnumTestNode.TestEnum selectValue, out ListItemCollection loadedList, out EnumTestNode.TestEnum result, out bool isValid)
        {
            ContentTypeInstaller.InstallContentType(ctd);

            SNC.Content content = SNC.Content.CreateNew("EnumTestNode", _testRoot, "ChoiceTest");
            var contentHandler = (EnumTestNode)content.ContentHandler;
            contentHandler.TestProperty = loadValue;

            //-- simulate ContentView
            ChoiceField field = (ChoiceField)content.Fields["TestProperty"];
            SenseNet.Portal.UI.Controls.CheckBoxGroup chk = new SenseNet.Portal.UI.Controls.CheckBoxGroup();
            PrivateObject chkAcc = new PrivateObject(chk);
            chkAcc.Invoke("set_Field", content.Fields["TestProperty"]);

            chk.SetData(field.GetData());
            ListItemCollection items = (ListItemCollection)chkAcc.GetProperty("InnerListItemCollection");

            loadedList = new ListItemCollection();
            foreach (ListItem item in items)
            {
                ListItem newItem = new ListItem(item.Text, item.Value, item.Enabled);
                newItem.Selected = item.Selected;
                loadedList.Add(newItem);
            }

            var extraOptionValue = (string)chkAcc.Invoke("get_ExtraOptionValue");

            //-- select item
            var selectedText = selectValue.ToString();
            foreach (ListItem item in items)
                item.Selected = item.Text == selectedText;

            field.SetData(chk.GetData());
            new PrivateObject(field).Invoke("Save", false);

            result = (EnumTestNode.TestEnum)contentHandler.TestProperty;
            isValid = field.IsValid;
        }
Example #2
0
        private void ChoiceTestOnString(string ctd, string loadValue, string setExtraValue, out ListItemCollection loadedList, out string result, out bool isValid)
        {
            ContentTypeInstaller.InstallContentType(ctd);

            SNC.Content content = SNC.Content.CreateNew("ValidatedContent", _testRoot, "ChoiceTest");
            content.ContentHandler["ChoiceTest"] = loadValue;

            //-- simulate ContentView
            ChoiceField field = (ChoiceField)content.Fields["ChoiceTest"];
            SenseNet.Portal.UI.Controls.CheckBoxGroup chk = new SenseNet.Portal.UI.Controls.CheckBoxGroup();
            PrivateObject chkAcc = new PrivateObject(chk);
            chkAcc.Invoke("set_Field", content.Fields["ChoiceTest"]);
            chk.SetData(field.GetData());
            ListItemCollection items = (ListItemCollection)chkAcc.GetProperty("InnerListItemCollection");

            loadedList = new ListItemCollection();
            foreach (ListItem item in items)
            {
                ListItem newItem = new ListItem(item.Text, item.Value, item.Enabled);
                newItem.Selected = item.Selected;
                loadedList.Add(newItem);
            }

            var extraOptionValue = (string)chkAcc.Invoke("get_ExtraOptionValue");
            ListItem extraItem = null;

            //-- return inverted selection
            foreach (ListItem item in items)
            {
                item.Selected = !item.Selected;
                if (item.Value == extraOptionValue)
                    extraItem = item;
            }
            if (setExtraValue != null)
            {
                chkAcc.Invoke("SetExtraValue", setExtraValue);
                if (extraItem != null)
                    extraItem.Selected = true;
            }
            field.SetData(chk.GetData());
            new PrivateObject(field).Invoke("Save", false);

            result = (string)content.ContentHandler["ChoiceTest"];
            isValid = field.IsValid;
        }