Kaffekonsulentens blog

Velkommen til kaffekonsulentens blog! Her finder du maser af vores bedste kaffetips, nyttige guides og inspiration til kaffeløsningen i din virksomhed. Her deler vi også ud af vores specialistviden om alt fra kaffe, te og kaffemaskiner. 

Skriv til os, hvis du har spørgsmål, ønsker eller forslag til nye indlæg!

Error executing template "Designs/Swift/Paragraph/Swift_ArticleList.cshtml"
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Dynamicweb.Content.Items.Metadata.FieldOptionMetadataItemSource.get_SourceItems()
   at Dynamicweb.Content.Items.Metadata.FieldOptionMetadataItemSource.get_Values()
   at Dynamicweb.Content.Items.Rendering.Renderer.RenderOptions(ItemField field, Object value, String tagPrefix, Template template)
   at Dynamicweb.Content.Items.Rendering.Renderer.RenderItemField(ItemField field, Object value, Dictionary`2 validationErrors, Boolean allowEditing, Template template, String tagPrefix, ItemEntry itemEntry)
   at Dynamicweb.Content.Items.Rendering.Renderer.RenderItem(ItemEntry item, ItemSettings settings)
   at Dynamicweb.Content.Items.Rendering.Renderer.RenderItems(IEnumerable`1 items, ItemListSettings settings)
   at Dynamicweb.ItemPublisher.Frontend.List()
   at Dynamicweb.ItemPublisher.Frontend.GetContent()
   at Dynamicweb.ItemPublisher.Frontend.GetContentBySettings(String settings)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Dynamicweb.Extensibility.AddIns.AddInManager.InvokeFunction(Object instance, String functionName, Object[] arguments)
   at Dynamicweb.Rendering.TemplateBase`1.RenderItemList(Object settings)
   at CompiledRazorTemplates.Dynamic.RazorEngine_6509f7f55f2a4561811dbfd41705e866.<>c__DisplayClass0_0.<RenderArticleList>b__0(TextWriter __razor_helper_writer) in D:\Solution\BKI LIVE\Files\Templates\Designs\Swift\Paragraph\Swift_ArticleList.cshtml:line 130
   at CompiledRazorTemplates.Dynamic.RazorEngine_6509f7f55f2a4561811dbfd41705e866.Execute() in D:\Solution\BKI LIVE\Files\Templates\Designs\Swift\Paragraph\Swift_ArticleList.cshtml:line 22
   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 3 @{ 4 string listSource = Model.Item.GetRawValueString("ListSource", Model.PageID.ToString()); 5 string listBehaviour = Model.Item.GetRawValueString("ListBehaviour", "articles"); 6 string articleListSortOrder = Model.Item.GetRawValueString("ArticleListSortOrder", "Descending"); 7 string articleListLayout = Model.Item.GetRawValueString("ArticleListLayout", "grid"); 8 string columnTheme = Model.Item.GetRawValueString("ColumnTheme", string.Empty); 9 string columnThemeClass = columnTheme != string.Empty ? " theme " + columnTheme + " p-3" + (articleListLayout == "carousel" ? " px-lg-4" : string.Empty) : string.Empty; 10 11 int maxItemsInList = !string.IsNullOrEmpty(Model.Item.GetInt32("MaxItemsInList").ToString()) ? Model.Item.GetInt32("MaxItemsInList") : 10; 12 13 <div class="h-100@(columnThemeClass) item_@Model.Item.SystemName.ToLower()"> 14 <a id="@Model.ID" class="user-select-none" style="scroll-margin-top:var(--header-height,150px)"></a> 15 16 @switch (articleListLayout) 17 { 18 case "grid": 19 20 { 21 if (listBehaviour == "articles") 22 {@RenderArticleList("Swift_Article", listSource, maxItemsInList, articleListSortOrder) } 23 if (listBehaviour == "lists") 24 { @RenderArticleList("Swift_ArticleListPage", listSource, maxItemsInList, articleListSortOrder) } 25 } 26 27 break; 28 29 case "carousel": 30 var carouselSettings = Model.Item.GetRawValueString("CarouselSettings", "4"); 31 string slidesPerPage = $"slider-item-show{carouselSettings}"; 32 string navigationStyle = $"{Model.Item.GetRawValueString("NavigationStyle", "slider-nav-round")}"; 33 string navigationPlacement = $"{Model.Item.GetRawValueString("NavigationPlacement", "slider-nav-on-slides")}"; 34 string indicatorStyle = $"{Model.Item.GetRawValueString("IndicatorStyle", string.Empty)}"; 35 string revealSlides = Model.Item.GetRawValueString("RevealSlides", "reveal") == "reveal" ? "slider-item-reveal" : string.Empty; 36 string sliderItemsGap = Model.Item.GetRawValueString("SliderItemsGap", "slider-item-gap") == "slider-item-nogap" ? "slider-item-nogap" : string.Empty; 37 string navigationAlwaysVisible = (Model.Item.GetBoolean("NavigationAlwaysVisible")) ? "slider-nav-visible" : string.Empty; 38 string navigationVisibleOnTouch = (Model.Item.GetBoolean("NavigationVisibleOnTouch")) ? "slider-nav-touch" : string.Empty; 39 string navigationShowScrollbar = (Model.Item.GetBoolean("NavigationShowScrollbar")) ? "slider-nav-scrollbar" : string.Empty; 40 string scrollBarForceMobile = (Model.Item.GetBoolean("NavigationShowScrollbar")) ? "--swiffy-slider-track-height:0.5rem !important;" : string.Empty; 41 string navigationSmall = (Model.Item.GetBoolean("NavigationSmall")) ? "slider-nav-sm" : string.Empty; 42 string navigationInvertColors = (Model.Item.GetBoolean("NavigationInvertColors")) ? "slider-nav-dark" : string.Empty; 43 string navigationSlideEntirePage = (Model.Item.GetBoolean("NavigationSlideEntirePage")) ? "slider-nav-page" : string.Empty; 44 string navigationNoLoop = (Model.Item.GetBoolean("NavigationNoLoop")) ? "slider-nav-noloop" : string.Empty; 45 string indicatorsOutsideSlider = (Model.Item.GetBoolean("IndicatorsOutsideSlider") && indicatorStyle != string.Empty) ? "slider-indicators-outside" : string.Empty; 46 string indicatorsHighlightActive = (Model.Item.GetBoolean("IndicatorsHighlightActive")) ? "slider-indicators-highlight" : string.Empty; 47 string indicatorsInvertColors = (Model.Item.GetBoolean("IndicatorsInvertedColors")) ? "slider-indicators-dark" : string.Empty; 48 string indicatorsVisibleOnSmallDevices = (Model.Item.GetBoolean("IndicatorsVisibleOnSmallDevices")) ? "slider-indicators-sm" : string.Empty; 49 string animation = Model.Item.GetRawValueString("Animation", string.Empty) != string.Empty ? $"slider-nav-animation {Model.Item.GetRawValueString("Animation")}" : string.Empty; 50 string autoplay = (Model.Item.GetBoolean("Autoplay")) ? "slider-nav-autoplay" : string.Empty; 51 string autoplayInterval = Model.Item.GetRawValueString("AutoplayInterval", string.Empty); 52 bool hideSliderNavigation = false; 53 54 if (navigationStyle == "slider-nav-none") 55 { 56 hideSliderNavigation = true; 57 } 58 59 <div id="Slider_@Model.ID" class="swiffy-slider @(slidesPerPage) @(navigationStyle) @(revealSlides) @(navigationPlacement) @(navigationAlwaysVisible) @(navigationVisibleOnTouch) @(sliderItemsGap) @(indicatorStyle) @(navigationShowScrollbar) @(navigationSmall) @(navigationInvertColors) @(indicatorsOutsideSlider) @(navigationNoLoop) @(indicatorsHighlightActive) @(indicatorsInvertColors) @(indicatorsVisibleOnSmallDevices) @(navigationSlideEntirePage) @(animation) @(autoplay) item_@Model.Item.SystemName.ToLower()" style="--swiffy-slider-nav-light:var(--swift-foreground-color);--swiffy-slider-nav-dark:var(--swift-background-color);visibility:hidden;opacity:0;@(scrollBarForceMobile)" data-slider-nav-autoplay-interval="@(autoplayInterval)"> 60 <div class="slider-container pb-3 py-lg-3 px-lg-3 mt-lg-n3 mx-lg-n3"> 61 @{ 62 if (listBehaviour == "articles") 63 { @RenderArticleList("Swift_Article", listSource, maxItemsInList, articleListSortOrder) } 64 if (listBehaviour == "lists") 65 { @RenderArticleList("Swift_ArticleListPage", listSource, maxItemsInList, articleListSortOrder) } 66 } 67 </div> 68 69 @if (!hideSliderNavigation) 70 { 71 <button type="button" title="@Translate("Previous slide")" class="slider-nav" style="z-index:1;"> 72 <span class="visually-hidden">@Translate("Previous slide")</span> 73 </button> 74 <button type="button" title="@Translate("Next slide")" class="slider-nav slider-nav-next" style="z-index:1;"> 75 <span class="visually-hidden">@Translate("Next slide")</span> 76 </button> 77 } 78 @if (indicatorStyle != "slider-indicators-hidden") 79 { 80 <div class="slider-indicators" style="z-index:1;"></div> 81 } 82 83 <script type="module" src="/Files/Templates/Designs/Swift/Assets/js/swiffy-slider.js"></script> 84 <script type="module"> 85 const slider = document.querySelector('#Slider_@Model.ID'); 86 87 swift.AssetLoader.Load('/Files/Templates/Designs/Swift/Assets/css/swiffy-slider.min.css', 'css'); 88 document.addEventListener('load.swift.assetloader', () => { 89 swiffyslider.initSlider(slider); 90 slider.style.opacity = 1; 91 slider.style.visibility = "visible"; 92 }); 93 94 </script> 95 96 @if (indicatorStyle != "slider-indicators-hidden") 97 { 98 <script type="module"> 99 const slider = document.querySelector('#Slider_@Model.ID'); 100 const sliderContainer = slider.querySelector('.slider-container'); 101 let slides = sliderContainer.querySelectorAll('article'); 102 const sliderIndicators = slider.querySelector('.slider-indicators'); 103 104 slides.forEach((slide,index) => { 105 const indicator = document.createElement('template'); 106 indicator.innerHTML = ` 107 <button type="button" class="${index == 0 ? "active" : ""}" title='@Translate("Go to slide") ${index + 1}'> 108 <span class="visually-hidden">@Translate("Go to slide") ${index + 1}</span> 109 </button> 110 `; 111 sliderIndicators.appendChild(indicator.content); 112 }); 113 </script> 114 } 115 </div> 116 117 break; 118 } 119 </div> 120 } 121 122 @helper RenderArticleList(string itemType, string listSource, int maxItemsInList, string articleListSortOrder) 123 { 124 var parent = Dynamicweb.Context.Current.Request.QueryString.Get("list"); 125 var query = string.IsNullOrEmpty(parent) ? listSource : parent; 126 var includeAllChildren = Model.Item.GetRawValueString("ListDepth", "all") == "all" ? true : false; 127 var listContext = Model.Item?.GetRawValueString("ListContext", string.Empty).Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 128 var filterString = string.Join(" or ", listContext.Select(item => $"Tags == \"{item}\" or Tags ends with \",{item}\" or Tags starts with \"{item},\" or Tags contains \",{item},\"")); 129 130 @RenderItemList(new 131 { 132 ItemType = itemType, 133 ListTemplate = "ItemPublisher/List/List.cshtml", 134 ItemFieldsList = "*", 135 ListSourceType = "Page", 136 ListSourcePage = query, 137 ListPageSize = maxItemsInList, 138 IncludeParagraphItems = true, 139 ListOrderBy = "PublishedDate", 140 ListSecondOrderBy = "Updated", 141 ListOrderByDirection = articleListSortOrder, 142 IncludeAllChildItems = includeAllChildren, 143 Filter = itemType == "Swift_Article" ? filterString : null // Filter only if "articles only" 144 }) 145 } 146

Mød Kaffekonsulenterne

Vi er kaffekonsulenter bag bloggen, og vi er altid klar til at svare på dine spørgsmål og vejlede dig. Har du brug for at komme i kontakt med dine lokale kaffeekonsulent, kan du her finde den BKI Professionel konsulent, der er nærmest dig. 

Søren Meng
Divisionschef,
BKI Professionel

Claus Ryberg
National salgschef,
BKI Professionel

Max Lindegaard Nielsen
National Key Account Manager,
BKI Professionel

Brug bloggen som inspiration til jeres firmakaffe!

Som din guide gennem kaffens univers, deler vi på Kaffe konsulentens Blog vores passion for den perfekte kop kaffe og den indflydelse, den kan have på din forretning. Vores blog er dedikeret til at udforske kaffe i alle dens nuancer - fra dyrkning og brygning til de seneste trends inden for kaffeindustrien. Uanset om du er kaffekender eller bare nysgerrig på at forstå kaffens magi, vil Kaffekonsulentens blog forhåbentlig både inspirere og informere.

Dyk ned i vores mange blogindlæg og opdag hemmelighederne bag den ideelle kaffeløsning for din virksomhed. Lad os sammen skabe en smagsoplevelse, der vækker sanserne og løfter din kaffe til nye højder. 

Velkommen til Kaffekonsulentens blog – Vi skaber gode kaffeoplevelser.

Elegant kaffeløsning fra BKI til virksomheder og kontor - bliv inspireret på kaffekonsulentens blog!
læs blog om medarbejders kaffevaner
kaffe i glas fra BKI kaffemaskine i blog
kaffe fra stempelkande fra kaffeblog