Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
KycSummary.cs
2using System.Collections.ObjectModel;
3using System.Globalization;
4using System.Linq;
8
10{
14 internal sealed record KycSummarySection(string Id, IReadOnlyList<DisplayQuad> Items);
15
19 internal sealed record KycSummaryModel(IReadOnlyList<KycSummarySection> Sections)
20 {
21 public KycSummarySection? Get(string id) => this.Sections.FirstOrDefault(s => string.Equals(s.Id, id, System.StringComparison.OrdinalIgnoreCase));
22 }
23
24 internal static class KycSummary
25 {
26 // Section identifiers (match previous ViewModel collections)
27 public const string Personal = "Personal";
28 public const string Address = "Address";
29 public const string Attachments = "Attachments";
30 public const string CompanyInfo = "CompanyInfo";
31 public const string CompanyAddress = "CompanyAddress";
32 public const string CompanyRepresentative = "CompanyRepresentative";
33
37 public static ISet<string> BuildInvalidMappingSet(KycReference? reference)
38 {
39 HashSet<string> Invalid = new(System.StringComparer.OrdinalIgnoreCase);
40 if (reference is null) return Invalid;
41 ApplicationReview? Review = reference.ApplicationReview;
42 foreach (string Claim in Review?.InvalidClaims ?? System.Array.Empty<string>())
43 {
44 if (string.IsNullOrWhiteSpace(Claim)) continue;
45 string Key = Claim.Trim(); Invalid.Add(Key);
46 if (Key.Equals(Constants.XmppProperties.BirthDay, System.StringComparison.OrdinalIgnoreCase) || Key.Equals(Constants.XmppProperties.BirthMonth, System.StringComparison.OrdinalIgnoreCase) || Key.Equals(Constants.XmppProperties.BirthYear, System.StringComparison.OrdinalIgnoreCase) || Key.Equals(Constants.CustomXmppProperties.BirthDate, System.StringComparison.OrdinalIgnoreCase)) Invalid.Add(Constants.CustomXmppProperties.BirthDate);
47 if (Key.StartsWith("ORGREP", System.StringComparison.OrdinalIgnoreCase)) Invalid.Add("ORGREPBDATE");
48 }
49 foreach (string Photo in Review?.InvalidPhotos ?? System.Array.Empty<string>())
50 {
51 if (string.IsNullOrWhiteSpace(Photo)) continue; Invalid.Add(Photo.Trim());
52 }
53 return Invalid;
54 }
55
59 public static KycSummaryModel Generate(KycProcess process, IEnumerable<Property> mappedValues, IEnumerable<LegalIdentityAttachment> attachments, ISet<string> invalid)
60 {
61 IdentitySummaryFormatter.KycSummaryResult Summary = IdentitySummaryFormatter.BuildKycSummaryFromProperties(mappedValues, process, attachments.Select(a => new IdentitySummaryFormatter.AttachmentInfo(a.FileName ?? string.Empty, a.ContentType)), CultureInfo.CurrentCulture, invalid);
62 KycOrderingComparer Comparer = KycOrderingComparer.Create(process);
63 Summary.Personal.Sort(Comparer.DisplayComparer);
64 Summary.Address.Sort(Comparer.DisplayComparer);
65 Summary.Attachments.Sort(Comparer.DisplayComparer);
66 Summary.CompanyInfo.Sort(Comparer.DisplayComparer);
67 Summary.CompanyAddress.Sort(Comparer.DisplayComparer);
68 Summary.CompanyRepresentative.Sort(Comparer.DisplayComparer);
69 List<KycSummarySection> Sections = new List<KycSummarySection>(6)
70 {
71 new KycSummarySection(Personal, Summary.Personal.ToList()),
72 new KycSummarySection(Address, Summary.Address.ToList()),
73 new KycSummarySection(Attachments, Summary.Attachments.ToList()),
74 new KycSummarySection(CompanyInfo, Summary.CompanyInfo.ToList()),
75 new KycSummarySection(CompanyAddress, Summary.CompanyAddress.ToList()),
76 new KycSummarySection(CompanyRepresentative, Summary.CompanyRepresentative.ToList())
77 };
78 return new KycSummaryModel(Sections);
79 }
80 }
81}
Custom XMPP Protocol Properties.
Definition: Constants.cs:322
const string BirthYear
Birth Year
Definition: Constants.cs:454
const string BirthMonth
Birth Month
Definition: Constants.cs:449
A set of never changing property constants and helpful values.
Definition: Constants.cs:24
Captures the result of an application review returned from backend services.
Builds friendly, localized summaries for identity-like data from mapped properties and attachments....
static KycSummaryResult BuildKycSummaryFromProperties(IEnumerable< Property > Properties, KycProcess Process, IEnumerable< AttachmentInfo >? Attachments=null, CultureInfo? Culture=null, ISet< string >? InvalidMappings=null)
Build a KYC-oriented summary (Personal, Address, Attachments) from mapped properties.
Contains a local reference to a KYC process.
Definition: KycReference.cs:22
ApplicationReview? ApplicationReview
Latest backend review for this application, if any.
Represents a parsed KYC process with pages, fields, and current values.
Definition: KycProcess.cs:11
class Photo(byte[] Binary, int Rotation, Attachment? Attachment)
Class containing information about a photo.
Definition: Photo.cs:10
class Get(ISimulationNode Parent, Model Model)
Gets content to a topic.
Definition: Get.cs:21