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