Error executing template "/Designs/Swift-v2/Paragraph/Scanvaegt_SearchResult.cshtml" System.ArgumentException: The provided type 'Core.Indexing.CustomerProductIndexSchemaExtender, Core' is not compatible with the expected type 'Dynamicweb.Indexing.IIndexSchemaExtender'. (Parameter 'extenderType') at Dynamicweb.Indexing.Schemas.ExtensionFieldDefinition..ctor(String extenderType, IList`1 excludedFields) at Dynamicweb.Indexing.IndexHelper.GetField(List`1 fieldsFromExtenders, XElement fieldElement, String& fieldTypeName) at Dynamicweb.Indexing.IndexHelper.FillIndexWithSchema(XElement root, IIndex index) at Dynamicweb.Indexing.IndexHelper.ConvertToIndex(XElement obj, Boolean fillSchema) at Dynamicweb.Indexing.IndexService.LoadIndex(String name, Boolean fillSchema) at Dynamicweb.Indexing.Queries.IndexQueryProvider.Query(IQuery query, QuerySettings settings) at Dynamicweb.Indexing.Querying.QueryService.Query(IQuery query, QuerySettings settings) at Core.Services.QueryService.GetQueryResult(IQueryService queryService, String repository, String queryId, Dictionary`2 parameters, Int32 consumeSize) at Core.Services.QueryService.Query(String repositoryId, String queryId, Dictionary`2 parameters, Int32 consumeSize) at Core.Services.QueryService.GetIndexDocumentListFromQuery(String repository, String queryId, Dictionary`2 parameters, Int32 consumeSize) at CompiledRazorTemplates.Dynamic.RazorEngine_643452663bf149b081e3ecd3cb9c4c00.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 ViewModelTemplate<Core.ViewModels.Content.ParagraphViewModel> 2 @using Dynamicweb.Ecommerce.ProductCatalog 3 @using Dynamicweb.Ecommerce.Products 4 @using Dynamicweb.Frontend 5 @using Dynamicweb.Indexing 6 @using Dynamicweb.Rendering 7 @using QueryService = Core.Services.QueryService 8 @using Core.Services 9 @using Core.ViewModels.Base 10 @using Dynamicweb.Core.Encoders 11 12 @{ 13 string eq = string.Empty; 14 string encodedEq = string.Empty; 15 if (string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["eq"]) == false) 16 { 17 eq = Dynamicweb.Context.Current.Request["eq"]; 18 encodedEq = HtmlEncoder.HtmlEncode(eq); 19 } 20 21 IEnumerable<IndexDocument> queryResultMarketingProducts = QueryService.Instance.GetIndexDocumentListFromQuery(Core.Constants.Repository.RepoNameProducts, Core.Constants.Repository.QueryNameProducts, new Dictionary<string, object> {{"eq", eq}, {"IsWebshopProduct", "false"}}, 5); 22 IEnumerable<IndexDocument> queryResultWebshopProducts = QueryService.Instance.GetIndexDocumentListFromQuery(Core.Constants.Repository.RepoNameProducts, Core.Constants.Repository.QueryNameProducts, new Dictionary<string, object> {{"eq", eq}, {"IsWebshopProduct", "true"}}, 6); 23 IEnumerable<IndexDocument> queryResultProductGroups = QueryService.Instance.GetIndexDocumentListFromQuery(Core.Constants.Repository.RepoNameProductGroups, Core.Constants.Repository.QueryNameProductGroups, new Dictionary<string, object> {{"eq", eq}}, 5); 24 IEnumerable<IndexDocument> queryResultContent = QueryService.Instance.GetIndexDocumentListFromQuery(Core.Constants.Repository.RepoNameContent, Core.Constants.Repository.QueryNameContent, new Dictionary<string, object> {{"eq", eq}}, 5); 25 bool hasResults = queryResultMarketingProducts.Any() || queryResultWebshopProducts.Any() || queryResultProductGroups.Any() || queryResultContent.Any(); 26 27 ClassList resultGroupClasslist = new ClassList("d-flex gap-3 p-3 flex-wrap"); 28 ClassList dropdownItemClasslist = new ClassList("dropdown-item py-2 text-wrap small opacity-75"); 29 } 30 <div id="js-scanvaegt-search-result"> 31 @if (hasResults == true) 32 { 33 @if (queryResultProductGroups.Any()) 34 { 35 <div class="@resultGroupClasslist"> 36 37 <div class="col"> 38 <h6 class="text-uppercase fs-7">@Translate("Search Modal – Heading - Groups", "Grupper")</h6> 39 <ul class="list-group list-unstyled"> 40 @foreach (IndexDocument resultItem in queryResultProductGroups) 41 { 42 string groupId = resultItem["GroupId"] is string ? resultItem["GroupId"].ToString() : string.Empty; 43 ProductGroupViewModel? groupViewModel = Core.Services.ProductGroupService.Instance.GetProductGroupViewModelById(groupId); 44 if (groupViewModel != null) 45 { 46 Group? group = Dynamicweb.Ecommerce.Services.ProductGroups.GetGroup(groupId); 47 string pageLink = group.Meta.PrimaryPageId > 0 ? groupViewModel.GetGroupLink(group.Meta.PrimaryPageId) : string.Empty; 48 pageLink = SearchEngineFriendlyURLs.GetFriendlyUrl(pageLink); 49 50 <li class="@dropdownItemClasslist" 51 onclick="swift.Typeahead.selectSuggestion(this);" data-param="GroupID" 52 data-paramvalue="@groupViewModel.Id" data-page-type="productgroup" 53 data-selected-details-page="@pageLink"> 54 <span aria-hidden="true" 55 class="d-none dropdown-item-search-icon d-flex align-items-center justify-content-center"></span> 56 @*<span class="js-suggestion flex-fill text-break">@groupViewModel.Name</span>*@ 57 @RenderingService.Instance.HighlightString(groupViewModel.Name, encodedEq) 58 </li> 59 } 60 } 61 </ul> 62 </div> 63 64 </div> 65 } 66 67 @if (queryResultContent.Any() || queryResultMarketingProducts.Any()) 68 { 69 70 <div class="@resultGroupClasslist"> 71 <div class="col-12"> 72 <h6 class="mb-0 text-uppercase fs-7">@Translate("Search Modal – Heading - Content", "Indhold")</h6> 73 </div> 74 @if (queryResultContent.Any()) 75 { 76 <div class="col"> 77 <ul class="list-group list-unstyled"> 78 @foreach (IndexDocument resultItem in queryResultContent) 79 { 80 string strPageId = resultItem["PageId"].ToString(); 81 int.TryParse(strPageId, out int pageId); 82 string pageName = resultItem["PageMenuText"].ToString(); 83 string pageLink = SearchEngineFriendlyURLs.GetFriendlyUrl(pageId); 84 85 <li class="@dropdownItemClasslist" 86 onclick="swift.Typeahead.selectSuggestion(this);" data-param="ID" 87 data-paramvalue="@pageId" data-selected-details-page="@pageLink"> 88 <span aria-hidden="true" 89 class="d-none dropdown-item-search-icon d-flex align-items-center justify-content-center"></span> 90 @*<span class="js-suggestion flex-fill text-break">@pageName</span>*@ 91 @RenderingService.Instance.HighlightString(pageName, encodedEq) 92 </li> 93 } 94 </ul> 95 </div> 96 } 97 @if (queryResultMarketingProducts.Any()) 98 { 99 <div class="col"> 100 <ul class="list-group list-unstyled"> 101 @foreach (IndexDocument resultItem in queryResultMarketingProducts) 102 { 103 string? productId = resultItem["ID"].ToString(); 104 string? variantId = resultItem.ContainsKey("VariantID") ? resultItem["VariantID"].ToString() : string.Empty; 105 Core.ViewModels.Ecommerce.ProductViewModel? product = Core.Services.ProductService.Instance.GetProductViewModelById(productId, variantId); 106 if (product != null) 107 { 108 <li class="@dropdownItemClasslist" 109 onclick="swift.Typeahead.selectSuggestion(this);" data-param="ProductId" 110 data-selected-details-page="@product.Link" data-paramvalue="@product.Id"> 111 <span aria-hidden="true" 112 class="d-none dropdown-item-search-icon d-flex align-items-center justify-content-center"></span> 113 @RenderingService.Instance.HighlightString(product.Name + " - " + product.Number, encodedEq) 114 </li> 115 } 116 } 117 </ul> 118 </div> 119 } 120 </div> 121 } 122 123 @if (queryResultWebshopProducts.Any()) 124 { 125 <div class="@resultGroupClasslist"> 126 127 <div class="col"> 128 <h6 class="text-uppercase fs-7">@Translate("Search Modal – Heading - Webshop Products", "Produkter")</h6> 129 <div class="row"> 130 @foreach (IndexDocument resultItem in queryResultWebshopProducts) 131 { 132 string? productId = resultItem["ID"].ToString(); 133 string? variantId = resultItem.ContainsKey("VariantID") ? resultItem["VariantID"].ToString() : string.Empty; 134 Core.ViewModels.Ecommerce.ProductViewModel? product = Core.Services.ProductService.Instance.GetProductViewModelById(productId, variantId); 135 136 if (product != null) 137 { 138 dropdownItemClasslist.Add("query-result-products"); 139 <li class="@dropdownItemClasslist" 140 onclick="swift.Typeahead.selectSuggestion(this);" data-param="ProductId" 141 data-selected-details-page="@product.Link" data-paramvalue="@product.Id"> 142 <span aria-hidden="true" 143 class="d-none dropdown-item-search-icon d-flex align-items-center justify-content-center"></span> 144 <span class="js-suggestion d-none">@product.Name</span> 145 @product.RenderedHtml.ListItem 146 </li> 147 } 148 } 149 </div> 150 </div> 151 152 </div> 153 } 154 } 155 else 156 { 157 <div class="@resultGroupClasslist"> 158 <div class="col"> 159 <p>Din søgning gav ingen resultater.</p> 160 </div> 161 </div> 162 } 163 </div>