Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
KycSection.cs
1using System.Collections.ObjectModel;
2using CommunityToolkit.Mvvm.ComponentModel;
5
7{
8 public partial class KycSection : ObservableObject, IDisposable
9 {
10 private bool disposed;
11 private readonly List<IDisposable> subscriptions = new();
12
13 public KycSection()
14 {
15 this.VisibleFieldsCollection = new FilteredObservableCollection<ObservableKycField>(this.AllFields, Field => Field.IsVisible);
16 }
17
18 public KycLocalizedText? Label { get; set; }
19 public KycLocalizedText? Description { get; set; }
20
21 public ObservableCollection<ObservableKycField> AllFields { get; } = new();
22 public FilteredObservableCollection<ObservableKycField> VisibleFieldsCollection { get; }
23 public ReadOnlyObservableCollection<ObservableKycField> VisibleFields => this.VisibleFieldsCollection;
24
25 public int VisibleFieldsCount => this.VisibleFields.Count;
26 public bool IsVisible { get; private set; } = true;
27
28 public void UpdateVisibilities(IDictionary<string, string?> Values)
29 {
30 foreach (ObservableKycField Field in this.AllFields)
31 {
32 Field.IsVisible = Field.Condition?.Evaluate(Values) ?? true;
33 }
34 this.IsVisible = this.VisibleFields.Count > 0;
35 this.VisibleFieldsCollection.Refresh();
36 }
37
38 protected virtual void Dispose(bool Disposing)
39 {
40 if (this.disposed)
41 {
42 return;
43 }
44 if (Disposing)
45 {
46 this.VisibleFieldsCollection.Dispose();
47 this.subscriptions.ForEach(Sub => Sub.Dispose());
48 this.subscriptions.Clear();
49 }
50 this.disposed = true;
51 }
52
53 public void Dispose()
54 {
55 this.Dispose(true);
56 GC.SuppressFinalize(this);
57 }
58 }
59}
Represents a set of localized strings, addressable by language code (e.g. "en", "sv").
The base KYC field model. Use as-is for generic fields, or subclass for custom logic.
KycCondition? Condition
Conditional display of this field.
Provides a live, read-only filtered view of an ObservableCollection<T> that stays in sync and maintai...