Exemplo n.º 1
0
        private static void DisplayResults(SerpRank rank, string query)
        {
            if (rank == null)
            {
                Console.Write(string.Format("No results found in Top {0} results.", GoogleSearchAPI.MAX_NUMBER_RESULTS_TO_CHECK));
                return;
            }

            string output = string.Format("Searcn term: {0}\nHighest rank: {1}\nSite URL: {2}",
                                          query, rank.HighestRankNumber, rank.SiteUrl);

            Console.WriteLine(output);
        }
Exemplo n.º 2
0
        public static async Task <SerpRank> GetRank(string query)
        {
            if (String.IsNullOrEmpty(query) || _rankNumber > MAX_NUMBER_RESULTS_TO_CHECK)
            {
                return(null);
            }

            SerpRank rank = null;

            try
            {
                using (_client)
                {
                    Debug.Write("Callout made!!!!!!");
                    string requestUrl = string.Format("{0}key={1}&cx={2}&q={3}&start={4}",
                                                      _apiUrl, _apiKey, _searchEngineId, Uri.EscapeDataString(query), _rankNumber.ToString());

                    HttpResponseMessage response = await _client.GetAsync(requestUrl);

                    if (response.IsSuccessStatusCode)
                    {
                        string result = await response.Content.ReadAsStringAsync();

                        RootObject rootResult = JsonConvert.DeserializeObject <RootObject>(result);
                        rank = FindHighestRank(rootResult);

                        if (rank == null || rank.HighestRankNumber == 0)
                        {
                            await GetRank(query);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Debug.Write(e.Message);
            }

            return(rank);
        }
Exemplo n.º 3
0
        private static SerpRank FindHighestRank(RootObject rootResult)
        {
            if (rootResult == null || rootResult.items == null || rootResult.items.Count == 0)
            {
                return(null);
            }

            SerpRank highestRank = null;
            bool     matchFound  = false;
            int      resultIndex = 0;

            try
            {
                do
                {
                    Item item = rootResult.items[resultIndex];

                    if (item.link.ToLower().Contains(_siteUrl) ||
                        item.displayLink.ToLower().Contains(_siteUrl))
                    {
                        highestRank = new SerpRank();
                        highestRank.HighestRankNumber = _rankNumber;
                        highestRank.SiteUrl           = item.link;
                        matchFound = true;
                    }
                    else
                    {
                        resultIndex++;
                        _rankNumber++;
                    }
                } while (!matchFound && resultIndex < rootResult.items.Count);
            }
            catch (Exception e)
            {
                Debug.Write(e.Message);
            }

            return(highestRank);
        }