/// <summary> /// Gets the achievements. /// </summary> /// <returns>The achievements.</returns> /// <param name="account">The developer account at issuer.</param> public override IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account) { var achievements = new List <Achievement> (); var baseUrl = GetBaseUrl(account); var content = GetContent(account); CQ dom = content; var stats = dom[".stat-number"]; AddAchievement(achievements, "Packages", stats[0].InnerText, baseUrl); AddAchievement(achievements, "Packages downloads", stats[1].InnerText, baseUrl); var downloads = dom[".downloads"]; if (downloads.Count() > 0) { var maxSingle = downloads.OrderByDescending(d => ParseValue(d.InnerText)).First(); AddAchievement( achievements, "Max single package downloads", maxSingle.InnerText, "https://www.nuget.org/packages/{0}".With( maxSingle.ParentNode.PreviousSibling.PreviousSibling.PreviousElementSibling.FirstChild.InnerText)); } return(achievements); }
/// <summary> /// Gets the achievements. /// </summary> /// <returns>The achievements.</returns> /// <param name="account">The developer account at issuer.</param> public override IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account) { var achievements = new List <Achievement> (); var userName = account.Username; var user = GetUser(userName); if (user != null) { var repoRepository = new RepositoryRepository(m_requestProxy); var repos = repoRepository.List(userName); var ownRepos = repos.Where(r => !r.Fork && r.Owner.Login.Equals(userName, StringComparison.OrdinalIgnoreCase)); Func <string, GitHubAchievementBuilder> c = (name) => new GitHubAchievementBuilder(name, account, Issuer); Action <Achievement> a = (achievement) => achievements.Add(achievement); a(c("Followers").User(user).Property(u => u.Followers).Link("/followers")); a(c("Own repositories").Repos(ownRepos).Count().Link("?tab=repositories")); a(c("Own repositories forks").Repos(ownRepos).Sum(r => r.Forks).Link("?tab=repositories")); a(c("Max single own repository forks").Repos(ownRepos).Max(r => r.ForksCount).LinkMax("/{0}/network/members", r => r.Name)); a(c("Own repositories stars").Repos(ownRepos).Sum(r => r.StargazersCount).Link("?tab=repositories")); a(c("Max single own repository stars").Repos(ownRepos).Max(r => r.StargazersCount).LinkMax("/{0}/stargazers", r => r.Name)); } return(achievements); }
/// <summary> /// Gets the achievements. /// </summary> /// <returns>The achievements.</returns> /// <param name="account">The developer account at issuer.</param> public override IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account) { var result = new List <Achievement> (); var response = GetResponse(account); var link = response.Request.Resource; var scoreAchievement = new Achievement() { Name = "Score", Issuer = Issuer, Value = response.Data.TotalScore, Link = link }; result.Add(scoreAchievement); var achievementsEarnedAchievement = new Achievement() { Name = "Achievements earned", Issuer = Issuer, Value = response.Data.Achievements.Count(a => a.DateEarned.HasValue), Link = link }; result.Add(achievementsEarnedAchievement); return(result); }
/// <summary> /// Gets the achievements. /// </summary> /// <returns>The achievements.</returns> /// <param name="account">The developer account at issuer.</param> public override IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account) { var achievements = new List <Achievement>(); var user = GetUser(account); if (user != null) { var answers = m_client.Users.GetAnswers("stackoverflow", new int[] { user.UserId }, "!9f8L7FuTn", pagesize: 1, sort: Sort.Votes).Result.Data.Items; if (answers != null) { AddAchievement(achievements, "Reputation", user.Reputation, "{0}?tab=reputation".With(user.Link)); var maxSingleAnswerScore = answers.OrderByDescending(a => a.Score).FirstOrDefault(); if (maxSingleAnswerScore != null) { AddAchievement(achievements, "Max single answer score", maxSingleAnswerScore.Score, maxSingleAnswerScore.Link); } AddAchievement(achievements, "Total answers", user.AnswerCount, user.Link); AddAchievement(achievements, "Total questions", user.QuestionCount, user.Link); } } return(achievements); }
public IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account) { return(new List <Achievement> () { new Achievement() { Name = "Achievement Three" } }); }
/// <summary> /// Initializes a new instance of the /// <see cref="DevAchievements.Infrastructure.AchievementProviders.GitHub.GitHubAchievementBuilder"/> class. /// </summary> /// <param name="name">Name.</param> /// <param name="account">Account.</param> /// <param name="issuer">Issuer.</param> public GitHubAchievementBuilder(string name, DeveloperAccountAtIssuer account, AchievementIssuer issuer) { m_account = account; m_achievement = new Achievement() { Name = name, Issuer = issuer, Link = "http://github.com/{0}".With(m_account.Username) }; }
/// <summary> /// Gets the response. /// </summary> /// <returns>The response.</returns> /// <param name="account">Account.</param> private static IRestResponse <VsaResponse> GetResponse(DeveloperAccountAtIssuer account) { var client = new RestClient("http://channel9.msdn.com/niners"); var request = new RestRequest("{0}/achievements/visualstudio".With(account.Username)); request.AddParameter("json", true); var response = client.Get <VsaResponse> (request); return(response); }
/// <summary> /// Gets the user. /// </summary> /// <returns>The user.</returns> /// <param name="account">Account.</param> private User GetUser(DeveloperAccountAtIssuer account) { User user = null; var result = m_client.Users.GetAll("stackoverflow", "!-.CabxAv7Udo", inname: account.Username).Result; if (result.Data != null) { user = result.Data.Items.FirstOrDefault(); } return(user); }
/// <summary> /// Gets the name of the achievement issuer. /// </summary> /// <returns>The achievement issuer name.</returns> /// <param name="developerAccountAtIssuer">Developer account at issuer.</param> public static string GetAchievementIssuerName(this DeveloperAccountAtIssuer developerAccountAtIssuer) { var service = new AchievementIssuerService(); var issuer = service.GetAchievementIssuerById(developerAccountAtIssuer.AchievementIssuerId); if (issuer == null) { return(String.Empty); } return(issuer.Name); }
/// <summary> /// Gets the achievements. /// </summary> /// <returns>The achievements.</returns> /// <param name="account">The developer account at issuer.</param> public override IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account) { var achievements = new List <Achievement> (); var issuer = SupportedIssuers.First(i => i.Name.Equals(account.AchievementIssuerId)); AddAchievement(achievements, "Test 1", 1 + s_calls, "http://localhost", issuer); AddAchievement(achievements, "Test 2", 2 + s_calls + 2, "http://localhost", issuer); AddAchievement(achievements, "Test 3", 3, "http://localhost", issuer); s_calls++; return(achievements); }
/// <summary> /// Gets the content. /// </summary> /// <returns>The content.</returns> /// <param name="account">Account.</param> private static string GetContent(DeveloperAccountAtIssuer account) { var client = new WebClient(); try { return(client.DownloadString(GetBaseUrl(account))); } catch (WebException ex) { LogService.Debug("NuGetAchievementProvider: error getting URL '{0}' content: {1}.", GetBaseUrl(account), ex.Message); return(null); } }
public IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account) { if (account.Username.Equals("DeveloperWithAchievements")) { return(new List <Achievement> () { new Achievement() { Name = "Achievement One", Issuer = new AchievementIssuer("Issuer One") } }); } return(new List <Achievement> ()); }
/// <summary> /// Check if developer account exists at issuer. /// </summary> /// <param name="account">The developer account at issuer.</param> public override bool Exists(DeveloperAccountAtIssuer account) { return(true); }
/// <summary> /// Gets the base URL. /// </summary> /// <returns>The base URL.</returns> /// <param name="account">Account.</param> private static string GetBaseUrl(DeveloperAccountAtIssuer account) { return("https://www.nuget.org/profiles/{0}".With(account.Username)); }
/// <summary> /// Check if developer account exists at issuer. /// </summary> /// <param name="account">The developer account at issuer.</param> public override bool Exists(DeveloperAccountAtIssuer account) { return(GetUser(account.Username) != null); }
/// <summary> /// Check if developer account exists at issuer. /// </summary> /// <param name="account">The developer account at issuer.</param> public override bool Exists(DeveloperAccountAtIssuer account) { return(!String.IsNullOrEmpty(GetContent(account))); }
/// <summary> /// Gets the achievements. /// </summary> /// <returns>The achievements.</returns> /// <param name="account">The developer account at issuer.</param> public abstract IList <Achievement> GetAchievements(DeveloperAccountAtIssuer account);
/// <summary> /// Check if developer account exists at issuer. /// </summary> /// <param name="account">The developer account at issuer.</param> public abstract bool Exists(DeveloperAccountAtIssuer account);
/// <summary> /// Check if developer account exists at issuer. /// </summary> /// <param name="account">The developer account at issuer.</param> public override bool Exists(DeveloperAccountAtIssuer account) { return(GetResponse(account).StatusCode == HttpStatusCode.OK); }