Exemplo n.º 1
0
        public static GitHubStats MappToStats(GitHubProfile profile, IEnumerable <GitHubRepos> repos)
        {
            GitHubStats result = new GitHubStats();

            if (profile != null)
            {
                result.name                = profile.login;
                result.url_git             = profile.url;
                result.number_repositories = profile.public_repos;
                result.location            = profile.location;
                result.created_at          = profile.created_at;
                result.updated_at          = profile.updated_at;
            }
            if (repos.Count() > 0)
            {
                foreach (var repo in repos)
                {
                    GitHubRepoStats repoStat = new GitHubRepoStats();
                    repoStat.name           = repo.name;
                    repoStat.url_repository = repo.html_url;
                    repoStat.created_at     = repo.created_at;
                    repoStat.updated_at     = repo.updated_at;
                    result.repos.Add(repoStat);
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        public void Email()
        {
            var item = new GitHubProfile();
            var data = StringHelper.ValidString();

            item.Email = data;
            Assert.AreEqual <string>(data, item.Email);
        }
Exemplo n.º 3
0
        public void Login()
        {
            var item = new GitHubProfile();
            var data = StringHelper.ValidString();

            item.Login = data;
            Assert.AreEqual <string>(data, item.Login);
        }
Exemplo n.º 4
0
        public void Id()
        {
            var random = new Random();
            var item   = new GitHubProfile();
            var data   = random.Next();

            item.Id = data;
            Assert.AreEqual <int>(data, item.Id);
        }
Exemplo n.º 5
0
        public IActionResult Search(String userName)
        {
            List <GitHubRepo> repoList = new List <GitHubRepo>();
            GitHubRepo        repo     = null;

            try
            {
                if (string.IsNullOrEmpty(userName))
                {
                    throw new InvalidOperationException("EmptyInput");
                }
                GitHubRequestHandler handler = new GitHubRequestHandler();
                if (!string.IsNullOrWhiteSpace(userName))
                {
                    String url      = "https://api.github.com/users/" + userName + "/repos";
                    var    releases = handler.GetReleases(url);
                    //List out the retreived releases
                    foreach (JObject release in releases.Children())
                    {
                        Console.WriteLine("name: {0}", release.GetValue("name"));
                        Console.WriteLine("fullname: {0}", release.GetValue("full_name"));
                        Console.WriteLine();
                        repo         = JsonConvert.DeserializeObject <GitHubRepo>(release.ToString(Newtonsoft.Json.Formatting.None));
                        repo.git_url = repo.git_url.Substring(6, repo.git_url.Length - 6);
                        repoList.Add(repo);
                    }

                    GitHubProfile profile = handler.GetReleases1("https://api.github.com/users/" + userName);


                    Console.WriteLine("login: {0}", profile.login);
                    Console.WriteLine("name: {0}", profile.name);
                    ViewData["accountName"] = profile.login;
                    ViewData["date"]        = DateTime.Parse(profile.updated_at).ToString();
                    ViewData["followers"]   = profile.followers;
                    ViewData["following"]   = profile.following;

                    return(View(repoList));
                }
                else
                {
                    Index();
                }
            }catch (Exception e) {}



            return(View("404"));
        }
Exemplo n.º 6
0
        public async Task <IActionResult> GetProfile()
        {
            GitHubProfile result = new GitHubProfile();

            try
            {
                result = await _gitHubService.GetProfile();

                return(Ok(result));
            }
            catch (Exception ex)
            {
                throw new Utils.HttpStatusCodeException(HttpStatusCode.InternalServerError, ex.ToString());
            }
        }
Exemplo n.º 7
0
        private bool Login(GitHubProfile profile)
        {
            var newUser  = false;
            var register = new RegisterModel()
            {
                Email          = profile.Email,
                NameIdentifier = string.Format("github{0}", profile.Id),
                UserName       = profile.Name,
            };

            var      source = new DomainSource();
            UserData user   = null;

            if (!string.IsNullOrWhiteSpace(register.NameIdentifier) && null != (user = source.GetUserByNameIdentifier(Application.Default.Identifier, register.NameIdentifier)))
            {
                user.LastLoggedInOn = DateTime.UtcNow;
                user.LastActivityOn = DateTime.UtcNow;

                source.Update(user);
            }
            else if (!string.IsNullOrWhiteSpace(register.Email) && null != (user = source.GetUserByEmail(Application.Default.Identifier, register.Email)))
            {
                user.LastLoggedInOn = DateTime.UtcNow;
                user.LastActivityOn = DateTime.UtcNow;
                user.NameIdentifier = register.NameIdentifier;

                source.Update(user);
            }
            else
            {
                var provider = new TableMembershipProvider();
                MembershipCreateStatus status;
                provider.CreateUser(register.UserName, Guid.NewGuid().ToString(), register.Email, null, null, true, register.NameIdentifier, out status);
                if (status == MembershipCreateStatus.Success)
                {
                    log.Log("New user signed up.");
                    newUser = true;
                }
                else
                {
                    log.Log(string.Format("New user failed to signed up; status: '{0}'", status));
                }
            }

            FormsAuthentication.SetAuthCookie(register.Email, true);

            return(newUser);
        }
Exemplo n.º 8
0
        public async Task <GitHubProfile> GetProfile()
        {
            GitHubProfile result = new GitHubProfile();
            var           uri    = _config["GitHub:GithubProfileUri"];

            try
            {
                var response = await _httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead);

                response.EnsureSuccessStatusCode();
                var data = await response.Content.ReadAsStringAsync();

                result = JsonConvert.DeserializeObject <GitHubProfile>(data);
            }
            catch (Exception ex)
            {
                throw  new HttpStatusCodeException(HttpStatusCode.InternalServerError, ex.ToString());
            }
            return(result);
        }