Пример #1
0
        private void LoadExchangersPositionInfo()
        {
            //gets data from GoogleMaps API, but I can use only geodata(GPS), without details about object
            //method gets first 20 objects
            const string API_KEY = "AIzaSyDX98l2EABQiA28ogGNFHSjVlGfVF7DdlY";
            string       strUri  = "https://maps.googleapis.com/maps/api/place/textsearch/xml?query=банк+минск&language=rus&key=" + API_KEY;


            var objRequest = HttpWebRequest.CreateHttp(strUri);

            objRequest.Method      = "GET";
            objRequest.ContentType = new ContentType("application/json").ToString();
            HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
            XmlDocument     objXml      = new XmlDocument();

            using (Stream objResponseStream = objResponse.GetResponseStream()) {
                using (var objReader = new StreamReader(objResponseStream)) {
                    string strResponse = objReader.ReadToEnd();
                    objXml.LoadXml(strResponse);

                    XmlNodeList objNodes = objXml.GetElementsByTagName("result");
                    using (var objProvider = new BankProvider()) {
                        var objBank = objProvider.GetBankByName("Альфа-Банк");
                        foreach (XmlNode node in objNodes)
                        {
                            double dX         = Convert.ToDouble(node["geometry"]["location"]["lat"].InnerText);
                            double dY         = Convert.ToDouble(node["geometry"]["location"]["lng"].InnerText);
                            string strPlaceId = node["place_id"].InnerText;
                            //if bank office with current GooglePlaceId exists in base - break
                            if (objProvider.GetExchangerByPlaceId(strPlaceId) != null)
                            {
                                break;
                            }

                            var objExchanger = new CurrencyExchanger()
                            {
                                Bank   = objBank,
                                X      = dX,
                                Y      = dY,
                                GMapId = strPlaceId
                            };
                            objProvider.AddExchanger(objExchanger);
                        }
                    }
                }
            }
        }