private async Task <GenerateReferralsResponse> GenerateSingleReferralDocument(GenerateReferralsRequest request)
        {
            var referrals    = mapper.Map <IEnumerable <PrintReferral> >(request.Supports.Where(s => s.SupportDelivery is Shared.Contracts.Events.Referral), opts => opts.Items.Add("evacuationFile", request.File)).ToArray();
            var summaryItems = mapper.Map <IEnumerable <PrintSummary> >(request.Supports, opts => opts.Items.Add("evacuationFile", request.File)).ToArray();
            var printingUser = new PrintRequestingUser {
                Id = request.PrintingMember.Id, FirstName = request.PrintingMember.FirstName, LastName = request.PrintingMember.LastName
            };

            var communities = (await metadataRepository.GetCommunities()).ToDictionary(c => c.Code, c => c.Name);

            foreach (var referral in referrals)
            {
                referral.VolunteerFirstName = printingUser.FirstName;
                referral.VolunteerLastName  = printingUser.LastName;
                referral.DisplayWatermark   = request.AddWatermark;
                referral.HostCommunity      = communities.GetValueOrDefault(referral.HostCommunity);
                if (!string.IsNullOrEmpty(referral.Supplier?.Community))
                {
                    referral.Supplier.City = communities.GetValueOrDefault(referral.Supplier.Community);
                }
            }

            var title         = $"supports-{request.File.Id}-{DateTime.UtcNow.ToPST().ToString("yyyyMMddhhmmss")}";
            var referralsHtml = await ReferralHtmlGenerator.CreateSingleHtmlDocument(printingUser, referrals, summaryItems, request.AddSummary, request.AddWatermark, title);

            return(new GenerateReferralsResponse
            {
                Content = Encoding.UTF8.GetBytes(referralsHtml)
            });
        }
Esempio n. 2
0
 public async Task MultipleHtmlGenerationLoadTest()
 {
     await Parallel.ForEachAsync(Enumerable.Range(0, 10), new ParallelOptions { MaxDegreeOfParallelism = 10 }, async (i, ct) =>
     {
         var requestingUser = GeneratePrintRequestingUser();
         var referrals      = GeneratePrintReferral(requestingUser, Random.Shared.Next(1, 10), true);
         var summaryItems   = GetSummaryFromReferrals(referrals);
         var title          = $"supportstest-{i}";
         await ReferralHtmlGenerator.CreateSingleHtmlDocument(requestingUser, referrals, summaryItems, true, true, title);
     });
 }
Esempio n. 3
0
        public async Task CreateMultipleSupportsPdfsWithoutSummary()
        {
            var requestingUser = new PrintRequestingUser {
                Id = "123", FirstName = "First Name", LastName = "LastName"
            };
            var referrals = GeneratePrintReferral(requestingUser, 5, false);
            var title     = $"supportstest-{DateTime.UtcNow.ToPST().ToString("yyyyMMddhhmmss")}";

            var content = await ReferralHtmlGenerator.CreateSingleHtmlDocument(requestingUser, referrals, Enumerable.Empty <PrintSummary>(), false, false, title);

            content.ShouldNotBeNullOrEmpty();
            await File.WriteAllTextAsync("./newSupportPdfsFile.html", content);
        }
Esempio n. 4
0
        public async Task CreateSupportPdfWithSummary()
        {
            var requestingUser = new PrintRequestingUser {
                Id = "123", FirstName = "First Name", LastName = "LastName"
            };
            var referrals    = GeneratePrintReferral(requestingUser, 1, true);
            var summaryItems = GetSummaryFromReferrals(referrals);
            var title        = $"supportstest-{DateTime.UtcNow.ToPST().ToString("yyyyMMddhhmmss")}";

            var content = await ReferralHtmlGenerator.CreateSingleHtmlDocument(requestingUser, referrals, summaryItems, true, true, title);

            content.ShouldNotBeNullOrEmpty();
            await File.WriteAllTextAsync("./newSupportPdfWithSummaryFile.html", content);
        }