private async Task <PublicHousingAuthorityInfo> GetPublicHousingAuthorityInfoAsync(string city, string state)
        {
            ArcGisBaseUri uri       = new ArcGisBaseUri("VTyQ9soqVukalItT", "PublicHousingAuthorities");
            var           queryTask = new QueryTask(new Uri(uri.ToString()));

            var timeWindow = new Esri.ArcGISRuntime.Data.TimeExtent(DateTime.Now.Subtract(new TimeSpan(0, 5, 0, 0)), DateTime.Now);

            var queryParams = new Esri.ArcGISRuntime.Tasks.Query.Query(timeWindow);

            queryParams.Where     = String.Format("(STD_CITY = '{0}' AND STD_ST = '{1}')", city, state);
            queryParams.OutFields = OutFields.All;

            QueryResult queryResult = await queryTask.ExecuteAsync(queryParams);

            var attributes = queryResult.FeatureSet.Features[0].Attributes;

            return(new PublicHousingAuthorityInfo
            {
                Name = (string)attributes["FORMAL_PARTICIPANT_NAME"],
                Address = (string)attributes["STD_ADDR"],
                Phone = (string)attributes["EXEC_DIR_PHONE"],
                City = (string)attributes["STD_CITY"],
                State = (string)attributes["STD_ST"],
                PostalCode = (string)attributes["STD_ZIP5"],
                Email = (string)attributes["EXEC_DIR_EMAIL"]
            });
        }
        public static dynamic RequestByCoordinate(string apiId, string apiName, string latitude, string longitude)
        {
            ArcGisBaseUri baseUri = new ArcGisBaseUri(apiId, apiName);
            string        url     = String.Format("{0}query?where=1%3D1&objectIds=&time=&geometry=%7B%22x%22%3A+{1}%2C+%22y%22%3A+{2}%2C+%22spatialReference%22%3A+%7B%22wkid%22%3A+4326%7D%7D&geometryType=esriGeometryPoint&inSR=&spatialRel=esriSpatialRelIntersects&distance=&units=esriSRUnit_Meter&outFields=*&returnGeometry=false&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&quantizationParameters=&f=pjson&token=", baseUri.ToString(), longitude, latitude);

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                using (StreamReader stream = new StreamReader(response.GetResponseStream()))
                {
                    string jsonResponse = stream.ReadToEnd();
                    var    result       = JsonConvert.DeserializeObject <dynamic>(jsonResponse);

                    return(result["features"][0]["attributes"]);
                }
        }