@inherits ViewModelTemplate @using Dynamicweb.Ecommerce.ProductCatalog @using Dynamicweb.Frontend @using Dynamicweb.Content @using Dynamicweb.Rendering @using Dynamicweb.Ecommerce.ProductCatalog @{ string sizeCssClass = GetViewParameter("size") != null ? GetViewParameter("size").ToString() : ""; string newBadgeCssClassName = GetViewParameter("newBadgeCssClassName") != null ? GetViewParameterString("newBadgeCssClassName").Trim().ToLower() : ""; bool newBadgeEnabled = newBadgeCssClassName != "" && newBadgeCssClassName != "none" ? true : false; List campaignBadgesValues = GetViewParameter("campaignBadgesValues") != null ? GetViewParameterString("campaignBadgesValues").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList() : new List(); } @if (Model.Discount.Price != 0) { string saleBadgeCssClassName = GetViewParameter("saleBadgeCssClassName") != null ? GetViewParameterString("saleBadgeCssClassName").Trim().ToLower() : ""; bool saleBadgeEnabled = saleBadgeCssClassName != "" && saleBadgeCssClassName != "none" ? true : false; if (saleBadgeEnabled) { string saleBadgeType = GetViewParameter("saleBadgeType") != null ? GetViewParameterString("saleBadgeType") : "amount"; string title = saleBadgeType == "amount" ? "-" + Model.Discount.PriceFormatted : ""; title = saleBadgeType == "percentage" ? "-" + Math.Floor((Model.Discount.Price / Model.PriceBeforeDiscount.Price) * 100) + "%" : title; string hideAutoLabel = ""; if (saleBadgeType == "amount" || saleBadgeType == "percentage") { hideAutoLabel = "badge-no-label"; } @title } } @if (newBadgeEnabled) { DateTime createdDate = Model.Created.Value; double newPublicationDays = GetViewParameter("newPublicationDays") != null ? GetViewParameterDouble("newPublicationDays") : 0; if ((newPublicationDays == 0) || (createdDate.AddDays(newPublicationDays) > DateTime.Now)) { } } @if (campaignBadgesValues.Any()) { Dictionary badgeConfigurations; if (Dynamicweb.Context.Current.Items.Contains("badgeConfigurations")) { badgeConfigurations = (Dictionary)Dynamicweb.Context.Current.Items["badgeConfigurations"]; } else { var badgesPage = Pageview.AreaSettings.GetLink("EcommerceBadgesPage") != null ? Pageview.AreaSettings.GetLink("EcommerceBadgesPage").PageId : 0; var allBadges = badgesPage != 0 ? Dynamicweb.Services.Paragraphs.GetParagraphsByPageId(badgesPage) : null; badgeConfigurations = new Dictionary(); foreach (Paragraph badge in allBadges) { var paragraphviewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreateParagraphInfoViewModel(badge); string cssClassName = paragraphviewModel.Item.GetString("CssClassName").Trim().ToLower(); if (!badgeConfigurations.ContainsKey(cssClassName)) { badgeConfigurations.Add(cssClassName, paragraphviewModel); } } Dynamicweb.Context.Current.Items.Add("badgeConfigurations", badgeConfigurations); } int badgesCount = 0; if (badgeConfigurations.Any()) { foreach (string campaign in campaignBadgesValues) { if (!string.IsNullOrEmpty(campaign)) { FieldValueViewModel availableCampaignsObject; Model.ProductFields.TryGetValue("Campaign", out availableCampaignsObject); if (availableCampaignsObject != null) { string campaignType = string.Empty; if (badgeConfigurations.ContainsKey(campaign)) { ParagraphInfoViewModel paragraphviewModel; if (badgeConfigurations.TryGetValue(campaign, out paragraphviewModel)) { campaignType = paragraphviewModel.Item.GetRawValueString("CampaignType"); } } List availableCampaigns = (List)availableCampaignsObject.Value; foreach (FieldOptionValueViewModel availableOption in availableCampaigns) { if (campaignType == availableOption.Value) { badgesCount++; break; } } } } } } if (badgesCount == 0 && Pageview.IsVisualEditorMode) { @Translate("Badge example") } } else if (Pageview.IsVisualEditorMode) { @Translate("Badge example") }