Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
GetApplicationAttributes.cs
1using System;
2using System.Collections.Generic;
3using System.Threading.Tasks;
4using System.Xml;
5using Waher.Content;
8using Waher.Script;
11
13{
18 {
23 : base("Legal/GetApplicationAttributes",
24 new KeyValuePair<Type, Expression>(typeof(Dictionary<string, object>), new Expression(jsonPattern)),
25 new KeyValuePair<Type, Expression>(typeof(XmlDocument), new Expression(xmlPattern)))
26 {
27 }
28
29 private static readonly string jsonPattern = Resources.LoadResourceAsText(typeof(GetApplicationAttributes).Namespace + ".JSON.GetApplicationAttributes.req");
30 private static readonly string xmlPattern = Resources.LoadResourceAsText(typeof(GetApplicationAttributes).Namespace + ".XML.GetApplicationAttributes.req");
31
40 public override async Task POST(HttpRequest Request, HttpResponse Response, Dictionary<string, IElement> Parameters)
41 {
43
44 List<string> Required = new List<string>();
45 bool LocalOrTest = string.IsNullOrEmpty(DomainConfiguration.Instance?.Domain);
46 bool PeerReview = PeerReviewConfiguration.Instance?.AllowPeerReview ?? false;
47
48 if (PeerReview)
49 {
50 if (PeerReviewConfiguration.Instance.RequireFirstName)
51 Required.Add("FIRST");
52
53 if (PeerReviewConfiguration.Instance.RequireMiddleName)
54 Required.Add("MIDDLE");
55
56 if (PeerReviewConfiguration.Instance.RequireLastName)
57 Required.Add("LAST");
58
59 if (PeerReviewConfiguration.Instance.RequirePersonalNumber)
60 Required.Add("PNR");
61
62 if (PeerReviewConfiguration.Instance.RequireAddress)
63 Required.Add("ADDR");
64
65 if (PeerReviewConfiguration.Instance.RequirePostalCode)
66 Required.Add("ZIP");
67
68 if (PeerReviewConfiguration.Instance.RequireArea)
69 Required.Add("AREA");
70
71 if (PeerReviewConfiguration.Instance.RequireCity)
72 Required.Add("CITY");
73
74 if (PeerReviewConfiguration.Instance.RequireRegion)
75 Required.Add("REGION");
76
77 if (PeerReviewConfiguration.Instance.RequireCountry)
78 Required.Add("COUNTRY");
79
80 if (PeerReviewConfiguration.Instance.RequireNationality)
81 Required.Add("NATIONALITY");
82
83 if (PeerReviewConfiguration.Instance.RequireGender)
84 Required.Add("GENDER");
85
86 if (PeerReviewConfiguration.Instance.RequireBirthDate)
87 {
88 Required.Add("BDAY");
89 Required.Add("BMONTH");
90 Required.Add("BYEAR");
91 }
92 }
93 else if (LocalOrTest)
94 {
95 PeerReview = true;
96 Required.Add("FIRST");
97 Required.Add("LAST");
98 Required.Add("PNR");
99 Required.Add("ADDR");
100 Required.Add("ZIP");
101 Required.Add("CITY");
102 Required.Add("COUNTRY");
103 }
104
106 {
107 { "peerReview", PeerReview },
108 { "nrReviewers", PeerReviewConfiguration.Instance?.NrReviewersToApprove ?? (LocalOrTest ? 2 : 0) },
109 { "nrPhotos", PeerReviewConfiguration.Instance?.NrPhotosRequired ?? (LocalOrTest ? 1 : 0)},
110 { "iso3166", PeerReviewConfiguration.Instance?.RequireIso3166Compliance ?? LocalOrTest },
111 { "Required", Required.ToArray() }
112 };
113
114 await Response.Return(Result);
115 }
116 }
117}
A Named dictionary is a dictionary, with a local name and a namespace. Use it to return content that ...
Static class managing loading of resources stored as embedded resources or in content files.
Definition: Resources.cs:15
static string LoadResourceAsText(string ResourceName)
Loads a text resource from an embedded resource.
Definition: Resources.cs:96
static DomainConfiguration Instance
Current instance of configuration.
Represents an HTTP request.
Definition: HttpRequest.cs:18
Represets a response of an HTTP client request.
Definition: HttpResponse.cs:21
async Task Return(object Object)
Returns an object to the client. This method can only be called once per response,...
Class managing a script expression.
Definition: Expression.cs:39
Provides the user configuration options regarding peer-review of new legal identities.
static PeerReviewConfiguration Instance
Current instance of configuration.
Abstract base class for agent resources supporting the POST method.
static AccountUser AssertUserAuthenticated(HttpRequest Request)
Makes sure the request is made by an authenticated API user.
const string AgentNamespace
https://waher.se/Schema/BrokerAgent.xsd