Пример #1
0
        public static GitHubSearchReponse Search(string searchString)
        {
            GitHubSearchReponse result = null;

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                string requestUrl = string.Format(ConfigurationManager.AppSettings["GitHubSearchApiUrl"], HttpUtility.UrlEncode(searchString));

                using (var client = new WebClient())
                {
                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;

                    client.Headers.Clear();

                    client.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
                    client.Headers.Add("Accept-Encoding", "deflate, br");
                    client.Headers.Add("Accept-Language", "en-US,en;q=0.9,ru;q=0.8,he;q=0.7");
                    client.Headers.Add("Cache-Control", "max-age=0");
                    client.Headers.Add("Host", "api.github.com");
                    client.Headers.Add("Upgrade-Insecure-Requests", "1");
                    client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36");

                    string responseString = Encoding.UTF8.GetString(client.DownloadData(requestUrl));

                    result = GitHubSearchReponse.FromJson(responseString);
                }
            }

            return(result);
        }
Пример #2
0
        public SearchResult(string clientId, GitHubSearchReponse v) : this()
        {
            if (v != null && v.total_count > 0)
            {
                this.Count = v.total_count;

                var favoriteRepositories = FavoritesStorage.GetRepositories(clientId);

                foreach (var item in v.items)
                {
                    var repository = new Repository(item);

                    repository.IsFavorite = favoriteRepositories.Exists(f => f.Key == repository.Key);

                    this.Repositories.Add(repository);
                }
            }
        }