コード例 #1
0
        public IWorkEstimator Create(string accessToken, TeamInfo teamInfo)
        {
            teamInfo.Ensure().IsNotNull();

            GitHubClient client = CreateClient(accessToken, teamInfo);

            return(new GitHubWorkEstimator(client, teamInfo, loggerFactory.CreateLogger <GitHubWorkEstimator>()));
        }
コード例 #2
0
        public async Task AddTeamAsync(string ownerLogin, TeamInfo info, CancellationToken cancellationToken)
        {
            ownerLogin.Ensure(nameof(ownerLogin)).IsNotNullOrWhitespace();
            info.Ensure(nameof(info)).IsNotNull();
            cancellationToken.ThrowIfCancellationRequested();

            Member owner = this.context.Members.Where(item => item.MemberId == ownerLogin).SingleOrDefault();

            if (owner == null)
            {
                owner = new Member
                {
                    MemberId = ownerLogin
                };
                await this.context.Members.AddAsync(owner, cancellationToken);
            }

            Team team = new Team
            {
                TeamId      = info.Name,
                CostMarkers = info.CostLabels.Select(item => Convert(item)).ToList(),
                DefaultMilestonesToTrack = info.DefaultMilestonesToTrack,
                Organization             = info.Organization,
            };

            if (info.Repositories != null)
            {
                foreach (var r in info.Repositories)
                {
                    team.Repos.Add(new Repo {
                        RepoId = r
                    });
                }
            }

            if (info.TeamMembers != null)
            {
                foreach (var member in info.TeamMembers)
                {
                    team.Members.Add(new Member {
                        MemberId = member.Name
                    });
                }
                // TODO: Rework this part to allow storing the "IncludeInReporting" field for members.
            }

            await this.context.Teams.AddAsync(team, cancellationToken);
        }
コード例 #3
0
 public GitHubWorkEstimator(IGitHubClient client, TeamInfo options, ILogger <GitHubWorkEstimator> logger)
 {
     this.client   = client.Ensure(nameof(client)).IsNotNull().Value;
     this.teamInfo = options.Ensure(nameof(options)).IsNotNull().Value;
     this.logger   = logger.Ensure(nameof(logger)).IsNotNull().Value;
 }
コード例 #4
0
        public IProfileIconRetriever CreateProfileIconRetriever(string accessToken, TeamInfo teamInfo)
        {
            teamInfo.Ensure().IsNotNull();

            return(new GitHubUserProfileIconRetriever(CreateClient(accessToken, teamInfo)));
        }