Error executing template "Designs/Swift/Paragraph/DSC_Shop_Info.cshtml"
System.ArgumentNullException: Value cannot be null.
Parameter name: input
   at System.Text.RegularExpressions.Regex.IsMatch(String input)
   at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern)
   at CompiledRazorTemplates.Dynamic.RazorEngine_06326751b3874d9da75b1689f19847ba.Execute() in D:\dynamicweb.net\Solutions\NexusOne\DanskeShoppingcentre.cloud.dynamicweb-cms.com\files\Templates\Designs\Swift\Paragraph\DSC_Shop_Info.cshtml:line 68
   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.Frontend 3 @using DSCBackend.Services; 4 @using DSCBackend.ViewModels; 5 @using System.Text.RegularExpressions; 6 @using DSCBackend.TemplateHelpers; 7 8 @functions { public string getWeekday(int dayNumber) 9 { 10 switch (dayNumber) 11 { 12 case 1: 13 return Translate("Mandag", "Mandag"); 14 case 2: 15 return Translate("Tirsdag", "Tirsdag"); 16 case 3: 17 return Translate("Onsdag", "Onsdag"); 18 case 4: 19 return Translate("Torsdag", "Torsdag"); 20 case 5: 21 return Translate("Fredag", "Fredag"); 22 case 6: 23 return Translate("Lørdag", "Lørdag"); 24 case 7: 25 return Translate("Søndag", "Søndag"); 26 default: 27 return ""; 28 } 29 } 30 public bool hasExternalLinkInPath(string incomingURL) 31 { 32 return incomingURL.Contains("//"); 33 } 34 35 } 36 37 38 @{ string CrmShopId = null; 39 ShopInfoViewModel viewModel = new ShopInfoViewModel(); 40 viewModel.WeekOpenings = new Dictionary<int, string>(); 41 try 42 { 43 object CRM_Shop_ID; 44 Pageview.Page.Item.TryGetValue("CRM_Shop_ID", out CRM_Shop_ID); 45 CrmShopId = (string)CRM_Shop_ID; 46 viewModel = ShopInfoService.GetShopInfoFromID(CrmShopId); 47 } 48 catch (Exception ex) 49 { 50 51 } 52 53 var startDate = ShopInfoService.StartOfWeek(DateTime.Now.Date, DayOfWeek.Monday); 54 var endDate = ShopInfoService.EndOfWeek(DateTime.Now.Date, DayOfWeek.Sunday); 55 var guid = Guid.NewGuid(); 56 } 57 58 @{ if (CrmShopId != null) 59 { 60 <div class="dsc-row dsc-shopinfo-container dsc-m-column"> 61 <div class="dsc-column dsc-shopinfo-column" data-shopopeninghoursmodule="@guid"> 62 <p class="dsc-shop-info-bold" style="font-size: 20px;" data-weekdayopeninghoursspan>@Translate("ShopOpeningHours", "Butikkens åbningstider")</p> 63 64 <div class="dsc-hidden" id="dsc-shop-opening-hours" data-shopopeninghoursidentifier="@guid" data-shopstartdate="@startDate.ToString("dd-MM-yyyy")" data-shopenddate="@endDate.ToString("dd-MM-yyyy")"></div> 65 <p class="dsc-shop-info-normal dsc-openinghors-h3" style="font-weight: 600;" data-shopopeninghoursheader>@startDate.ToString("dd. MMMM") - @endDate.ToString("dd. MMMM yyyy")</p> 66 @foreach (var keyValuePair in viewModel?.WeekOpenings) 67 { 68 var val = Regex.IsMatch(keyValuePair.Value, @"^[a-zA-Z]+$"); 69 string openinhoursValue = keyValuePair.Value; 70 if (val) 71 { 72 openinhoursValue = UtilityHelper.GetTranslationForMatch(keyValuePair.Value, Pageview.Area.CultureInfo.Name); 73 } 74 <div class="dsc-row dsc-shop-opening dsc-max-width75"> 75 <p>@getWeekday(keyValuePair.Key)</p> <p data-weekdayopeninghoursid="@keyValuePair.Key">@openinhoursValue</p> 76 </div> 77 } 78 79 @*@{ var linkModel = Model.Item.GetValue("Opening_Hours_Link") as Dynamicweb.Frontend.LinkViewModel; } 80 <a style="margin-top: 20px;" class="dsc-row dsc-shop-info-button " href="@linkModel?.Url"> 81 <span class="dsc-hero-button1 btn-primary dsc-branding-button-primary dsc-btn-primary-colors"> 82 @Model.Item.GetString("Opening_Hours_Text") 83 </span> 84 </a>*@ 85 86 <div class="dsc-column dsc-shop-openhours-next-prev dsc-max-width75"> 87 <div class="dsc-row dsc-openinghours-btn-row"> 88 <a data-shopopeninghrsbackbtn data-shopopeninghoursidentifierbtn="@guid" style="margin-right: 5px;" class="dsc-shop-opening-hrs-btn dsc-hero-button-small btn-primary dsc-btn-primary-colors dsc-branding-button-primary dsc-hidden"> 89 <span> ← <span>@Translate("Forrige", "Sidste Uge") </span></span> 90 </a> 91 <a data-shopopeninghrsforwardbtn data-shopopeninghoursidentifierbtn="@guid" class="dsc-shop-opening-hrs-btn dsc-hero-button-small btn-primary dsc-btn-primary-colors dsc-branding-button-primary"> 92 <span> <span>@Translate("Næste", "Næste Uge") </span> →</span> 93 </a> 94 </div> 95 </div> 96 97 98 99 <div class="dsc-shop-contact-info "> 100 101 @if (!string.IsNullOrEmpty(viewModel.PhoneNumber) || !string.IsNullOrEmpty(viewModel.Email) || !string.IsNullOrEmpty(viewModel.Website)) 102 { 103 <p class="dsc-shop-info-bold">@Translate("Butiksside.KontaktOs", "Kontakt Os")</p> 104 } 105 106 <div class="dsc-column"> 107 @if (!string.IsNullOrEmpty(viewModel.PhoneNumber)) 108 { 109 110 <div class="dsc-shop-info-contact-padding"> 111 <img class="dsc-shop-icon" src="~/Files/Icons/DSC Ikoner/20-Telefon.svg"> 112 <a href="tel:@viewModel.PhoneNumber"> 113 <span>@viewModel.PhoneNumber</span> 114 </a> 115 </div> 116 } 117 @if (!string.IsNullOrEmpty(viewModel.Email)) 118 { 119 <div class="dsc-shop-info-contact-padding"> 120 <img class="dsc-shop-icon" src="~/Files/Icons/DSC Ikoner/21-Mail.svg"> 121 <a target="_blank" href="mailto:@viewModel.Email"> 122 123 <span class="dsc-break-word">@viewModel.Email</span> 124 </a> 125 </div> 126 } 127 @if (!string.IsNullOrEmpty(viewModel.Website)) 128 { 129 var externalPrefix = hasExternalLinkInPath(viewModel.Website) ? "" : "//"; 130 <div class="dsc-shop-info-contact-padding"> 131 <img class="dsc-shop-icon" src="~/Files/Icons/DSC Ikoner/08-Link-URL-Hjemmeside.svg"> 132 <a target="_blank" href="@externalPrefix@viewModel.Website"> 133 <span class="dsc-break-word">@viewModel.Website</span> 134 </a> 135 </div> 136 } 137 </div> 138 </div> 139 140 <div class="dsc-row dsc-center-footer-social"> 141 142 @if (!string.IsNullOrEmpty(viewModel.FacebookLink)) 143 { 144 var externalPrefix = hasExternalLinkInPath(viewModel.FacebookLink) ? "" : "//"; 145 <a target="_blank" href="@externalPrefix@viewModel.FacebookLink"> 146 <img style="margin-left:0px; margin-right: 10px; height: 30px;" src="~/Files/Icons/FACEBOOOK_dsc.svg" /> 147 </a> 148 149 } 150 @if (!string.IsNullOrEmpty(viewModel.InstagramLink)) 151 { 152 var externalPrefix = hasExternalLinkInPath(viewModel.InstagramLink) ? "" : "//"; 153 <a target="_blank" href="@externalPrefix@viewModel.InstagramLink"> 154 <img style="height: 30px;" src="~/Files/Icons/INSTAGRAM_dsc.svg" /> 155 </a> 156 } 157 </div> 158 159 </div> 160 161 <div class="DSC-highlighted-link"> 162 @Model.Item.GetString("Shop_Presentation") 163 </div> 164 </div> 165 166 <input hidden data-wayfindershopid="@viewModel.WayFinderId" /> 167 <input hidden data-shoplogourl="@viewModel.LogoColorUrl" /> 168 } 169 else 170 { 171 172 <h3>Missing CRM data. Must be added to page item</h3> 173 } } 174