Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
ParameterTemplateSelector.cs
1
2
4{
5
9 public class ParameterTemplateSelector : DataTemplateSelector
10 {
11 public DataTemplate? BooleanTemplate { get; set; }
12 public DataTemplate? DateTemplate { get; set; }
13 public DataTemplate? DateTimeTemplate { get; set; }
14 public DataTemplate? DurationTemplate { get; set; }
15 public DataTemplate? StringTemplate { get; set; }
16 public DataTemplate? NumericalTemplate { get; set; }
17 public DataTemplate? TimeTemplate { get; set; }
18 public DataTemplate? CalcTemplate { get; set; }
19 public DataTemplate? ContractReferenceTemplate { get; set; }
20 public DataTemplate? ProtectedTemplate { get; set; }
21 public DataTemplate? GeoTemplate { get; set; }
22 public DataTemplate? DefaultTemplate { get; set; }
23
24 // Add other templates if needed
25
26 protected override DataTemplate? OnSelectTemplate(object item, BindableObject container)
27 {
28 ObservableParameter? Parameter = item as ObservableParameter;
29 if (Parameter is not null && this.ProtectedTemplate is not null)
30 {
31 if (Parameter.IsProtected && !Parameter.CanReadValue)
32 {
33 return this.ProtectedTemplate ?? this.DefaultTemplate;
34 }
35 }
36
37 return item switch
38 {
39 ObservableBooleanParameter => this.BooleanTemplate ?? this.DefaultTemplate,
40 ObservableDateParameter => this.DateTemplate ?? this.DefaultTemplate,
41 ObservableDateTimeParameter => this.DateTimeTemplate ?? this.DefaultTemplate,
42 ObservableDurationParameter => this.DurationTemplate ?? this.DefaultTemplate,
43 ObservableStringParameter => this.StringTemplate ?? this.DefaultTemplate,
44 ObservableNumericalParameter => this.NumericalTemplate ?? this.DefaultTemplate,
45 ObservableTimeParameter => this.TimeTemplate ?? this.DefaultTemplate,
46 ObservableCalcParameter => this.CalcTemplate ?? this.DefaultTemplate,
47 ObservableGeoParameter => this.GeoTemplate ?? this.DefaultTemplate,
48 ObservableContractReferenceParameter => this.ContractReferenceTemplate ?? this.DefaultTemplate,
49 _ => this.DefaultTemplate
50 };
51 }
52 }
53}
An observable object that wraps a Waher.Networking.XMPP.Contracts.Parameter object....
bool IsProtected
If the parameter is protected, either encrypted or transient
bool CanReadValue
If the parameter can be read, for example encrypted parameters cannot be read if you don't have the k...
Definition: ImplTypes.g.cs:58