Tlf. 63 41 12 66
Exception in template (Designs\StandardWebshop\eCom/Productlist/NoProductsFound.cshtml): System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.bedcdbaefffeac.Execute()
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
   at RazorEngine.Templating.TemplateService.Run(ITemplate template, DynamicViewBag viewBag)
   at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName)
   at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()
@using NORRIQ.Common8.Ecom @using NORRIQ.Common8.Factory @using NORRIQ.Common8.Razor; @using NORRIQ.Common8.Context; @using NORRIQ.Common8.Caching @using NORRIQ.Universal.Extensions @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var Columns = "col-xs-6 col-sm-4 col-md-4"; var query = System.Web.HttpContext.Current.Request["EcomQuery"]; var catalogsloop = ObjectFactory.GetInstance<NORRIQ.Common8.Context.AreaItemSettings>().GetCurrentAreaValue<int>("EcomCatalogs"); var catalogs = Dynamicweb.Content.Items.ItemList.GetItemListById(catalogsloop).Relations; var currentCategory = GetString("Ecom:Group.Number"); } <div class="row"> <div class="col-xs-12 col-sm-12 col-md-3" data-content="sidebar" id="desktopSidebar"> @DwCaching.CacheByPage("nav-sidebar.xslt", () => RenderNavigation(new { Template = "nav-sidebar.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 3 })) @if (Pageview.Page.PropertyItem["ShowFilter"].ToString() == "True") { <text>@using System.Web @using Dynamicweb.Ecommerce.Common; @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @if (GetLoop("FacetGroups").Any()) { var PageID = (String.IsNullOrEmpty(GetString("Ecom:ProductList:Page.ID")) ? "" : "/Default.aspx?ID=" + GetString("Ecom:ProductList:Page.ID")); var GroupID = (String.IsNullOrEmpty(GetString("Ecom:ProductList:Page.GroupID")) ? "" : "&amp;GroupID=" + GetString("Ecom:ProductList:Page.GroupID")); <form id="filter-form" method="get" action="/Default.aspx" class="collapse"> <input type='hidden' name='ID' value='@Pageview.Page.ID' /> @if (HttpContext.Current.Request["ecomquery"] != null) { <input type="hidden" name="ecomquery" value="@HttpContext.Current.Request["ecomquery"]" /> } @foreach (LoopItem groups in GetLoop("FacetGroups")) { if (groups.GetLoop("Facets").Any()) { if (groups.GetLoop("Facets").Where(fo => fo.GetLoop("FacetOptions").Where(op => op.GetBoolean("FacetOption.Selected")).Any()).Any()) { <ul class="selected-filters"> <li> <span class="selected-filters-header"> <i class="icon-async icon-pulse" aria-hidden="true" style="display:none;"></i> @Translate("Selected Filter") </span> <ul class="selected-filters-body"> @foreach (LoopItem selected in groups.GetLoop("Facets")) { foreach (LoopItem active in selected.GetLoop("FacetOptions")) { if (active.GetBoolean("FacetOption.Selected")) { <li class="selected-filters-item"> <a href="javascript:void(0)" class="selected-filters-option" data-filter-name="@selected.GetString("Facet.Name")" data-filter-type="option" data-filter-option="@selected.GetString("Facet.QueryParameter")@active.GetString("FacetOptions.LoopCounter")"> <span> @selected.GetString("Facet.Name"): <b>@active.GetString("FacetOption.Label")</b> </span> <i class="icon-close" aria-hidden="true"></i> </a> </li> } } } <li class="selected-filters-item"> <a href="@PageID@GroupID" class="selected-filters-option"> <span> @Translate("Clear all", "Clear all") </span> <i class="icon-close" aria-hidden="true"></i> </a> </li> </ul> </li> </ul> } <ul class="sidebar-filter"> @foreach (LoopItem facets in groups.GetLoop("Facets")) { var Options = facets.GetInteger("Facet.OptionWithResultCount") > 0; var Scrollable = facets.GetInteger("Facet.OptionWithResultCount") > 7 ? "scrollable" : ""; var useBrackets = facets.GetLoop("FacetOptions").Any(o => o.GetString("FacetOption.Value").IndexOf(',') > -1); var Group = facets.GetString("Facet.QueryParameter") + "Collapse"; if (Options) { <li class="filter-group" id="@facets.GetString("Facet.QueryParameter")" name="@facets.GetString("Facet.QueryParameter")" data-filter-type="option"> <a data-toggle="collapse" aria-expanded="false" role="button" data-target="#@Group"> <span class="filter-group-label"><i class="icon-async icon-pulse" aria-hidden="true" style="display:none;"></i> @facets.GetString("Facet.Name")</span> <i class="icon-angle-toggle" aria-hidden="true"></i> </a> @if (facets.GetLoop("FacetOptions").Any()) { <ul class="filter-group-body collapse @Scrollable in" id="@Group"> @foreach (LoopItem option in facets.GetLoop("FacetOptions")) { <li> <input type="checkbox" id="@facets.GetString("Facet.QueryParameter")@option.GetString("FacetOptions.LoopCounter")" name="@facets.GetString("Facet.QueryParameter")" value="@(useBrackets ? "[" + option.GetString("FacetOption.Value") + "]" : option.GetString("FacetOption.Value"))" @(option.GetBoolean("FacetOption.Selected") ? " checked=\"checked\" " : "") /> @if (option.GetString("FacetOption.Label").EndsWith(".jpg")) { var maerkeUrl = "/Files/Images/Symbol/" + option.GetString("FacetOption.Label"); var maerkeAlt = option.GetString("FacetOption.Label"); maerkeAlt = maerkeAlt.Substring(0, maerkeAlt.LastIndexOf(".jpg")); <text> <img src="@maerkeUrl" alt="@maerkeAlt" class="img-responsive" /> @maerkeAlt <span>(@option.GetString("FacetOption.Count"))</span> </text> } else { <text> @option.GetString("FacetOption.Label") <span>(@option.GetString("FacetOption.Count"))</span> </text> } </li> } </ul> } </li> } } </ul> } } </form> <script append="true"> $(document).ready(function () { var searchFilterOptions = new AppStart.SearchFilterSelectionHandlerOptions(); searchFilterOptions.$filterForm = $('#filter-form'); searchFilterOptions.$filterGroups = $('.filter-group'); searchFilterOptions.$filterSlider = $('.filter-slider'); searchFilterOptions.$selectedFilters = $('.selected-filters-option'); searchFilterOptions.collapseUnselected = true; searchFilterOptions.$noFilterOpen = $('#Producent'); searchFilterOptions.$keepOpen = $('#Producent'); searchFilterOptions.$scrollable = $('.scrollable'); var searchFilterHandler = new AppStart.SearchFilterSelectionHandler(searchFilterOptions); searchFilterHandler.Init(); }); </script> }</text> } </div> <div class="col-xs-12 col-sm-12 col-md-9"> <header class="productlist-header clearfix"> @if (catalogs.Any()) { <ul class="list-inline catalogs"> @foreach (Dynamicweb.Content.Items.ItemEntry s in catalogs) { Dynamicweb.Content.Items.Item catalog = Dynamicweb.Content.Items.Item.GetItemById("Catalog", s.Id); object groupId = null; catalog.TryGetValue("CategoryId", ref groupId); if (currentCategory == groupId.ToString()) { object title = null; catalog.TryGetValue("Title", ref title); object link = null; catalog.TryGetValue("Link", ref link); object image = null; catalog.TryGetValue("Image", ref image); <li> <a href="@link" class="hvr-glow"> <figure> <img src="@image" alt="@title" class="img-responsive" /> <figcaption>@Translate("Se vores katalog fra") @title</figcaption> </figure> </a> </li> } } </ul> } <h1 class="title-styled"> @if (!String.IsNullOrEmpty(GetString("Ecom:Group.Name"))) { @GetString("Ecom:Group.Name") } else { @GetGlobalValue("Global:Page.Name") } @if (!String.IsNullOrEmpty(GetString("Ecom:ProductList:Search.Query"))) { <small> (@GetString("Ecom:ProductList:Search.Query")) </small> } </h1> </header> @if (!String.IsNullOrEmpty(GetString("Ecom:Group.Description"))) { <div class="productlist-description"> @GetString("Ecom:Group.Description") </div> } @if (GetLoop("Subgroups").Any()) { <div class="grouplist-grid-flex"> @foreach (var group in GetLoop("Subgroups").Where(g=> g.GetBoolean("Ecom:Group.ShowInMenu"))) { var catalog = group.GetString("Ecom:Group:Field.CatalogFile.Value"); if (!String.IsNullOrEmpty(catalog)) { <div class="@Columns" data-group-display="flex"> <div class="grouplist-grid-group hvr-glow" data-products="@group.GetString("Ecom:Group.ProductCount")"> <a href="@group.GetString("Ecom:Group.Link.Clean")" class="grouplist-grid-image"> <img src="/Admin/Public/GetImage.ashx?Image=@group.GetString("Ecom:Group.LargeImage")&amp;Width=200&amp;Height=200&amp;Crop=5&amp;Compression=100" class="img-responsive" /> </a> <div class="grouplist-grid-caption catalog list-unstyled"> <p> <a href="@group.GetString("Ecom:Group.Link.Clean")"> @group.GetString("Ecom:Group.Name") </a> </p> <div> <a href="/Files/@catalog" class="btn btn-primary btn-sm"> <span>@Translate("Hent PDF-fil")</span> </a> </div> </div> </div> </div> } else { <div class="@Columns" data-group-display="flex"> <div class="grouplist-grid-group hvr-glow" data-products="@group.GetString("Ecom:Group.ProductCount")"> <a href="@group.GetString("Ecom:Group.Link.Clean")" class="grouplist-grid-image"> <img src="/Admin/Public/GetImage.ashx?Image=@group.GetString("Ecom:Group.LargeImage")&amp;Width=200&amp;Height=200&amp;Crop=5&amp;Compression=100" class="img-responsive" /> </a> <a href="@group.GetString("Ecom:Group.Link.Clean")" class="grouplist-grid-caption"> @group.GetString("Ecom:Group.Name") </a> </div> </div> } } </div> } else if (GetLoop("ProductGroups").Any()) { <div class="grouplist-grid-flex"> @foreach (var group in GetLoop("ProductGroups")) { var catalog = group.GetString("Ecom:Group:Field.CatalogFile.Value"); if (!String.IsNullOrEmpty(catalog)) { <div class="@Columns" data-group-display="flex"> <div class="grouplist-grid-group hvr-glow" data-products="@group.GetString("Ecom:Group.ProductCount")"> <a href="@group.GetString("Ecom:Group.Link.Clean")" class="grouplist-grid-image"> <img src="/Admin/Public/GetImage.ashx?Image=@group.GetString("Ecom:Group.LargeImage")&amp;Width=200&amp;Height=200&amp;Crop=5&amp;Compression=100" class="img-responsive" /> </a> <div class="grouplist-grid-caption catalog list-unstyled"> <p> <a href="@group.GetString("Ecom:Group.Link.Clean")"> @group.GetString("Ecom:Group.Name") </a> </p> <div> <a href="/Files/@catalog" class="btn btn-primary btn-sm"> <span>@Translate("Hent PDF-fil")</span> </a> </div> </div> </div> </div> } else { <div class="@Columns" data-group-display="flex"> <div class="grouplist-grid-group hvr-glow" data-products="@group.GetString("Ecom:Group.ProductCount")"> <a href="@group.GetString("Ecom:Group.Link.Clean")" class="grouplist-grid-image"> <img src="/Admin/Public/GetImage.ashx?Image=@group.GetString("Ecom:Group.LargeImage")&amp;Width=200&amp;Height=200&amp;Crop=5&amp;Compression=100" class="img-responsive" /> </a> <a href="@group.GetString("Ecom:Group.Link.Clean")" class="grouplist-grid-caption"> @group.GetString("Ecom:Group.Name") </a> </div> </div> } } </div> } else if (!String.IsNullOrEmpty(GetString("Ecom:Group:Field.CatalogFile.Value"))) { <div> @{ var catalog = GetString("Ecom:Group:Field.CatalogFile.Value"); } <div class="catalog-page row"> <div class="col-sm-8"> <p> <a href="/Files/@catalog" class="btn btn-primary btn-sm"> <span>@Translate("Hent PDF-fil")</span> </a> </p> <hr class="hr" /> <form method="post" action="#" class="form" id="catalog-form"> <input type="hidden" name="group-name" value='@GetString("Ecom:Group.Name")'> <input type="hidden" name="group-id" value='@GetString("Ecom:Group.ID") '> <h2> @Translate("Catalog: Request", "Forespørgsel") </h2> <p> @Translate("Catalog: Info", "Send din forespørgsel nedenfor...") </p> <div class="form-group"> <label for="Navn">@Translate("Catalog: Name", "Navn")</label> <input type="text" class="form-control" id="Navn" name="Navn"> </div> <div class="form-group"> <label for="Email">@Translate("Catalog: Email", "E-mail adresse")</label> <input type="email" class="form-control" id="Email" name="Email"> </div> <div class="form-group"> <label for="Besked">@Translate("Catalog: Comment", "Besked")</label> <textarea class="form-control" rows="10" id="Besked" name="Besked"></textarea> </div> <div class="form-group"> <button type="submit" class="btn btn-primary btn-lg" id="Send" name="Send">@Translate("Catalog: Send", "Send")</button> </div> </form> </div> </div> </div> } else { <p> @Translate("(The selected group is empty)") </p> } </div> </div> @if (!string.IsNullOrEmpty(query)) { <script> var results = @GetLoop("Products").Count; var postfix = results > 0 ? "ProductsFound" : "Empty"; var category = "EcomSearch - " + postfix; // Datalayer originates from GTM if (typeof variable !== 'undefined') dataLayer.push({ 'event': 'EcomSearch', 'eventCategory': category, 'eventAction': '@query', 'eventLabel': results }); </script> }