public async Task <string> GenerateResultsFileAndReturnLink(List <PegRecipient> mappedUsers) { var winners = _pegResultsHelper.GetWinners(mappedUsers); var winnerIds = winners.Select(x => x.UserId); var nonWinners = mappedUsers.Where(x => !winnerIds.Contains(x.UserId)) .OrderBy(x => x.TotalPoints) .ToList(); var categories = _pegResultsHelper.GetCategories(mappedUsers); var penalties = mappedUsers.Where(x => x.PenaltyCount > 0) .OrderByDescending(x => x.PenaltyCount) .ToList(); var results = new PegResults { Date = DateTime.Now, Winners = winners, PegRecipients = nonWinners, Categories = categories, Penalties = penalties }; _logger.LogDebug("Generating HTML..."); var template = GetTemplate(); var parsedTemplate = Template.Parse(template); var html = parsedTemplate.Render(new { model = results }); var uri = await _resultsUploader.UploadResults(html); return(uri); }
private void GivenThePegResultsHelperReturnsTheWinners() { _pegResultsHelper.GetWinners(_mappedUsers).Returns(new List <PegRecipient> { new PegRecipient { UserId = "SomeWinner" } }); }
private void WhenGettingWinners() { _returnedUserList = _subject.GetWinners(_pegRecipients); }
private void GivenWinners(List <PegRecipient> winners) { _pegResultsHelper.GetWinners(Arg.Any <List <PegRecipient> >()).Returns(winners); }