private async Task <HangoutCard> GetLeaderBoardCard(DuplicateComparator comparator) { try { var(_, removedDuplicates, _) = comparator.GetComparison(); var blamer = new GitBlamer(_gitPath); var(baseCommit, headCommit) = await _teamcityService.ComputeCommitRange(_buildId); var contributors = await blamer.GetRemovalContributors(baseCommit, headCommit, removedDuplicates, 3, file => file); var sections = new List <HangoutCardSection>(); var rank = 1; foreach (var contributor in contributors) { sections.Add(CardBuilderHelper.GetKeyValueSection("Duplication has been removed by", contributor.Name, $"for a cost of {contributor.Contributions.Sum(f => f.Score)}", _ranks[rank])); rank++; } return(new HangoutCard { Header = CardBuilderHelper.GetCardHeader("Podium", "Who removed duplication", "https://icon-icons.com/icons2/9/PNG/128/podium_1511.png"), Sections = sections.ToArray() }); } catch (Exception) { Console.WriteLine("Failed to retrieve best contributors"); } return(null); }
private async Task <HttpContent[]> GetMessages(InspectionsComparator comparer, DateTime nowUtc) { var(newIssues, removedIssues, currentIssues) = comparer.GetComparison(); var sections = await GetSections(newIssues, removedIssues, currentIssues, comparer); Console.WriteLine("Creating header section of message"); var card = new HangoutCard { Header = CardBuilderHelper.GetCardHeader("<b>Inspection daily report</b>", nowUtc, "https://icon-icons.com/icons2/624/PNG/128/Inspection-80_icon-icons.com_57310.png"), Sections = sections }; var card2 = await GetLeaderBoardCard(comparer); var cards = new List <HangoutCard> { card }; if (card2 != null) { cards.Add(card2); } var content = JsonConvert.SerializeObject(new HangoutCardMessage { Cards = cards.ToArray() }); Console.WriteLine($"Sending message to Hangout:\r\n{content}"); return(new HttpContent[] { new StringContent(content) }); }
private async Task <HangoutCard> GetReportCard(DuplicateComparator comparator, DateTime nowUtc) { var sections = await GetSections(comparator); return(new HangoutCard { Header = CardBuilderHelper.GetCardHeader("<b>Duplicate daily report</b>", nowUtc, "https://icon-icons.com/icons2/1278/PNG/128/1497562286-gemini-zodiac-sign_85087.png"), Sections = sections }); }
private async Task <HangoutCard> GetReportCard(DateTime utcNow) { var url = await _teamCityService.GetTeamCityBuildUrl(_buildId, "&tab=report_project117_Release_Note"); var section = await CardBuilderHelper.GetLinkSectionToUrl(url, "Release notes"); var sections = new [] { section }; return(new HangoutCard { Header = CardBuilderHelper.GetCardHeader("<b>Daily release note</b>", utcNow, "https://icon-icons.com/icons2/560/PNG/128/Dynamic-Content_icon-icons.com_53724.png"), Sections = sections }); }