Error executing template "Designs/Baseline/QueryPublisher/searchresult.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_974df99eeea7499ab822323f597f6afa.ExecuteAsync()
at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
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.QueryPublisher.QueryResultViewModel>
2
3 @using Application.Extensions;
4 @using Dynamicweb.Indexing
5
6 @{
7 List<IndexDocument> eventSearchResults = new List<IndexDocument>();
8 List<IndexDocument> newsSearchResults = new List<IndexDocument>();
9
10 int contactPageId = 0;
11 string searchResultHeadline = Translate("Translate.Search.ResultHeadline");
12 string searchQuery = Model.Parameters.FirstOrDefault(x => x.Name == "q") != null ? Model.Parameters.FirstOrDefault(x => x.Name == "q").Value.ToString() : string.Empty;
13 int resultCount = 0;
14
15 foreach (var result in Model.Results) {
16 var itemType = result.ContainsKey("PageItemType") ? result["PageItemType"].ToString() : string.Empty;
17
18 if (!string.IsNullOrWhiteSpace(itemType)) {
19 if (itemType == "Event") {
20 eventSearchResults.Add(new IndexDocument(result));
21 resultCount++;
22 }
23 }
24
25 if (string.IsNullOrWhiteSpace(itemType) || itemType != "Event")
26 {
27 resultCount++;
28 }
29 }
30
31 string searchResultHeadlineReplaced = string.Format(searchResultHeadline, $"<strong>\"{searchQuery}\"</strong>", resultCount);
32 }
33
34 <div class="search-result">
35 <h2 class="search-result__headline">@searchResultHeadlineReplaced</h2>
36 <div class="search-result__list">
37 @foreach (var result in Model.Results) {
38 var itemType = result.ContainsKey("PageItemType") ? result["PageItemType"].ToString() : string.Empty;
39
40 if (string.IsNullOrWhiteSpace(itemType) || itemType != "Event")
41 {
42 string pageUrl = $"/Default.aspx?Id={result["PageID"].ToString()}";
43 string searchResultTitle = result.ContainsKey("Property_PageSettings_Title") ? result["Property_PageSettings_Title"].ToString() : (result.ContainsKey("PageMenuText") ? result["PageMenuText"].ToString() : string.Empty);
44 string newsDate = result.ContainsKey("News_Date") ? ((DateTime)result["News_Date"]).ToString("dd.MM.yy") : string.Empty;
45
46 <a href="@pageUrl" class="search-result__item">
47 @if (!string.IsNullOrWhiteSpace(newsDate)) {
48 <span class="search-result__date">@newsDate</span>
49 }
50 <h3 class="search-result__item-headline">@searchResultTitle</h3>
51 <span class="search-result__icon">
52 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M15.3,10.29h.02s-.03,0-.03,0l-4.68,4.69-1.01-.97,3.31-3.31H4.61v-1.41h8.3l-3.3-3.3.99-1,5,5-.3.29Z"></path></svg>
53 </span>
54 </a>
55 }
56 }
57 </div>
58 @if (eventSearchResults.Any()) {
59 <div class="search-result__list search-result__list--calendar">
60 <ul class="search-result__calendar">
61 @foreach (var result in eventSearchResults) {
62 string itemId = result["PageItemId"].ToString();
63
64 @RenderItem(new
65 {
66 ItemType = "Event",
67 SourceItemEntry = itemId,
68 ItemFields = "*",
69 DetailsTemplate = "itempublisher/details/event.searchresult.cshtml"
70 })
71 }
72 </ul>
73 </div>
74 }
75 </div>