| Error executing template "Designs/Swift/Swift_Email/Paragraph/Swift_EmailImage.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_a445b598d6424cbc9e19aa55eacf4a8d.Execute() in D:\dynamicweb.net\Solutions\danitech.live\Files\Templates\Designs\Swift\Swift_Email\Paragraph\Swift_EmailImage.cshtml:line 89
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   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>
  2     @using Dynamicweb.Ecommerce.ProductCatalog
  3     
  4     @functions {
  5     	private string GetTableReset()
  6     	{
  7     		return "border:0;margin:0;outline:0;padding:0;";
  8     	}
  9     }
 10     
 11     @{
 12     	string blockType = "image_block";
 13     
 14     	var page = Dynamicweb.Content.Services.Pages.GetPage(Pageview.ID);
 15     	var settings = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(page?.Parent).Item;
 16     	var blockId = Model.ID;
 17     	var block = Model.Item;
 18     
 19     	var emailContentThemeId = settings.GetRawValueString("EmailContentTheme");
 20     	var emailContentThemeParagraph = emailContentThemeId != null && emailContentThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(emailContentThemeId)) : null;
 21     	var emailContentTheme = emailContentThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(emailContentThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(emailContentThemeParagraph)?.Item : null;
 22     
 23     	var rowId = Pageview.CurrentParagraph.GridRowId;
 24     	var row = Dynamicweb.Content.Services.Grids.GetGridRowById(rowId);
 25     	var rowItem = Dynamicweb.Content.Services.Items.GetItem(row.ItemType, row.ItemId);
 26     	var rowThemeId = Dynamicweb.Core.Converter.ToString(rowItem["ColumnBackground"]);
 27     	var rowThemeParagraph = rowThemeId != null && rowThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(rowThemeId)) : null;
 28     	var rowTheme = rowThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(rowThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(rowThemeParagraph)?.Item : null;
 29     
 30     	var blockThemeId = block.GetRawValueString("Theme");
 31     	var blockThemeParagraph = blockThemeId != null && blockThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(blockThemeId)) : null;
 32     	var blockTheme = blockThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(blockThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(blockThemeParagraph)?.Item : rowTheme is object ? rowTheme : emailContentTheme;
 33     
 34     	string padding = block.GetRawValueString("Padding", "0");
 35     	var link = new Dynamicweb.Frontend.LinkViewModel();
 36     	string linkType = block.GetRawValueString("LinkType", "page");
 37     
 38     	if (linkType == "page" && block.GetLink("PageLink") != null)
 39     	{
 40     		if (!block.GetLink("PageLink").IsExternal)
 41     		{
 42     			link = new Dynamicweb.Frontend.LinkViewModel()
 43     			{
 44     				Url = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + "/Default.aspx?ID=" + block.GetLink("PageLink").PageId
 45     			};
 46     		}
 47     		else
 48     		{
 49     			link = new Dynamicweb.Frontend.LinkViewModel()
 50     			{
 51     				Url = block.GetLink("PageLink").Url
 52     			};
 53     		}
 54     	}
 55     
 56     	if (linkType == "product-group")
 57     	{
 58     		IList<ProductGroupViewModel> selectedGroups = block.GetValue<IList<ProductGroupViewModel>>("ProductGroupLink");
 59     		IList<string> groupIds = new List<string> { };
 60     
 61     		if (selectedGroups != null)
 62     		{
 63     			foreach (var fromGroup in selectedGroups)
 64     			{
 65     				groupIds.Add(fromGroup.Id);
 66     			}
 67     		}
 68     
 69     		link = new Dynamicweb.Frontend.LinkViewModel()
 70     		{
 71     			Url = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + "/Default.aspx?ID=" + GetPageIdByNavigationTag("Shop") + "&GroupID=" + string.Join(",", groupIds)
 72     		};
 73     	}
 74     
 75     	if (linkType == "product")
 76     	{
 77     		ProductListViewModel products = block.GetValue<ProductListViewModel>("ProductLink");
 78     		IList<string> productIds = new List<string> { };
 79     
 80     		if (products != null)
 81     		{
 82     			foreach (var product in products.Products)
 83     			{
 84     				productIds.Add(product.Id);
 85     			}
 86     		}
 87     
 88     		string productParameter = productIds.Count == 1 ? "ProductID" : "MainProductId";
 89     		string productLink = "/" + products.Products.FirstOrDefault().GetProductLink(GetPageIdByNavigationTag("Shop"), false);
 90     		productLink = productIds.Count != 1 ? "/Default.aspx?ID=" + GetPageIdByNavigationTag("Shop") + "&" + productParameter + "=" + string.Join(",", productIds).Trim() : productLink;
 91     
 92     		link = new Dynamicweb.Frontend.LinkViewModel()
 93     		{
 94     			Url = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + productLink
 95     		};
 96     	}
 97     }
 98     
 99     <table id="@blockId" class="@blockType" align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0pt;mso-table-rspace:0pt;mso-line-height-rule:exactly;@GetTableReset()color:inherit;width:100%;">
100     	<tbody>
101     		<tr style="@GetTableReset()">
102     			<td style="mso-table-lspace:0pt;mso-table-rspace:0pt;mso-line-height-rule:exactly;text-align:left;@GetTableReset()vertical-align:top;padding:@(padding)px" width="100%">
103     				<div align="left">
104     					@if (link is object && !string.IsNullOrEmpty(link.Url))
105     					{
106     						<a href="@link" target="_blank" style="display:block;">
107     							@{ @RenderImage(padding, blockTheme) }
108     						</a>
109     					}
110     					else
111     					{
112     						@RenderImage(padding, blockTheme)
113     					}
114     				</div>
115     			</td>
116     		</tr>
117     	</tbody>
118     </table>
119     
120     @helper RenderImage(string padding, Dynamicweb.Frontend.ItemViewModel theme)
121     {
122     	var imageRatio = Model.Item.GetRawValueString("ImageAspectRatio", "4-3").ToLower();
123     	var parms = new Dictionary<string, object>();
124     	parms.Add("alt", Model.Item.GetString("ImageAltText"));
125     	parms.Add("columns", Model.GridRowColumnCount);
126     	parms.Add("padding", Dynamicweb.Core.Converter.ToInt32(padding) * 2);
127     	parms.Add("imageRatio", imageRatio);
128     
129     	@RenderPartial("Swift_Email/Components/Image.cshtml", Model.Item.GetFile("Image") ?? new Dynamicweb.Frontend.FileViewModel(), parms)
130     }
131     
 |