Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 private void WhenGettingCategories()
 {
     _returnedCategories = _subject.GetCategories(_pegRecipients);
 }
Ejemplo n.º 3
0
 private void GivenPegCategories(List <PegCategory> categories)
 {
     _pegResultsHelper.GetCategories(Arg.Any <List <PegRecipient> >()).Returns(categories);
 }