public void CreateComponentDsl() { // not so much a test, as an example of how you could construct a // "DSL" like syntax to represent a monorail view component with // section overrides. var people = new List<Person> { new Person {FirstName = "Alex", LastName = "Henderson"}, new Person {FirstName = "Joe", LastName = "Bloggs"} }; var compDsl = new ComponentDsl(); compDsl.Add ( GridComponent => compDsl.Component ( compDsl.Parameters ( source => people ), header => compDsl.Section ( tr => compDsl.As ( th => compDsl.As ( compDsl.Text("Names") ) ) ), item => compDsl.Section ( tr => compDsl.As ( td => compDsl.As ( compDsl.Item<Person>(p => p.FirstName + " " + p.LastName) ) ) ) ) ); var dsl = new StandardDsl(); dsl.Add ( html => dsl.As ( body => compDsl ) ); Console.WriteLine(DslToXml.ToXml(dsl)); }
public void CreateComponentDsl() { // not so much a test, as an example of how you could construct a // "DSL" like syntax to represent a monorail view component with // section overrides. var people = new List <Person> { new Person { FirstName = "Alex", LastName = "Henderson" }, new Person { FirstName = "Joe", LastName = "Bloggs" } }; var compDsl = new ComponentDsl(); compDsl.Add ( GridComponent => compDsl.Component ( compDsl.Parameters ( source => people ), header => compDsl.Section ( tr => compDsl.As ( th => compDsl.As ( compDsl.Text("Names") ) ) ), item => compDsl.Section ( tr => compDsl.As ( td => compDsl.As ( compDsl.Item <Person>(p => p.FirstName + " " + p.LastName) ) ) ) ) ); var dsl = new StandardDsl(); dsl.Add ( html => dsl.As ( body => compDsl ) ); Console.WriteLine(DslToXml.ToXml(dsl)); }