internal static GeoenrichmentResult FromJson(string json)
 {
     var result = new GeoenrichmentResult();
     var jObject = JObject.Parse(json);
     if (jObject["results"] != null && jObject["results"].Type == JTokenType.Array)
     {
         foreach (var r in jObject["results"])
         {
             if (r["value"] != null && r["value"].Type == JTokenType.Object)
             {
                 var v = r["value"];
                 result.Results.Add(GeoenrichmentResultItem.FromJson(v.ToString()));
             }
         }
     }
     if (jObject["messages"] != null && jObject["messages"].Type == JTokenType.Array)
     {
         foreach (var m in jObject["messages"])
             result.Messages.Add(GeoenrichmentMessage.FromJson(m.ToString()));
     }
     return result;
 }
 internal GeoenrichmentEventArgs(GeoenrichmentResult result, object token)
 {
     Result = result;
     UserToken = token;
 }