Error executing template "Designs/Soroto/_parsed/Swift_Email.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_29b0f37011dd4c87b03b7a2f3584e346.Execute() in E:\dynamicweb.net\Solutions\FlexMedia\soroto2020.dw9.dynamicweb-cms.com\files\Templates\Designs\Soroto\_parsed\Swift_Email.parsed.cshtml:line 243
   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> @using Page = Dynamicweb.Content.Page @functions { private Page GetBrandingPage() { int brandingPageId = Model.Area.Item.GetLink("BrandingPage") != null ? Model.Area.Item.GetLink("BrandingPage").PageId : 0; return brandingPageId > 0 ? Dynamicweb.Services.Pages?.GetPage(brandingPageId) : null; } private string GetFontsToLink() { Page brandingPage = GetBrandingPage(); if (brandingPage == null) return ""; List<string> fonts = new List<string>(); AddFontFamily(brandingPage, "HeaderFont", fonts); AddFontFamily(brandingPage, "DisplayFont", fonts); AddFontFamily(brandingPage, "BodyFont", fonts); 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))); return fontsToLink; } private static void AddFontFamily(Page brandingPage, string systemName, List<string> fonts) { if (brandingPage.Item[systemName] == null) return; dynamic font = Dynamicweb.Core.Converter.Deserialize<object>(brandingPage.Item[systemName].ToString()); if (font != null && font.Family != null) { fonts.Add(font.Family.ToString()); } } private string GetFontStyle(string type) { Page brandingPage = GetBrandingPage(); if (brandingPage == null) return ""; string fontStyle = ""; dynamic font = Dynamicweb.Core.Converter.Deserialize<object>(brandingPage.Item[type + "Font"].ToString()); if (font != null) { fontStyle += $"font-family:{font.Family}, sans-serif;"; fontStyle += $"font-weight:{font.SelectedVariant};"; } fontStyle += $"line-height:{brandingPage.Item[type + "LineHeight"]};"; fontStyle += $"letter-spacing:{brandingPage.Item[type + "LetterSpacing"]}rem;"; fontStyle += $"text-transform:{brandingPage.Item[type + "Casing"]};"; return fontStyle; } } @{ string swiftVersion = ReadFile("~/Files/Templates/Designs/Swift/swift_version.txt"); string lang = Pageview.Area.CultureInfo.TwoLetterISOLanguageName; string fontsToLink = GetFontsToLink(); string bodyFontStyle = GetFontStyle("Body"); string headerFontStyle = GetFontStyle("Header"); string displayFontStyle = GetFontStyle("Display"); var backgroundColor = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page.Parent).Item?.GetColor("BackgroundColor"); } <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <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"> <head> <!-- @swiftVersion --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="x-apple-disable-message-reformatting"> <meta http-equiv="content-type" content="text/html;"> <meta content="telephone=no" name="format-detection"> <!--[if gte mso 9]> <xml> <o:OfficeDocumentSettings> <o:AllowPNG/> <o:PixelsPerInch>96</o:PixelsPerInch> </o:OfficeDocumentSettings> </xml> <![endif]--> <!--[if (gte mso 9)|(IE)]> <style type="text/css"> table { border-collapse: collapse; border-spacing: 0; mso-table-lspace: 0pt !important; mso-table-rspace: 0pt !important; } </style> <![endif]--> <meta name="robots" content="noindex,nofollow"> <title>@Model.Item.GetString("Title")</title> <meta property="og:title" content="@Model.Item.GetString("Title")"> <style type="text/css"> * { box-sizing: border-box; } body { margin: 0; padding: 0; } html, body { font-family:Arial,Helvetica Neue,Helvetica,sans-serif; } a { color: inherit !important; } table, td { mso-table-lspace: 0pt !important; mso-table-rspace: 0pt !important; } img { -ms-interpolation-mode:bicubic; } a[x-apple-data-detectors] { color: inherit !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important; text-decoration: inherit !important; } #MessageViewBody a { color: inherit !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important; text-decoration: inherit !important; } p { line-height: inherit; } .header { @headerFontStyle } .display { @displayFontStyle } .column p:first-of-type, .column h1:first-of-type, .column h2:first-of-type, .column h3:first-of-type { margin: 0; } .column p:last-of-type { margin-bottom: 0; } .email-header-wrapper a{ color:#F8BD3C!important; } .email-footer-wrapper a{ color:white!important; } @@media (max-width:660px) { .icons-inner { text-align: center; } .icons-inner td { margin: 0 auto; } .row-content { width: 100% !important; } .stack .column { width: 100%; display: block; } } @@media all { .ExternalClass { width: 100%; } .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; } .apple-link a { color: inherit !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; text-decoration: none !important; } } </style> <!--[if !mso]><!--> <style type="text/css"> @@import url('https://fonts.googleapis.com/css?family=@(fontsToLink)&display=swap'); </style> <link href="https://fonts.googleapis.com/css?family=@(fontsToLink)&display=swap" rel="stylesheet" type="text/css"> <!--<![endif]--> <!--[if (gte mso 9)|(IE)]><!--> <link href="https://fonts.googleapis.com/css?family=@(fontsToLink)&display=swap" rel="stylesheet" type="text/css"> <!--<![endif]--> <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>👋</text></svg>"> </head> <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;"> <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%"> <tbody> <tr> <td style="border:0;margin:0;outline:0;padding:0;"> @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> @if(this.Pageview is object) { var page = Dynamicweb.Services.Pages.GetPage(Model.ID); var settings = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(page?.Parent).Item; bool isEmail = Model.ItemType == "Swift_Email"; if(settings is object) { int header = settings?.GetLink("Header").PageId ?? 0; int footer = settings?.GetLink("Footer").PageId ?? 0; if (isEmail) { <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> } if (Pageview.IsVisualEditorMode) { <div style="height:100px;"></div> } if (isEmail && header != 0) { <div class="email-header-wrapper" role="presentation" style="border:0;margin:0;outline:0;padding:0;background-color:black"> @RenderGrid(header) </div> } <div class="email-content-wrapper" role="presentation" style="border:0;margin:0;outline:0;padding:0;"> @Model.Grid("Grid", "Email Grid", "default:true;sort:1", "Email") </div> if (isEmail && footer != 0) { <div class="email-footer-wrapper" role="contentinfo" style="border:0;margin:0;outline:0;padding:0;background-color:black"> @RenderGrid(footer) </div> } } } </td> </tr> </tbody> </table> </body> </html>