Ejemplo n.º 1
0
        /// <summary>
        /// This function is used to parse the XML response come as api request result
        /// </summary>
        /// <param name="responseString">Response string from api</param>
        /// <returns>it will return the parsed list of company name and address to SearchQuerySplitter</returns>
        private IList <string> XmlParsing(string responseString)//TODO: camel casing
        {
            XmlNodeList pageToken;

            nextPageResult = new XmlDocument();

            _mResponseDoc.LoadXml(responseString);
            for (int i = 0; i <= 1; i++)
            {
                pageToken = _mResponseDoc.GetElementsByTagName("next_page_token");
                var lastPageToken = pageToken[pageToken.Count - 1].InnerText;
                GooggleApiService googleapiservice = new GooggleApiService();
                var response = googleapiservice.RequestSender(UrlToBePassed + "&pagetoken=" + lastPageToken);
                nextPageResult.LoadXml(response);
                foreach (XmlNode childEl in nextPageResult.DocumentElement.ChildNodes)
                {
                    var newNode = _mResponseDoc.ImportNode(childEl, true);
                    _mResponseDoc.DocumentElement.AppendChild(newNode);
                }
            }
            XmlNodeList nameList    = _mResponseDoc.GetElementsByTagName("name");
            XmlNodeList addressList = _mResponseDoc.GetElementsByTagName("formatted_address");

            foreach (XmlNode node in nameList)
            {
                _mCompanyNames.Add(node.InnerText);
            }

            foreach (XmlNode node in addressList)
            {
                _mCompanyAddress.Add(node.InnerText);
            }
            return(Result());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This function is splitting the location enter by user ,
        /// in the formate in wich it is passed as Url to api
        /// </summary>
        /// <param name="searchQuery">Location enter by the user</param>
        /// <returns></returns>
        private IList <string> SearchQuerySplitter(string searchQuery)//TODO: camel case
        {
            string locationSplitter   = string.Empty;;
            string urlFirstPart       = "https://maps.googleapis.com/maps/api/place/textsearch/xml?query=IT+companies+in+";
            string googlePlacesApikey = "&key=AIzaSyCIFY1-JBm_cNht8Lfuncb4jCeXPXWubnA";

            string[] splittedWord = searchQuery.Split(' ');
            foreach (var word in splittedWord)
            {
                locationSplitter = locationSplitter + word + "+";
            }
            UrlToBePassed = urlFirstPart + locationSplitter + googlePlacesApikey;

            GooggleApiService googleapiservice = new GooggleApiService();
            var _mResponseString = googleapiservice.RequestSender(UrlToBePassed); //Here we are calling a method in dataAccessLayer

            return(XmlParsing(_mResponseString));
        }