Error executing template "Designs/Swift/Paragraph/CustomPublicationDownload.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_8c5e5652c6e04a53910fe5e3bd448b9b.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()
  1     @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
@using Dynamicweb.Ecommerce.ProductCatalog
@using Dynamicweb.Ecommerce.CustomerExperienceCenter.Favorites
@{
	ProductViewModel product = null;
	if (Dynamicweb.Context.Current.Items.Contains("ProductDetails"))
	{
		product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"];
	}
	else if (Pageview.Page.Item["DummyProduct"] != null)
	{
		var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page);
		ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel();
		if (productList?.Products is object)
		{
			product = productList.Products[0];
		}
	}
	string uniqueId = $"{product?.Id}_{product?.VariantId.Replace(".", "_")}_{Pageview.CurrentParagraph.ID}";
	string horizontalAlign = Model.Item.GetRawValueString("HorizontalAlignment", string.Empty);
	horizontalAlign = horizontalAlign == "center" ? "justify-content-center" : horizontalAlign;
	horizontalAlign = horizontalAlign == "end" ? "justify-content-end" : horizontalAlign;
	horizontalAlign = horizontalAlign == "full" ? string.Empty : horizontalAlign;
	string buttonSize = Model.Item.GetRawValueString("ButtonSize", "regular");
	switch (buttonSize)
	{
		case "small":
			buttonSize = " btn-sm";
			break;
		case "regular":
			buttonSize = string.Empty;
			break;
		case "large":
			buttonSize = " btn-lg";
			break;
	}
	string iconPath = "/Files/Icons/";
	string flexFill = Model.Item.GetRawValueString("HorizontalAlignment", "") == "full" ? "flex-fill" : string.Empty;
	string fullWidth = Model.Item.GetRawValueString("HorizontalAlignment", "") == "full" ? "w-100" : string.Empty;
	string icon = Model.Item.GetRawValueString("Icon", iconPath + "printer.svg");
	string label = !icon.Contains("_none") ? $"<span class=\"icon-2\">{ReadFile(icon)}</span>" : string.Empty;
	label += !icon.Contains("_none") && !Model.Item.GetBoolean("HideButtonText") ? " " : string.Empty;
	label += !Model.Item.GetBoolean("HideButtonText") && !string.IsNullOrEmpty(Model.Item.GetString("Title")) ? Model.Item.GetString("Title") : string.Empty;
}
@if (product is object)
{
	string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : "";
	var publication = Model.Item.GetRawValueString("Publication", "");
	@if (!string.IsNullOrEmpty(publication))
	{
		var pageObj = Dynamicweb.Content.Services.Pages.GetPage(Convert.ToInt32(publication));
		if (pageObj is object)
		{
			<div class="d-flex @horizontalAlign @fullWidth item_@Model.Item.SystemName.ToLower()">
				<form target="_blank" action="/Default.aspx?ID=@(pageObj.ID)" method="post" id="DownloadPublicationModalForm@(uniqueId)">
					<input type="hidden" name="mainproductid" value="@product.Id">
					<input type="hidden" name="print" value="true">
					@if (!string.IsNullOrEmpty(product.VariantId))
					{
						<input type="hidden" name="VariantId" value="@product.VariantId">
					}							
					<button type="button" onclick="GetPublication(event)" class="btn btn-primary @(buttonSize) @flexFill @theme" style="white-space: nowrap" title="@Model.Item.GetString("Title")" id="DownloadPublication@(uniqueId)">
						@if (!Model.Item.GetBoolean("HideButtonText"))
						{
							<span class="text-nowrap d-flex align-items-center justify-content-center gap-2">
								@label
							</span>
						}
						else
						{
							@label
						}
					</button>
				</form>
			</div>
		}
	}
	<script>
		const GetPublication = (e) => {
			const clickedButton = e.currentTarget;
			const form = clickedButton.closest('form');
			form.closest('form').submit();
			commentField = form.querySelector('textarea[name="DealerComment"]');
			if (commentField) {
				commentField.value = "";
			}
		};
	</script>
}
else if (Pageview.IsVisualEditorMode)
{
	<div class="d-flex @horizontalAlign @fullWidth item_@Model.Item.SystemName.ToLower()">
		<button type="button" class="btn btn-primary @(buttonSize) @flexFill" data-bs-toggle="modal" data-bs-target="#DownloadPublicationModal@(uniqueId)" style="white-space: nowrap" title="@Model.Item.GetString("Title")" id="DownloadPublication@(uniqueId)">
			@if (!Model.Item.GetBoolean("HideButtonText"))
			{
				<span class="text-nowrap d-flex align-items-center justify-content-center gap-2">
					@label
				</span>
			}
			else
			{
				@label
			}
		</button>
	</div>
}