public static JArray GetCountries(this ILaenderSetting laenderSetting, string language) { if (language == null) { throw new ArgumentNullException(nameof(language)); } language = language.ToLowerInvariant(); if (!WebHelper.SupportedLanguages.Contains(language)) { language = WebHelper.DefaultLanguage; } var countries = new JArray(); var allCountries = (JObject)JsonConvert.DeserializeObject(laenderSetting.Laender); // ReSharper disable once PossibleInvalidCastExceptionInForeachLoop foreach (JProperty prop in allCountries.Children()) { var translated = JsonHelper.FindTokenValue <string>(prop.Value, language); var canOnboardWithPassport = JsonHelper.FindTokenValue <bool>(prop.Value, "canOnboardWithPassport"); var canOnboardWithIdentityCard = JsonHelper.FindTokenValue <bool>(prop.Value, "canOnboardWithIdentityCard"); if (string.IsNullOrEmpty(translated)) { translated = prop.Name; } countries.Add(new JObject { { "code", prop.Name }, { "name", translated }, { "canOnboardWithPassport", canOnboardWithPassport }, { "canOnboardWithIdentityCard", canOnboardWithIdentityCard } }); } return(countries); }
public static JObject VerifyCaptcha(CaptchaVerificationData data, JObject settings) { Log.Debug("SecurityHelper:VerifyCaptcha: {data}", JsonConvert.SerializeObject(data, Formatting.Indented)); var result = new JObject(); try { var captcha = JsonHelper.FindTokenValue <JObject>(settings, "captcha"); var verifyUrl = JsonHelper.GetByPath <string>(captcha, "server.verifyUrl"); var secret = JsonHelper.GetByPath <string>(captcha, "server.secret"); var verifyParams = $"secret={secret}&response={data.Token}"; if (!string.IsNullOrEmpty(data.Ip)) { verifyParams += $"&remoteip={data.Ip}"; } using (var client = new WebClient()) { client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; var response = client.UploadString(verifyUrl, verifyParams); if (!string.IsNullOrEmpty(response) && response.Contains("{")) { result.Add("verify", JsonConvert.DeserializeObject <JToken>(response)); } else { result.Add("verify", response); } } } catch (Exception ex) { Log.Error(ex, "Could not verify captcha"); } return(result); }