예제 #1
0
        private string CreateReferalHtmlSummary(IEnumerable <PrintReferral> referrals)
        {
            var handleBars = Handlebars.Create();

            var result               = string.Empty;
            var itemsHtml            = string.Empty;
            var summaryBreakCount    = 0;
            var printedCount         = 0;
            var VolunteerDisplayName = userService.GetDisplayName();
            var purchaserName        = referrals.FirstOrDefault()?.Purchaser;

            foreach (var referral in referrals)
            {
                summaryBreakCount += 1;
                printedCount      += 1;
                var partialViewType = MapToReferralType(referral.Type);

                handleBars.RegisterTemplate("titlePartial", partialViewType.GetDisplayName());

                var useSummaryVersion  = partialViewType == ReferralPartialView.Hotel || partialViewType == ReferralPartialView.Billeting;
                var partialItemsSource = GetItemsPartialView(partialViewType, useSummaryVersion);
                handleBars.RegisterTemplate("itemsPartial", partialItemsSource);

                handleBars.RegisterTemplate("itemsDetailTitle", "Details");

                var partialNotesSource = GetNotesPartialView(partialViewType);
                handleBars.RegisterTemplate("notesPartial", partialNotesSource);

                var template   = handleBars.Compile(TemplateLoader.LoadTemplate(ReferalMainViews.SummaryItem.ToString()));
                var itemResult = template(referral);

                itemsHtml = $"{itemsHtml}{itemResult}";

                if (summaryBreakCount == 3 || printedCount == referrals.Count())
                {
                    summaryBreakCount = 0;

                    handleBars.RegisterTemplate("summaryItemsPartial", itemsHtml);

                    var mainTemplate = handleBars.Compile(TemplateLoader.LoadTemplate(ReferalMainViews.Summary.ToString()));

                    var data = new { VolunteerDisplayName, purchaserName };
                    result    = $"{result}{mainTemplate(data)}{pageBreak}";
                    itemsHtml = string.Empty;
                }
            }

            return(result);
        }
예제 #2
0
        private string AssembleReferralHtml(IEnumerable <PrintReferral> referrals, bool includeSummary)
        {
            var referralHtml = string.Empty;

            foreach (var referral in referrals)
            {
                var newHtml = CreateReferralHtmlPages(referral);
                referralHtml = $"{referralHtml}{newHtml}";
            }

            var summaryHtml = includeSummary ? CreateReferalHtmlSummary(referrals) : string.Empty;
            var finalHtml   = $"{summaryHtml}{referralHtml}";

            var handleBars = Handlebars.Create();

            handleBars.RegisterTemplate("stylePartial", GetCSSPartialView());
            handleBars.RegisterTemplate("bodyPartial", finalHtml);
            var template      = handleBars.Compile(TemplateLoader.LoadTemplate("MasterLayout"));
            var assembledHtml = template("");

            return(assembledHtml);
        }
예제 #3
0
        private string GetNotesPartialView(ReferralPartialView partialView)
        {
            var name = $"{partialView.ToString()}.{partialView.ToString()}NotesPartial";

            return(TemplateLoader.LoadTemplate(name));
        }
예제 #4
0
 private string GetCSSPartialView()
 {
     return(TemplateLoader.LoadTemplate("Css"));
 }