Error executing template "Designs/Swift/_parsed/Swift_Email.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at Dynamicweb.Content.Layouts.LayoutTemplateLocator.FindLayoutTemplateForPage(Page page)
   at Dynamicweb.Frontend.Content.GetLayoutForDevice(Page page, DeviceType device)
   at Dynamicweb.Frontend.Content.CreateGridContent(Int32 contentId, Boolean ignoreVisualEdit)
   at Dynamicweb.Frontend.Content.RenderExternalGrid(Int32 pageId, String container)
   at CompiledRazorTemplates.Dynamic.RazorEngine_ca50c6b4433145169f579b743d64e3e0.Execute() in D:\dynamicweb.net\Solutions\Flex Media\hotri.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\_parsed\Swift_Email.parsed.cshtml:line 265
   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.PageViewModel>
  2     @using Page = Dynamicweb.Content.Page
  3     
  4     @functions
  5     {
  6     	private Page GetBrandingPage()
  7     	{
  8     		int brandingPageId = Model.Area.Item.GetLink("BrandingPage") != null ? Model.Area.Item.GetLink("BrandingPage").PageId : 0;
  9     		return brandingPageId > 0 ? Dynamicweb.Content.Services.Pages?.GetPage(brandingPageId) : null;
 10     	}
 11     
 12     	private string GetFontsToLink()
 13     	{
 14     		Page brandingPage = GetBrandingPage();
 15     		if (brandingPage == null) return "";
 16     
 17     		List<string> fonts = new List<string>();
 18     		AddFontFamily(brandingPage, "HeaderFont", fonts);
 19     		AddFontFamily(brandingPage, "DisplayFont", fonts);
 20     		AddFontFamily(brandingPage, "BodyFont", fonts);
 21     
 22     		var fontsToLink = string.Join("%7C", fonts.Where(x => !string.IsNullOrEmpty(x)).Distinct().Select(x => string.Format("{0}:100,200,300,400,500,600,700,800,900", x)));
 23     		return fontsToLink;
 24     	}
 25     
 26     	private static void AddFontFamily(Page brandingPage, string systemName, List<string> fonts)
 27     	{
 28     		if (brandingPage.Item[systemName] == null) return;
 29     		dynamic font = Dynamicweb.Core.Converter.Deserialize<object>(brandingPage.Item[systemName].ToString());
 30     		if (font != null && font?.Family != null)
 31     		{
 32     			fonts.Add(font.Family.ToString());
 33     		}
 34     	}
 35     
 36     	private string GetFontStyle(string type)
 37     	{
 38     		Page brandingPage = GetBrandingPage();
 39     		if (brandingPage == null) return "";
 40     
 41     		string fontStyle = "";
 42     		var item = brandingPage.Item[type + "Font"];
 43     		dynamic font = item != null ? Dynamicweb.Core.Converter.Deserialize<object>(brandingPage.Item[type + "Font"].ToString()) : null;
 44     		if (font?.Family != null && font?.SelectedVariant != null)
 45     		{
 46     			fontStyle += $"font-family:{font.Family}, sans-serif;";
 47     			fontStyle += $"font-weight:{font.SelectedVariant};";
 48     		}
 49     		fontStyle += $"line-height:{brandingPage.Item[type + "LineHeight"]};";
 50     		fontStyle += $"letter-spacing:{brandingPage.Item[type + "LetterSpacing"]}rem;";
 51     		fontStyle += $"text-transform:{brandingPage.Item[type + "Casing"]};";
 52     		return fontStyle;
 53     	}
 54     }
 55     @{
 56     	string swiftVersion = ReadFile("/Files/Templates/Designs/Swift/swift_version.txt");
 57     	string lang = Pageview.Area.CultureInfo.TwoLetterISOLanguageName;
 58     	string fontsToLink = GetFontsToLink();
 59     	string bodyFontStyle = GetFontStyle("Body");
 60     	string headerFontStyle = GetFontStyle("Header");
 61     	string displayFontStyle = GetFontStyle("Display");
 62     
 63     	var pageViewModel = Pageview?.Page?.Parent != null ? Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page.Parent) : null;
 64     	var backgroundColor = pageViewModel != null ? pageViewModel.Item?.GetColor("BackgroundColor") : null;
 65     }
 66     
 67     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 68     <html style="border:0;margin:0;outline:0;padding:0" xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml" lang="@lang">
 69     <head>
 70     	<!-- @swiftVersion -->
 71     	<meta charset="utf-8">
 72     	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 73     	<meta name="x-apple-disable-message-reformatting">
 74     	<meta http-equiv="content-type" content="text/html;">
 75     	<meta content="telephone=no" name="format-detection">
 76     
 77     	<!--[if gte mso 9]>
 78     	<xml>
 79     		<o:OfficeDocumentSettings>
 80     			<o:AllowPNG/>
 81     			<o:PixelsPerInch>96</o:PixelsPerInch>
 82     		</o:OfficeDocumentSettings>
 83     	</xml>
 84     	<![endif]-->
 85     	<!--[if (gte mso 9)|(IE)]>
 86     	<style type="text/css">
 87     		table {
 88     			border-collapse: collapse;
 89     			border-spacing: 0;
 90     			mso-table-lspace: 0pt !important;
 91     			mso-table-rspace: 0pt !important;
 92     		}
 93     	</style>
 94     	<![endif]-->
 95     
 96     	<meta name="robots" content="noindex,nofollow">
 97     	<title>@Model.Item.GetString("Title")</title>
 98     	<meta property="og:title" content="@Model.Item.GetString("Title")">
 99     	<style type="text/css">
100     		* {
101     			box-sizing: border-box;
102     		}
103     
104     		body {
105     			margin: 0;
106     			padding: 0;
107     		}
108     
109     		html, body {
110     			font-family:Arial,Helvetica Neue,Helvetica,sans-serif;
111     		}
112     
113     		a {
114     			color: inherit !important;
115     		}
116     
117     		table,
118     		td {
119     			mso-table-lspace: 0pt !important;
120     			mso-table-rspace: 0pt !important;
121     		}
122     
123     		img {
124     			-ms-interpolation-mode:bicubic;
125     		}
126     
127     		a[x-apple-data-detectors] {
128     			color: inherit !important;
129     			font-size: inherit !important;
130     			font-family: inherit !important;
131     			font-weight: inherit !important;
132     			line-height: inherit !important;
133     			text-decoration: inherit !important;
134     		}
135     
136     		#MessageViewBody a {
137     			color: inherit !important;
138     			font-size: inherit !important;
139     			font-family: inherit !important;
140     			font-weight: inherit !important;
141     			line-height: inherit !important;
142     			text-decoration: inherit !important;
143     		}
144     
145     		p {
146     			line-height: inherit;
147     		}
148     
149     		.header {
150     			@headerFontStyle
151     		}
152     
153     		.display {
154     			@displayFontStyle
155     		}
156     
157     		.column p:first-of-type,
158     		.column h1:first-of-type,
159     		.column h2:first-of-type,
160     		.column h3:first-of-type {
161     			margin: 0;
162     		}
163     
164     		.column p:last-of-type {
165     			margin-bottom: 0;
166     		}
167     
168     		h1{
169     			line-height: 40px;
170     		}
171     
172     		h2{
173     			line-height: 36px;
174     		}
175     		
176     		h3{
177     			line-height: 32px;
178     		}
179     
180     		@@media (max-width:660px) {
181     			.icons-inner {
182     				text-align: center;
183     			}
184     
185     			.icons-inner td {
186     				margin: 0 auto;
187     			}
188     
189     			.row-content {
190     				width: 100% !important;
191     			}
192     
193     			.stack .column {
194     				width: 100%;
195     				display: block;
196     			}
197     		}
198     
199     		@@media all {
200     			.ExternalClass {
201     				width: 100%;
202     			}
203     
204     			.ExternalClass,
205     			.ExternalClass p,
206     			.ExternalClass span,
207     			.ExternalClass font,
208     			.ExternalClass td,
209     			.ExternalClass div {
210     				line-height: 100%;
211     			}
212     
213     			.apple-link a {
214     				color: inherit !important;
215     				font-family: inherit !important;
216     				font-size: inherit !important;
217     				font-weight: inherit !important;
218     				line-height: inherit !important;
219     				text-decoration: none !important;
220     			}
221     		}
222     	</style>
223     	<!--[if !mso]><!-->
224     	<style type="text/css">
225           @@import url('https://fonts.googleapis.com/css?family=@(fontsToLink)&display=swap');
226     	</style>
227     	<link href="https://fonts.googleapis.com/css?family=@(fontsToLink)&display=swap" rel="stylesheet" type="text/css">
228     	<!--<![endif]-->
229     	<!--[if (gte mso 9)|(IE)]><!-->
230     	<link href="https://fonts.googleapis.com/css?family=@(fontsToLink)&display=swap" rel="stylesheet" type="text/css">
231     	<!--<![endif]-->
232     </head>
233     <body style="font-family:Arial,Helvetica Neue,Helvetica,sans-serif;@(bodyFontStyle)border:0;margin:0;outline:0;padding:0;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:none;text-size-adjust:none;mso-line-height-rule:exactly;line-height:1;">
234     	<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0pt;mso-table-rspace:0pt;mso-line-height-rule:exactly;@(bodyFontStyle)border:0;border-collapse:collapse;border-spacing:0;margin:0;outline:0;padding:0;" width="100%">
235     		<tbody>
236     			<tr>
237     				<td style="border:0;margin:0;outline:0;padding:0;">
238     					@inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
239     
240     
241     @if(this.Pageview is object)
242     {
243     	var page = Dynamicweb.Content.Services.Pages.GetPage(Model.ID);
244     	var settings = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(page?.Parent).Item;
245     	bool isEmail = Model.ItemType == "Swift_Email";
246     
247     	if(settings is object)
248         {
249     		int header = settings?.GetLink("Header").PageId ?? 0;
250     		int footer = settings?.GetLink("Footer").PageId ?? 0;
251     
252     		if (isEmail)
253     		{
254     			<span class="preheader" style="color:transparent;display:none;height:0;max-height:0;max-width:0;opacity:0;overflow:hidden;mso-hide:all;visibility:hidden;width:0;">{{EmailMarketing:Email.PreHeader.Clean}}</span>
255     		}
256     		
257     		if (Pageview.IsVisualEditorMode)
258     		{
259     			<div style="height:100px;"></div>
260     		}
261     
262     		if (isEmail && header != 0)
263     		{
264     			<div class="email-header-wrapper" role="presentation" style="border:0;margin:0;outline:0;padding:0;">
265     				@RenderGrid(header)
266     			</div>
267     		}
268     		<div class="email-content-wrapper" role="presentation" style="border:0;margin:0;outline:0;padding:0;">
269     		@Model.Grid("Grid", "Email Grid", "default:true;sort:1", "Email")
270     		</div>
271     
272     		if (isEmail && footer != 0)
273     		{
274     			<div class="email-footer-wrapper" role="contentinfo" style="border:0;margin:0;outline:0;padding:0;">
275     			@RenderGrid(footer)
276     			</div>
277     		}
278         }
279     }
280     
281     				</td>
282     			</tr>
283     		</tbody>
284     	</table>
285     </body>
286     </html>
287