public List <ReposModel> Save(string Avatar, string Full_name) { var context = HttpContext.Current; ReposModel reposModel = new ReposModel(); reposModel.Avatar = Avatar; reposModel.Full_name = Full_name; List <ReposModel> reposModelistl = new List <ReposModel>(); if (context.Session["SavedBookmarks"] != null) { reposModelistl = (List <ReposModel>)context.Session["SavedBookmarks"]; if (CheckReposToSession(reposModel, reposModelistl)) { reposModelistl.Add(reposModel); } } else { reposModelistl.Add(reposModel); } context.Session["SavedBookmarks"] = reposModelistl; return(reposModelistl); }
public List <ReposModel> Search(string name) { List <ReposModel> repos = new List <ReposModel>(); string avatar_url = ""; string full_name = ""; string url = "https://api.github.com/search/repositories?q=" + name; ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; HttpWebRequest webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest; if (webRequest != null) { webRequest.Method = "GET"; webRequest.UserAgent = "Anything"; webRequest.ServicePoint.Expect100Continue = false; try { using (StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream())) { string reader = responseReader.ReadToEnd(); var o = Newtonsoft.Json.Linq.JObject.Parse(reader); int count = o["items"].Count(); for (int i = 0; i < count; i++) { var items = o["items"][i]; if (items != null) { full_name = items["full_name"].ToString(); var owner = items["owner"]; if (owner != null) { avatar_url = (owner["avatar_url"].ToString()); } ReposModel userModel = new ReposModel(); userModel.Avatar = avatar_url; userModel.Full_name = full_name; repos.Add(userModel); } } } } catch (Exception exp) { return(null); } } return(repos); }
public bool CheckReposToSession(ReposModel reposModel, List <ReposModel> reposModelistl) { bool resultChek = true; reposModelistl.ForEach(repos => { if (repos.Avatar == reposModel.Avatar && repos.Full_name == reposModel.Full_name) { resultChek = false; } }); return(resultChek); }
public async Task <IHttpActionResult> IntegrarAPIGitHub() { try { var _configuration = ConfigurationManager.AppSettings; List <ReposModel> repositorio = new List <ReposModel>(); using (var client = new HttpClient()) { client.DefaultRequestHeaders.UserAgent.TryParseAdd("request"); var url = string.Format("https://api.github.com/orgs/{0}/repos", _configuration[$"GitHub:Repos"]); HttpResponseMessage response = client.GetAsync(url).Result; response.EnsureSuccessStatusCode(); string conteudo = response.Content.ReadAsStringAsync().Result; dynamic resultado = JsonConvert.DeserializeObject(conteudo); foreach (var item in resultado) { ReposModel repos = new ReposModel(); repos.NomeCompleto = item.full_name; repos.DescricaoRepositorio = item.description; repos.Imagem = item.owner.avatar_url; repos.DataCriacao = item.created_at; repos.linguagemRepositorio = item.language.ToString(); repositorio.Add(repos); } return(Ok(repositorio.Where(b => b.linguagemRepositorio.Equals("C#")).OrderBy(a => a.DataCriacao).Take(5).ToList())); } } catch (Exception e) { return(BadRequest(e.Message)); } }