示例#1
0
    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);
    }
示例#2
0
    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);
    }
示例#3
0
    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));
            }
        }