Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
XamlExtensions.cs
1using System.Threading.Tasks;
2using System.Windows;
3using System.Windows.Controls;
4using System.Windows.Markup;
9
10namespace LegalLab.Extensions
11{
15 public static class XamlExtensions
16 {
22 public static object ParseSimple(this string Xaml)
23 {
24 if (string.IsNullOrEmpty(Xaml))
25 return null;
26
27 object Result = XamlReader.Parse(Xaml);
28
29 if (Result is StackPanel Panel && Panel.Children.Count == 1)
30 {
31 UIElement Child = Panel.Children[0];
32 Panel.Children.RemoveAt(0);
33
34 if (Child is FrameworkElement E)
35 E.Margin = new Thickness(0);
36
37 return Child;
38 }
39 else
40 return Result;
41 }
42
49 public static Task<string> ToXAML(this Contract Contract, string Language)
50 {
51 return Contract.ToXAML(Contract.ForHumans, Language);
52 }
53
61 public static Task<string> ToXAML(this Contract Contract, HumanReadableText[] Text, string Language)
62 {
63 return Contract.Select(Text, Language)?.GenerateXAML(Contract) ?? Task.FromResult<string>(null);
64 }
65
73 public static Task<string> ToXAML(this Contract Contract, Waher.Networking.XMPP.Contracts.HumanReadable.Label[] Text, string Language)
74 {
75 return Contract.Select(Text, Language)?.GenerateXAML(Contract) ?? Task.FromResult<string>(null);
76 }
77
84 public static async Task<string> GenerateXAML(this HumanReadableText Text, Contract Contract)
85 {
87 return await Doc.GenerateXAML();
88 }
89
96 public static async Task<string> GenerateXAML(this Waher.Networking.XMPP.Contracts.HumanReadable.Label Text, Contract Contract)
97 {
98 MarkdownDocument Doc = await Text.GenerateMarkdownDocument(Contract);
99 return await Doc.GenerateXAML();
100 }
101
109 public static Task<string> ToXAML(this LocalizableDescription Description, string Language, Contract Contract)
110 {
111 return Contract.ToXAML(Description.Descriptions, Language);
112 }
113
121 public static async Task<object> ToSimpleXAML(this Role Role, string Language, Contract Contract)
122 {
123 return (await Role.ToXAML(Language, Contract)).ParseSimple();
124 }
125
133 public static async Task<object> ToSimpleXAML(this Parameter Parameter, string Language, Contract Contract)
134 {
135 return (await Parameter.ToXAML(Language, Contract)).ParseSimple();
136 }
137
145 public static async Task<object> ToSimpleXAML(this HumanReadableText[] Text, string Language, Contract Contract)
146 {
147 return (await Contract.ToXAML(Text, Language)).ParseSimple();
148 }
149
157 public static async Task<object> ToSimpleXAML(this Waher.Networking.XMPP.Contracts.HumanReadable.Label[] Label, string Language, Contract Contract)
158 {
159 return (await Contract.ToXAML(Label, Language)).ParseSimple();
160 }
161
169 public static async Task<object> ToSimpleXAML(this string Markdown, Contract Contract, string Language)
170 {
171 if (string.IsNullOrEmpty(Markdown))
172 return null;
173
174 HumanReadableText Text = await Markdown.ToHumanReadableText(Language);
175 string Xaml = await Text.GenerateXAML(Contract);
176 return Xaml.ParseSimple();
177 }
178
186 public static async Task<object> ToXAML(this string Markdown, Contract Contract, string Language)
187 {
188 if (string.IsNullOrEmpty(Markdown))
189 return null;
190
191 HumanReadableText Text = await Markdown.ToHumanReadableText(Language);
192 string Xaml = await Text.GenerateXAML(Contract);
193 return XamlReader.Parse(Xaml);
194 }
195 }
196}
Contains a markdown document. This markdown document class supports original markdown,...
Contains the definition of a contract
Definition: Contract.cs:22
HumanReadableText[] ForHumans
Human-readable contents of the contract.
Definition: Contract.cs:300
HumanReadableText Select(HumanReadableText[] Text, string Language)
Selects a human-readable text, from a collection of texts, based on currently selected language.
Definition: Contract.cs:2056
static HumanReadableText Parse(XmlElement Xml)
Class representing human-readable text.
async Task< MarkdownDocument > GenerateMarkdownDocument(Contract Contract)
Generates a parsed markdown document for the human-readable text.
Abstract base class for contractual parameters
HumanReadableText[] Descriptions
Discriptions of the object, in different languages.
Abstract base class for contractual parameters
Definition: Parameter.cs:17
Class defining a role
Definition: Role.cs:7
Definition: App.xaml.cs:4