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) }); }
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); }); }
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); }
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); }