/// <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);
        }