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; }
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; }