Exemplo n.º 1
0
        public Desenvolvedor Post(Desenvolvedor desenvolvedor)
        {
            var desenv = _desenvolvedorRepository.GetByUserName(desenvolvedor.UserName);

            if (desenv == null)
            {
                desenv = desenvolvedor;
                //obter dados do github

                HttpClient client = new HttpClient();
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36");

                var textResposta = client.GetStringAsync($"https://api.github.com/users/{desenvolvedor.UserName}").Result;
                var resposta     = JsonConvert.DeserializeObject <dynamic>(textResposta);

                desenv = new Desenvolvedor()
                {
                    UserName    = desenvolvedor.UserName,
                    Avatar      = resposta.avatar_url,
                    Bio         = resposta.bio,
                    Nome        = resposta.name,
                    Email       = resposta.email,
                    Empresa     = resposta.company,
                    Blog        = resposta.blog,
                    Localizacao = resposta.location
                };

                _desenvolvedorRepository.Add(desenv);
            }

            return(desenv);
        }
        public async Task <Desenvolvedor> Add(Desenvolvedor entity)
        {
            if (!ExecuteValidation(new DesenvolvedorValidation(), entity))
            {
                return(null);
            }

            await _desenvolvedorRepository.Add(entity);

            return(entity);
        }