{{EmailMarketing:Email.PreHeader.Clean}}

Swift

By Dynamicweb

20% off

Black weekend

Do not miss out. It is your last change to shop these special offers

Email not displaying correctly? View in browser
Error executing template "Designs/Swift/Swift_Email/Paragraph/Swift_EmailMenu.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Page page)
   at CompiledRazorTemplates.Dynamic.RazorEngine_26296e15f2864ae68393157ddfbdf7d4.Execute() in D:\dynamicweb.net\Solutions\Dynamicweb\T3L.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\Swift_Email\Paragraph\Swift_EmailMenu.cshtml:line 84
   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 3 @functions { 4 private string GetFontStack() 5 { 6 return "font-family:initial,Arial,Helvetica Neue,Helvetica,sans-serif;"; 7 } 8 9 private string GetTableReset() 10 { 11 return "border:0;margin:0;outline:0;padding:0;"; 12 } 13 } 14 15 @{ 16 var blockType = "menu_block"; 17 18 var page = Dynamicweb.Content.Services.Pages.GetPage(Model.PageID); 19 var settings = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(page?.Parent).Item; 20 var blockId = Model.ID; 21 var block = Model.Item; 22 23 var emailContentThemeId = settings.GetRawValueString("EmailContentTheme"); 24 var emailContentThemeParagraph = emailContentThemeId != null && emailContentThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(emailContentThemeId)) : null; 25 var emailContentTheme = emailContentThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(emailContentThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(emailContentThemeParagraph)?.Item : null; 26 27 var rowId = Dynamicweb.Content.Services.Paragraphs.GetParagraph(blockId).GridRowId; 28 var row = Dynamicweb.Content.Services.Grids.GetGridRowById(rowId); 29 var rowItem = Dynamicweb.Content.Services.Items.GetItem(row.ItemType, row.ItemId); 30 var rowThemeId = Dynamicweb.Core.Converter.ToString(rowItem["ColumnBackground"]); 31 var rowThemeParagraph = rowThemeId != null && rowThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(rowThemeId)) : null; 32 var rowTheme = rowThemeParagraph != null && Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(rowThemeParagraph).Item.GetString("CssClassName") != string.Empty ? Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(rowThemeParagraph)?.Item : null; 33 34 var blockThemeId = block.GetRawValueString("Theme"); 35 var blockThemeParagraph = blockThemeId != null && blockThemeId != string.Empty ? Dynamicweb.Content.Services.Paragraphs.GetParagraph(Dynamicweb.Core.Converter.ToInt32(blockThemeId)) : null; 36 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; 37 38 string backgroundColor = blockTheme != null ? "background-color: " + blockTheme.GetString("BackgroundColor") + ";" : string.Empty; 39 string foregroundColor = blockTheme != null ? "color:" + blockTheme.GetString("ForegroundColor", "inherit") + ";" : string.Empty; 40 string borderColor = blockTheme != null ? blockTheme.GetString("BorderColor", "transparent") : string.Empty; 41 string borders = block.GetRawValueString("Borders", "none"); 42 string borderThicknes = block.GetRawValueString("BorderThicknes", "0") + "px"; 43 string borderClass = string.Empty; 44 45 switch (borders) 46 { 47 case "top": 48 borderClass = $"border-top:{borderThicknes} solid {borderColor};"; 49 break; 50 case "bottom": 51 borderClass = $"border-bottom:{borderThicknes} solid {borderColor};"; 52 break; 53 case "top-bottom": 54 borderClass = $"border-top:{borderThicknes} solid {borderColor}; border-bottom:{borderThicknes} solid {borderColor}; border-left:0;border-right:0;"; 55 break; 56 case "all": 57 borderClass = $"border:{borderThicknes} solid {borderColor};"; 58 break; 59 } 60 61 string padding = block.GetRawValueString("Padding", "0"); 62 var menuItems = block.GetItems("MenuItems"); 63 var align = block.GetRawValueString("Align", "center"); 64 var layout = block.GetRawValueString("Layout", "horizontal"); 65 var fontSize = block.GetRawValueString("FontSize", "16"); 66 } 67 68 <table id="@blockId" class="@blockType" align="@align" 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%;@(backgroundColor)"> 69 <tbody> 70 <tr style="@GetTableReset()"> 71 <td style="mso-table-lspace:0pt;mso-table-rspace:0pt;font-weight:400;text-align:@align;vertical-align:top;@(backgroundColor)@(foregroundColor)@GetTableReset()padding:@(padding)px;@(borderClass)font-size:@(fontSize)px;" width="100%"> 72 @if (menuItems != null) 73 { 74 var last = menuItems.Last(); 75 foreach (var item in menuItems) 76 { 77 var link = item.GetLink("Link")?.Url ?? null; 78 var itemSpacing = block.GetRawValueString("ItemSpacing", "16"); 79 var spacing = !item.Equals(last) ? itemSpacing : "0"; 80 81 if (link != null) 82 { 83 var linkId = item.GetLink("Link").PageId; 84 var menuItem = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Dynamicweb.Content.Services.Pages.GetPage(linkId)); 85 86 link = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + "/Default.aspx?id=" + linkId; 87 88 <a href="@link" style="text-align:@align;@(layout == "vertical" ? $"display:block !important;width:100%;padding-bottom:{spacing}px;" : $"display:inline-block !important;margin-right:{spacing}px;")@(foregroundColor)text-decoration:none;@GetFontStack()" target="_blank"> 89 <strong style="@(foregroundColor)text-decoration:underline;font-weight:normal;@GetFontStack()"> 90 @menuItem.Name 91 </strong> 92 </a> 93 } 94 } 95 } 96 <!--[if mso]><br/><![endif]--> 97 </td> 98 </tr> 99 </tbody> 100 </table> 101
Facebook Twitter LinkedIn

Swift

By Dynamicweb

Bjoernholms Allé 30, 8260 Viby J, Denmark

+45 70 25 20 90 | info@dynamicweb.dk

You are receiving this email advertisement because you registered with SWIFT and agreed to receive emails from us regarding new bikes, features, events and special offers.

Unsubscribe

Copyright © Dynamicweb 2022

Sie kontrollieren Ihre Daten

Wir und unsere Partner verwenden Technologien, einschließlich Cookies, um Informationen über Sie für verschiedene Zwecke zu sammeln, darunter:

  1. Funktionalität
  2. Statistiken
  3. Marketing

Indem Sie auf „Alle akzeptieren“ klicken, stimmen Sie all diesen Zwecken zu. Sie können auch angeben, welchen Zwecken Sie mithilfe der benutzerdefinierten Auswahl zustimmen, und dann auf „Ausgewählte akzeptieren“ klicken..

Weitere Informationen zu unserer Verwendung von Cookies und anderen Technologien sowie zu unserer Erhebung und Verarbeitung personenbezogener Daten finden Sie hier::

Weitere Informationen zu Cookies Unsere Datenschutzrichtlinie