/// <summary> /// Effettua il parsing del JSON e popola la struttura /// </summary> /// <param name="json">Oggetto JSON di cui fare il parsing</param> public void ParseJSON(JObject json) { Account = ""; Breaches.Clear(); if (Utility.SafeTryGetJSONString(json, nameof(Account), out string accountValue)) { Account = accountValue; } if (Utility.SafeTryGetJSON(json, nameof(Breaches), out JToken breachesValue)) { JArray breachesArray = breachesValue.ToObject <JArray>(); foreach (JObject breachJson in breachesArray) { BreachInfo info = new BreachInfo(); info.ParseJSON(breachJson); Breaches.Add(info); } } }
private BreachInfo CreateBreachInfo(JObject jsonData) { BreachInfo info = new BreachInfo(); if (Utility.SafeTryGetJSONString(jsonData, "Name", out string dataString)) { info.Name = dataString; } if (Utility.SafeTryGetJSONString(jsonData, "Title", out dataString)) { info.Title = dataString; } if (Utility.SafeTryGetJSONString(jsonData, "Domain", out dataString)) { info.Domain = dataString; } if (Utility.SafeTryGetJSONString(jsonData, "BreachDate", out dataString)) { info.BreachDate = DateTime.Parse(dataString); } if (Utility.SafeTryGetJSONString(jsonData, "AddedDate", out dataString)) { info.AddedDate = DateTime.Parse(dataString); } if (Utility.SafeTryGetJSONString(jsonData, "ModifiedDate", out dataString)) { info.ModifiedDate = DateTime.Parse(dataString); } if (Utility.SafeTryGetJSONNumber(jsonData, "PwnCount", out double dataNumber)) { info.PwnCount = (int)dataNumber; } if (Utility.SafeTryGetJSONString(jsonData, "Description", out dataString)) { info.Description = dataString; } if (Utility.SafeTryGetJSONBool(jsonData, "IsVerified", out bool dataBoolean)) { info.IsVerified = dataBoolean; } if (Utility.SafeTryGetJSONBool(jsonData, "IsFabricated", out dataBoolean)) { info.IsFabricated = dataBoolean; } if (Utility.SafeTryGetJSONBool(jsonData, "IsSensitive", out dataBoolean)) { info.IsSensitive = dataBoolean; } if (Utility.SafeTryGetJSONBool(jsonData, "IsRetired", out dataBoolean)) { info.IsRetired = dataBoolean; } if (Utility.SafeTryGetJSONBool(jsonData, "IsSpamList", out dataBoolean)) { info.IsSpamList = dataBoolean; } if (Utility.SafeTryGetJSONString(jsonData, "LogoPath", out dataString)) { info.LogoPath = dataString; } if (jsonData.ContainsKey("DataClasses")) { JArray jsonClasses = jsonData["DataClasses"].ToObject <JArray>(); foreach (JToken token in jsonClasses) { info.DataClasses.Add(token.ToString()); } } return(info); }