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