public void TestControlTypes() { TextControl textControl = new TextControl(); Assert.AreEqual(ControlType.Text, textControl.Type); ComboControl comboControl = new ComboControl(); Assert.AreEqual(ControlType.Combo, comboControl.Type); RadioControl radioControl = new RadioControl(); Assert.AreEqual(ControlType.Radio, radioControl.Type); CheckboxControl checkboxControl = new CheckboxControl(); Assert.AreEqual(ControlType.Checkbox, checkboxControl.Type); CheckboxGroupControl checkboxGroupControl = new CheckboxGroupControl(); Assert.AreEqual(ControlType.CheckboxGroup, checkboxGroupControl.Type); DateControl dateControl = new DateControl(); Assert.AreEqual(ControlType.Date, dateControl.Type); TimeControl timeControl = new TimeControl(); Assert.AreEqual(ControlType.Time, timeControl.Type); FileBrowserControl fileBrowserControl = new FileBrowserControl(); Assert.AreEqual(ControlType.FileBrowser, fileBrowserControl.Type); HiddenControl hiddenControl = new HiddenControl(); Assert.AreEqual(ControlType.Hidden, hiddenControl.Type); LabelControl labelControl = new LabelControl(); Assert.AreEqual(ControlType.Label, labelControl.Type); HtmlControl htmlControl = new HtmlControl(); Assert.AreEqual(ControlType.Html, htmlControl.Type); GroupControl groupControl = new GroupControl(); Assert.AreEqual(ControlType.Group, groupControl.Type); RepeaterControl repeaterControl = new RepeaterControl(); Assert.AreEqual(ControlType.Repeater, repeaterControl.Type); CalculationControl calculationControl = new CalculationControl(); Assert.AreEqual(ControlType.Calculation, calculationControl.Type); SignaturePadControl signaturePadControl = new SignaturePadControl(); Assert.AreEqual(ControlType.SignaturePad, signaturePadControl.Type); GeolocationControl geolocationControl = new GeolocationControl(); Assert.AreEqual(ControlType.Geolocation, geolocationControl.Type); HeadingControl headingControl = new HeadingControl(); Assert.AreEqual(ControlType.Heading, headingControl.Type); }
public void TestGetAllRootControlGroups() { GroupControl groupControl1 = new GroupControl(); GroupControl groupControl2 = new GroupControl { Id = 2 }; GroupControl subgroupControl1 = new GroupControl { ParentId = 2 }; groupControl2.Controls.Add(subgroupControl1); this.page.Controls.Add(groupControl1); this.page.Controls.Add(groupControl2); ControlList controlList = this.page.AllRootControlGroups; Assert.IsTrue(controlList.Contains(groupControl1)); Assert.IsTrue(controlList.Contains(groupControl2)); Assert.IsFalse(controlList.Contains(subgroupControl1)); }
public void TestInitialize() { JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Formatting = Formatting.None, Converters = new JsonConverter[] { new JsonKnownTypeConverter() } }; string jsonProduct = AssemblyResourceReader.ReadAsString("Test_Data.Metadata.json"); this.Product = JsonConvert.DeserializeObject<ProductDefinition>(jsonProduct); this.RepeaterControl = this.Product.FormDefinition.Pages[0].Controls[0] as RepeaterControl; this.RepeaterDescendantGroupControl = this.RepeaterControl.Controls[0] as GroupControl; this.RepeaterDescendantControl = this.RepeaterDescendantGroupControl.Controls[0] as TextControl; this.HeadingControl = this.Product.FormDefinition.Pages[0].Controls[1] as HeadingControl; this.ControlList = this.Product.FormDefinition.Pages[0].Controls; }
/// <summary> /// Writes the value of <paramref name="group"/> to the <paramref name="table"/>. /// </summary> /// <param name="table">The <see cref="MigraDoc.DocumentObjectModel.Tables.Table"/> to write to.</param> /// <param name="group">The control.</param> /// <param name="container">The application data container.</param> /// <param name="level">The depth down the control tree being rendered (affects indenting).</param> private void WriteValueGroup(Table table, GroupControl group, Dictionary<string, object> container, int level) { Color backgroundColour = new Color(100 - (level * PdfConstants.AlphaMultiplier * 100), this.BorderColour.C, this.BorderColour.M, this.BorderColour.Y, this.BorderColour.K); table.AppendHeaderRow(this.DefaultStyle.Font.Size, group.Label, PdfResources.StyleNameHeaderRow, backgroundColour) .Format.LeftIndent = new Unit(PdfConstants.IndentMultiplier * level, UnitType.Millimeter); level = level < 5 ? level + 1 : level; this.WriteValue(table, group.Controls, container, level); }
public void RepeaterInsideGroupCalc() { ControlList controls = new ControlList(); int i = 0; GroupControl group = new GroupControl { Id = i++, Name = "group1" }; controls.Add(group); RepeaterControl control = new RepeaterControl { Id = i++, Name = "repeater1" }; group.Controls.Add(control); control.AddChild(new TextControl { Id = i++, Name = "field1" }); control.AddChild(new TextControl { Id = i++, Name = "field2" }); control.AddChild(new CalculationControl { Id = i + 1, Name = "field3", CalculationExpression = "{%field1%}+{%field2%}" }); Application app = new Application(); List<Dictionary<string, object>> repeaterValue = new List<Dictionary<string, object>> { new Dictionary<string, object>() }; repeaterValue[0]["field1"] = "1"; repeaterValue[0]["field2"] = "1"; repeaterValue[0]["field3"] = null; repeaterValue.Add(new Dictionary<string, object>()); repeaterValue[1]["field1"] = "2"; repeaterValue[1]["field2"] = "2"; repeaterValue[1]["field3"] = null; app.ApplicationData["repeater1"] = repeaterValue.ToArray(); MultiExpressionEvaluator evaluator = new MultiExpressionEvaluator(app, controls); ApplicationData result = evaluator.EvaluateAll(); var repeater = (Dictionary<string, object>[])result["repeater1"]; Assert.AreEqual(repeater[0]["field3"], "2"); Assert.AreEqual(repeater[1]["field3"], "4"); }