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