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"
         }
     });
 }
Example #3
0
 private void WhenGettingWinners()
 {
     _returnedUserList = _subject.GetWinners(_pegRecipients);
 }
Example #4
0
 private void GivenWinners(List <PegRecipient> winners)
 {
     _pegResultsHelper.GetWinners(Arg.Any <List <PegRecipient> >()).Returns(winners);
 }