private async static Task SetRepositoryScore( IActorStateManager stateManager, RepositoryScore repositoryScore) { await stateManager.SetStateAsync( RepositoryKey(repositoryScore.Repository), new CachedItem <RepositoryScore> { Data = repositoryScore }); }
private async static Task AddQueryToRepositoryScoreAsync( IActorStateManager stateManager, Repository repository, string query) { CachedItem <RepositoryScore> oldScore = await GetRepositoryScoreAsync(stateManager, repository); RepositoryScore newScore = oldScore != null? Serializer.DeepCopy(oldScore.Data) : new RepositoryScore(); newScore.Repository = repository; if (!newScore.FoundInQueries.Contains(query)) { newScore.FoundInQueries.Add(query); } await SetRepositoryScore(stateManager, newScore); }
public static float Calculate(RepositoryScore repositoryScore) { float score = 0; if (repositoryScore.IsStarredByUser) { score += 100; } score += repositoryScore.FollowingForkersCount * FOLLOWING_FORKER_BOOST; score += repositoryScore.FollowingStargazersCount * FOLLOWING_STARGAZER_BOOST; score += repositoryScore.FollowingWatchersCount * FOLLOWING_WATCHER_BOOST; score += repositoryScore.LanguageOverlap * LANGUAGE_OVERLAP_BOOST; score += repositoryScore.Repository.StargazersCount * STARGAZER_BOOST; score += repositoryScore.Repository.WatchersCount * WATCHESR_BOOST; score += repositoryScore.Repository.ForksCount * FORK_BOOST; return(score); }
private static RepositoryScore CreateRepositoryScore( RepositoryScore oldScore, Repository repository, UserInfo userInfo) { bool isStarredByUser = repository.Stargazers.Contains(userInfo.Login); int followingForkersCount = userInfo.Following.Intersect(repository.Forkers).Count(); int followingStargazersCount = userInfo.Following.Intersect(repository.Stargazers).Count(); List <string> foundInQueries = oldScore != null ? oldScore.FoundInQueries : new List <string>(); return(new RepositoryScore { Repository = repository, IsStarredByUser = isStarredByUser, FollowingForkersCount = followingForkersCount, FollowingStargazersCount = followingStargazersCount, FoundInQueries = foundInQueries }); }