Vi använder cookies för att förbättra användarupplevelsen

Vänta
Varukorgen är tom ...
Exception in template (Designs\Dwsimple\eCom/Productlist/ProductList.cshtml): System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
   at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
   at System.Net.HttpWebRequest.GetRequestStream()
   at CloudinaryDotNet.Api.PrepareRequestContent(HttpWebRequest& request, SortedDictionary`2 parameters, FileDescription file)
   at CloudinaryDotNet.Api.PrepareRequestBody(HttpWebRequest request, HttpMethod method, SortedDictionary`2 parameters, FileDescription file, Dictionary`2 extraHeaders)
   at CloudinaryDotNet.Api.Call(HttpMethod method, String url, SortedDictionary`2 parameters, FileDescription file, Dictionary`2 extraHeaders)
   at CloudinaryDotNet.Api.CallAndParse[T](HttpMethod method, String url, SortedDictionary`2 parameters, FileDescription file, Dictionary`2 extraHeaders)
   at CloudinaryDotNet.Search.Execute()
   at belugi.core.Provider.ImageProvider.ImagesCache(String product)
   at belugi.core.Provider.ImageProvider.<>c__DisplayClass5_0.b__0()
   at System.InMemoryCache.GetOrAdd[T](String key, CachePeriod cachePeriod, Func`1 GetItemsFunc, Boolean isWeb)
   at belugi.core.Provider.ImageProvider.Images(String product)
   at belugi.core.Provider.ImageProvider.MainImage(String product)
   at CompiledRazorTemplates.Dynamic.eeaafbfaaafdf.<>c__DisplayClassba.b__b9(TextWriter __razor_helper_writer)
   at CompiledRazorTemplates.Dynamic.eeaafbfaaafdf.Execute()
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
   at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
   at Dynamicweb.Rendering.Template.Output()
@helper RenderProduct(dynamic product) { var id = product.GetString("Ecom:Product.ID"); var domain = System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority); var Image = belugi.core.Provider.ImageProvider.MainImage(product.GetString("Ecom:Product.Number")); string showStock = HttpContext.Current.Request["showStock"]; bool showStockState = true; if (!string.IsNullOrEmpty(showStock)) { showStockState = true; } var Name = product.GetString("Ecom:Product.Name"); var Description = product.GetString("Ecom:Product.ShortDescription"); var Discount = product.GetString("Ecom:Product.Discount.Price"); var Price = product.GetString("Ecom:Product.Price"); var Fullprice = product.GetString("Ecom:Product:Field.fullprice" + product.GetString("Ecom:Product.Currency.Code")); var url = Pageview.Area.Item["ProductPage"] + "?ProductId=" + id; var cssClass = ""; <figure class="ex @(product.GetInteger("Ecom:Product.Stock") <= 0 ? "disabled" : "")"> @if (product.GetString("Ecom:Product:Field.bestseller") == "True") { DateTime date; if (DateTime.TryParseExact(product.GetString("Ecom:Product:Field.bestsellerdate"), "dd-MM-yyyy", null, System.Globalization.DateTimeStyles.None, out date)) { if (date.Date >= DateTime.Now.Date) { <div class="strip strip-red"><span>@Translate("Product.Bestseller", "Bestseller")</span></div> } } } @if (product.GetString("Ecom:Product:Field.new") == "True") { DateTime date; if (DateTime.TryParseExact(product.GetString("Ecom:Product:Field.newdate"), "dd-MM-yyyy", null, System.Globalization.DateTimeStyles.None, out date)) { if (date.Date >= DateTime.Now.Date) { <div class="strip strip-red"><span>@Translate("Product.New", "Nyhed")</span></div> } } } @if (product.GetString("Ecom:Product:Field.offer") == "True") { DateTime date; if (DateTime.TryParseExact(product.GetString("Ecom:Product:Field.offerdate"), "dd-MM-yyyy", null, System.Globalization.DateTimeStyles.None, out date)) { if (date.Date >= DateTime.Now.Date) { <div class="strip strip-green"><span>@Translate("Product.Offer", "Tilbud")</span></div> } } } @if (product.GetString("Ecom:Product:Field.top10") == "True") { DateTime date; if (DateTime.TryParseExact(product.GetString("Ecom:Product:Field.top10date"), "dd-MM-yyyy", null, System.Globalization.DateTimeStyles.None, out date)) { if (date.Date >= DateTime.Now.Date) { <div class="strip strip-black"><span>@Translate("Product.Top10", "Top 10")</span></div> } } } <div class="image" style="background-image:url('@Image')"> <a href="@url"></a> </div> <div class="title"><a href="@url">@Name</a></div> @if (product.GetInteger("Ecom:Product.Stock") <= 0) { var deliveryText = ""; if (!string.IsNullOrEmpty(GetString("Ecom:Product:Stock.DeliveryText"))) { deliveryText = " (" + GetString("Ecom:Product:Stock.DeliveryText") + " " + Translate(GetString("Ecom:Product:Stock.DeliveryUnit"), GetString("Ecom:Product:Stock.DeliveryUnit")) + ")"; } <div class="price @(!string.IsNullOrWhiteSpace(Fullprice) ? "price-discount" : "")"> <div class="@cssClass btn btn-black btn-block"> @if (!string.IsNullOrWhiteSpace(Fullprice) && Fullprice != product.GetString("Ecom:Product.PriceWithVAT")) { if (product.GetString("Ecom:Product.Price.Currency.Code") == "EUR") { <small>@product.GetString("Ecom:Product.Price.Currency.Symbol") @string.Format("{0:0,0.00}", double.Parse(product.GetString("Ecom:Product:Field.fullprice" + product.GetString("Ecom:Product.Price.Currency.Code"))))</small> } else { <small>@string.Format("{0:0,0.00}", double.Parse(product.GetString("Ecom:Product:Field.fullprice" + product.GetString("Ecom:Product.Price.Currency.Code")))) @product.GetString("Ecom:Product.Currency.Symbol")</small> } } @Price @if (product.GetInteger("Ecom:Product.VariantCount") <= 0) { <span class="ico-disabled" style="background-image:url(@product.GetString("Ecom:Product:Stock.Image.Clean"))" data-toggle="tooltip" data-placement="left" title="@Translate(product.GetString("Ecom:Product:Stock.Text"), product.GetString("Ecom:Product:Stock.Text"))@deliveryText"></span> } else { <div class="mfp-hide main-popup" id="variant-popup-@id"> @RenderProductVariants(product) <form method="post" action="/Default.aspx"> @product.GetValue("Ecom:Product.Form.Clean") <a class="add-variant-to-cart btn btn-black btn-block btn-big" data-isdetail="0"> @Translate("Add to cart", "Add to cart") <i class="fa fa-cart-plus"></i> </a> </form> </div> } </div> </div> } else if (product.GetInteger("Ecom:Product.VariantCount") > 0) { <div class="price open-popup @(!string.IsNullOrWhiteSpace(Fullprice) ? "price-discount" : "")" data-product-id="@id" data-mfp-src="#variant-popup-@id"> <a> @if (!string.IsNullOrWhiteSpace(Fullprice) && Fullprice != product.GetString("Ecom:Product.PriceWithVAT")) { if (product.GetString("Ecom:Product.Price.Currency.Code") == "EUR") { <small>@product.GetString("Ecom:Product.Price.Currency.Symbol") @string.Format("{0:0,0.00}", double.Parse(product.GetString("Ecom:Product:Field.fullprice" + product.GetString("Ecom:Product.Price.Currency.Code"))))</small> } else { <small>@string.Format("{0:0,0.00}", double.Parse(product.GetString("Ecom:Product:Field.fullprice" + product.GetString("Ecom:Product.Price.Currency.Code")))) @product.GetString("Ecom:Product.Currency.Symbol")</small> } } @Price </a> </div> <div class="mfp-hide main-popup" id="variant-popup-@id"> @RenderProductVariants(product) <form method="post" action="/Default.aspx"> @product.GetValue("Ecom:Product.Form.Clean") <a class="add-variant-to-cart btn btn-black btn-block btn-big" data-isdetail="0"> @Translate("Add to cart", "Add to cart") <i class="fa fa-cart-plus"></i> </a> </form> </div> } else { <div class="price @(!string.IsNullOrWhiteSpace(Fullprice) ? "price-discount" : "")" data-product-id="@id"> <form method="post" action="/Default.aspx"> @product.GetValue("Ecom:Product.Form.Clean") <button type="button" class="@cssClass add-variant-to-cart btn btn-black btn-block" data-isdetail="1"> @if (!string.IsNullOrWhiteSpace(Fullprice) && Fullprice != product.GetString("Ecom:Product.PriceWithVAT")) { if (product.GetString("Ecom:Product.Price.Currency.Code") == "EUR") { <small>@product.GetString("Ecom:Product.Price.Currency.Symbol") @string.Format("{0:0,0.00}", double.Parse(product.GetString("Ecom:Product:Field.fullprice" + product.GetString("Ecom:Product.Price.Currency.Code"))))</small> } else { <small>@string.Format("{0:0,0.00}", double.Parse(product.GetString("Ecom:Product:Field.fullprice" + product.GetString("Ecom:Product.Price.Currency.Code")))) @product.GetString("Ecom:Product.Currency.Symbol")</small> } } @Price </button> </form> </div> <div class="mfp-hide main-popup" id="variant-popup-@id"> @RenderProductVariants(product) <form method="post" action="Default.aspx"> @product.GetValue("Ecom:Product.Form.Clean") <a class="add-variant-to-cart btn btn-black btn-block btn-big"> @Translate("Add to cart", "Add to cart") <i class="fa fa-cart-plus"></i> </a> </form> </div> } </figure> } @helper RenderProductVariants(dynamic product) { var variantGroups = product.GetLoop("VariantGroups"); var variantCombinations = product.GetLoop("VariantCombinations"); var selectedVariantComboID = product.GetString("Ecom:Product.SelectedVariantComboID"); @RenderProductVariants(product.GetString("Ecom:Product.ID"), variantGroups, variantCombinations, selectedVariantComboID, isMain: false, defaultPreselect: false) } @helper RenderProductVariants() { var variantGroups = GetLoop("VariantGroups"); var variantCombinations = GetLoop("VariantCombinations"); var selectedVariantComboID = GetString("Ecom:Product.SelectedVariantComboID"); var defaultPreselect = false; if (System.Web.HttpContext.Current.Request.RawUrl.Contains("=VO")) { defaultPreselect = true; } @RenderProductVariants(GetString("Ecom:Product.ID"), variantGroups, variantCombinations, selectedVariantComboID, true, defaultPreselect) } @helper RenderProductVariants(string productID, List<LoopItem> variantGroups, List<LoopItem> variantCombinations, string variantID, bool isMain = true, bool defaultPreselect = true) { var variantsExists = false; var availableVariantCombinations = new List<string>(); foreach (LoopItem variantCombination in variantCombinations) { availableVariantCombinations.Add(variantCombination.GetString("Ecom:VariantCombination.VariantID")); } if (variantGroups.Count() > 0 && availableVariantCombinations.Any()) { //color variant if (variantGroups.Count() == 1) { var otherVariants = new List<ProductVariant>(); var variantgroup = variantGroups.First(); var variantgroupid = variantgroup.GetString("Ecom:VariantGroup.ID"); var variantgroupname = variantgroup.GetString("Ecom:VariantGroup.Name"); foreach (LoopItem variantoption in variantgroup.GetLoop("VariantOptions")) { var variantoptionid = variantoption.GetString("Ecom:VariantOption.ID"); if (!availableVariantCombinations.Contains(variantoptionid)) { continue; } var variantoptionname = variantoption.GetString("Ecom:VariantOption.Name"); var selected = false; if (defaultPreselect) { selected = variantoption.GetBoolean("Ecom:VariantOption.Selected"); } var existingVariant = otherVariants.FirstOrDefault(v => v.VariantGroupID == variantgroupid); if (existingVariant != null) { existingVariant.VariantOptions.Add(new ProductVariantOption { VariantOptionID = variantoptionid, VariantOptionName = variantoptionname, Selected = selected }); } else { otherVariants.Add(new ProductVariant { VariantGroupID = variantgroupid, VariantGroupName = variantgroupname, VariantOptions = new List<ProductVariantOption> { new ProductVariantOption { VariantOptionID = variantoptionid, VariantOptionName = variantoptionname, Selected = selected } } }); } } foreach (var otherVariant in otherVariants) { variantsExists = true; <div class="variant clearfix"> <select class="other-variant" data-main="@(isMain ? "1" : "0")" data-pageurl="/@Pageview.Area.Item["ProductPage"]&ProductID=@productID"> <option value="-1">@Translate("Choose variant", "Choose variant")</option> @foreach (var variant in otherVariant.VariantOptions) { if (otherVariant.VariantOptions.Count() == 1) { variant.Selected = true; } <option value="@variant.VariantOptionID" @(variant.Selected ? "selected" : "")>@variant.VariantOptionName</option> } </select> </div> } } //size color variant if (variantGroups.Count() == 2) { var availableSizeCombinations = new List<string>(); foreach (var availVariantOption in availableVariantCombinations) { var optionSplit = availVariantOption.Split('.'); if (!availableSizeCombinations.Contains(optionSplit[0])) { availableSizeCombinations.Add(optionSplit[0]); } } var sizeColorVariants = new List<SizeColorVariant>(); var sizeVariantGroup = variantGroups[0]; var colorVariantGroup = variantGroups[1]; foreach (LoopItem sizeVariantoption in sizeVariantGroup.GetLoop("VariantOptions")) { var sizeVariantOptionId = sizeVariantoption.GetString("Ecom:VariantOption.ID"); if (!availableSizeCombinations.Contains(sizeVariantOptionId)) { continue; } var sizeName = sizeVariantoption.GetString("Ecom:VariantOption.Name"); var sizeSelected = defaultPreselect ? sizeVariantoption.GetBoolean("Ecom:VariantOption.Selected") : false; var sizeColorVariant = new SizeColorVariant { VariantID = sizeVariantOptionId, Size = sizeName, Selected = sizeSelected, Colors = new List<ColorVariant>() }; foreach (LoopItem colorVariantoption in colorVariantGroup.GetLoop("VariantOptions")) { var colorVariantOptionId = colorVariantoption.GetString("Ecom:VariantOption.ID"); var availableColorCombinations = availableVariantCombinations.FindAll(v => v.StartsWith(sizeVariantOptionId + ".")) .Select(v => v.Split('.')[1]) .ToList(); if (!availableColorCombinations.Contains(colorVariantOptionId)) { continue; } var colorName = colorVariantoption.GetString("Ecom:VariantOption.Name"); var colorSelected = defaultPreselect ? colorVariantoption.GetBoolean("Ecom:VariantOption.Selected") : false; sizeColorVariant.Colors.Add(new ColorVariant { Color = colorName, VariantID = colorVariantOptionId, Selected = colorSelected }); } sizeColorVariants.Add(sizeColorVariant); } if (sizeColorVariants.Any()) { variantsExists = true; <div class="lingerie-container"> <div class="variant clearfix"> <select class="lingerie-size" data-main="@(isMain ? "1" : "0")" data-pageurl="/@Pageview.Area.Item["ProductPage"]&ProductID=@productID"> <option value="-1">@Translate("Choose variant", "Choose variant")</option> @for (var i = 0; i < sizeColorVariants.Count; i++) { if (sizeColorVariants.Count == 1) { sizeColorVariants[i].Selected = true; } <option data-value="@(sizeColorVariants[i].VariantID)" value="@i" @(sizeColorVariants[i].Selected ? "selected" : "")>@sizeColorVariants[i].Size</option> } </select> </div> @foreach (var sizeColor in sizeColorVariants) { <div class="variant clearfix"> <select id="lingerieColor-@sizeColorVariants.IndexOf(sizeColor)" class="lingerie-color" data-visible="@(sizeColor.Selected ? 1 : 0)" data-main="@(isMain ? "1" : "0")" data-pageurl="/@Pageview.Area.Item["ProductPage"]&ProductID=@productID"> <option value="-1">@Translate("Choose variant", "Choose variant")</option> @foreach (var color in sizeColor.Colors) { if (sizeColor.Colors.Count() == 1) { color.Selected = true; } <option value="@color.VariantID" @(color.Selected ? "selected" : "")>@color.Color</option> } </select> </div> } </div> } } } if (variantsExists) { <hr /> } } @using System.Web; @using belugi.core.model; @using Dynamicweb.eCommerce.Products; @{ var search = GetString("Ecom:Search.SearchBox"); var productsCssClass = !string.IsNullOrEmpty(search) ? "col-sm-9 col-xs-12" : "col-sm-12 col-xs-12"; var paragraph = Pageview.CurrentParagraph; var pageSize = GetString("Ecom:ProductList.PageSize"); var seoText = GetString("Ecom:Group.Description"); var productsClass = "col-md-9 col-xs-12"; var searchHtml = GetString("Ecom:Search.SearchBox"); if (string.IsNullOrEmpty(searchHtml)) { productsClass = "col-md-12"; } var currentGroup = Group.GetGroupByID(GetString("Ecom:Group.ID")); var topGroupId = ""; var backgroundImg = ""; if (currentGroup != null) { backgroundImg = currentGroup.ProductGroupFieldValues.GetProductGroupFieldValue("BackgroundImg").HasValue && !string.IsNullOrWhiteSpace(currentGroup.ProductGroupFieldValues.GetProductGroupFieldValue("BackgroundImg").Value.ToString()) ? ("https://res.cloudinary.com/belugi/t_lib/Files/Images/" + currentGroup.ProductGroupFieldValues.GetProductGroupFieldValue("BackgroundImg").Value) : ""; var topGroup = currentGroup.GetTopGroup(); if (topGroup != null) { topGroupId = topGroup.ID.ToLower(); } } var searchQuery = HttpContext.Current.Request["eComQuery"]; var products = GetLoop("Products"); var manufacturerIdQueryString = HttpContext.Current.Request.QueryString["manufacturerid"]; Dynamicweb.eCommerce.Products.Manufacturer manufacturer = null; var manufacturerLogo = ""; var manufacturerDesc = ""; var manufacturerIdStr = ""; if (!string.IsNullOrEmpty(manufacturerIdQueryString)) { manufacturer = new Dynamicweb.eCommerce.Products.Manufacturer(manufacturerIdQueryString); var allPageParagraphs = Dynamicweb.Content.Paragraph.GetParagraphsByPageID(Convert.ToInt16(GetGlobalValue("Global:Page.ID"))); var manufacturerParagraphs = allPageParagraphs.Where(p => p.ShowParagraph && p.ItemType == "Manufacturer").ToList(); foreach (var manufacturerParagraph in manufacturerParagraphs) { var manufacturerData = Dynamicweb.Content.Items.ItemManager.Storage.GetById(manufacturerParagraph.ItemType, manufacturerParagraph.ItemId); if (manufacturerData == null) { continue; } object manufacturerId = null; manufacturerData.TryGetValue("Manufacturer", ref manufacturerId); if (manufacturerId != null) { manufacturerIdStr = manufacturerId.ToString(); } if (manufacturerIdQueryString == manufacturerIdStr) { object manufacturerLogoObj = null; manufacturerData.TryGetValue("Logo", ref manufacturerLogoObj); if (manufacturerLogoObj != null) { manufacturerLogo = manufacturerLogoObj.ToString(); } object manufacturerDescObj = null; manufacturerData.TryGetValue("Description", ref manufacturerDescObj); if (manufacturerDescObj != null) { manufacturerDesc = manufacturerDescObj.ToString(); } break; } } } if (HttpContext.Current.Request.QueryString["groupid"] != null && HttpContext.Current.Request.QueryString.Count > 2) { var canonicalUrl = HttpContext.Current.Request.RawUrl; canonicalUrl = "https://" + HttpContext.Current.Request.Url.Host + canonicalUrl.Substring(0, canonicalUrl.IndexOf("?")); <!--@SnippetStart(metatags)--> <link rel="canonical" href="@canonicalUrl"> <!--@SnippetEnd(metatags)--> } var smartSearchParams = new List<string>() { "top10", "new", "bestseller" }; } <div style="display:none;">@HttpContext.Current.Request.Url.AbsoluteUri</div> @if (manufacturer != null && !string.IsNullOrEmpty(manufacturerLogo)) { <section class="text-module text-module-image"> <div class="container"> <img src="@(manufacturerLogo)" alt="@manufacturer.Name" title="@manufacturer.Name" /> </div> </section> } <section class="products products-@topGroupId"> <div class="container"> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Group.Name"))) { if (string.IsNullOrWhiteSpace(backgroundImg)) { <div class="headline"> <div class="h1">@GetString("Ecom:Group.Name")</div> </div> } else { <div class="header-image" style="background-image:url(@backgroundImg)"> <div class="h1 title">@GetString("Ecom:Group.Name")</div> </div> } } <div class="row"> @if (!string.IsNullOrEmpty(searchHtml)) { var eComQuery = HttpContext.Current.Request.QueryString["eComQuery"]; <div class="col-md-3 col-xs-12"> <form id="EcomSearch" name="EcomSearch" method="get"> <input type="hidden" id="PageSize" name="PageSize" value="@pageSize" /> <input type="hidden" id="SortBy" name="SortBy" value="@HttpContext.Current.Request.QueryString["SortBy"]" /> <input type="hidden" id="SortOrder" name="SortOrder" value="@HttpContext.Current.Request.QueryString["SortOrder"]" /> @foreach(var searchSmartParam in smartSearchParams) { var querySmartSearchParam = HttpContext.Current.Request.QueryString[searchSmartParam]; if (querySmartSearchParam == null || querySmartSearchParam.ToString().ToLower() != "true") { continue; } <input type="hidden" name="@searchSmartParam" value="@querySmartSearchParam" /> } @if (!string.IsNullOrEmpty(eComQuery)) { <input type="hidden" id ="eComQuery" name="eComQuery" value="@eComQuery" /> } @searchHtml </form> </div> } <div class="@productsClass"> <!--filters--> <div class="clearfix"> <div class="sort-module"> <span> <span class="sort-option"> <div class="sort-option-table"> <div> <select id="pagesizeselect"> <option value="15" @(pageSize == "15" ? "selected='selected'" : string.Empty)> 15 </option> <option value="20" @(pageSize == "20" ? "selected='selected'" : string.Empty)> 20 </option> <option value="25" @(pageSize == "25" ? "selected='selected'" : string.Empty)> 25 </option> <option value="50" @(pageSize == "50" ? "selected='selected'" : string.Empty)> 50 </option> <option value="100" @(pageSize == "100" ? "selected='selected'" : string.Empty)> 100 </option> </select> </div> <div> @if (string.IsNullOrEmpty(searchQuery)) { <label>@Translate("Showing page", "Showing page") @GetValue("Ecom:ProductList.CurrentPage") @Translate("of", "of") @GetValue("Ecom:ProductList.TotalPages") (@GetValue("Ecom:ProductList.PageProdCnt") @Translate("products", "products"))</label> } else { <label>@Translate("Your search for", "Your search for") @searchQuery @Translate("returned", "returned") @GetValue("Ecom:ProductList.PageProdCnt") @Translate("results", "results")</label> } </div> </div> <script type="text/javascript"> $(document).ready(function () { $("#pagesizeselect").change(function (e) { $("#PageSize").val($(this).val()); $("#EcomSearch").get(0).submit(); }); }); </script> </span> <span class="sort-option"> <label>@Translate("ProductList.SortBy", "Soreter efter")</label> <select id="sortby"> <option value="" @(HttpContext.Current.Request.QueryString["SortBy"] == "Name" ? "selected='selected'" : string.Empty)> @Translate("Sorting.Default", "Anbefalede") </option> <option value="Price,Asc" @((HttpContext.Current.Request.QueryString["SortBy"] == "Price" && HttpContext.Current.Request["SortOrder"] == "Asc") ? "selected='selected'" : string.Empty)> @Translate("Price low-high", "Price low-high") </option> <option value="Price,Desc" @((HttpContext.Current.Request.QueryString["SortBy"] == "Price" && HttpContext.Current.Request["SortOrder"] == "Desc") ? "selected='selected'" : string.Empty)> @Translate("Price high-low", "Price high-low") </option> </select> <script type="text/javascript"> $(document).ready(function () { $("#sortby").change(function (e) { var sortBy = $(this).val().split(',')[0]; var sortOrder = $(this).val().split(',')[1]; $("#SortBy").val(sortBy); $("#SortOrder").val(sortOrder); $("#EcomSearch").get(0).submit(); }); }); </script> </span> </span> </div> </div> @if (products.Count() == 0) { <div class="text-module"> <div class="box"> <p>@Translate("No products found", "No products found")</p> </div> </div> } <div class="row"> <!--product-list--> <div class="clearfix"> @foreach (var product in products) { //Ecom:Product.VariantID <div class="col-sm-4 col-xs-12"> @RenderProduct(product) </div> } @{ var totalPages = GetInteger("Ecom:ProductList.TotalPages"); var firstPageToDisplay = 1; } @if (totalPages > 1) { var currentPage = GetInteger("Ecom:ProductList.CurrentPage"); int i = firstPageToDisplay; <div class="col-sm-12 col-xs-12"> <div class="pagination-wrap"> <ul class="pagination"> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:ProductList.PrevPage.Clean"))) { var firstPage = HttpContext.Current.Request.RawUrl; if (firstPage.Contains("?PageNum")) { var j = firstPage.IndexOf("?PageNum"); var partAfterPageNum = ""; if (firstPage.Substring(j).IndexOf("&") > -1) { partAfterPageNum = firstPage.Substring(j).Substring(firstPage.Substring(j).IndexOf("&")); } firstPage = firstPage.Substring(0, j) + "?PageNum=" + firstPageToDisplay + partAfterPageNum; } else if (firstPage.Contains("&PageNum")) { var j = firstPage.IndexOf("&PageNum"); var partAfterPageNum = ""; if (firstPage.Substring(j).IndexOf("&") > -1) { partAfterPageNum = firstPage.Substring(j).Substring(firstPage.Substring(j).IndexOf("&")); } firstPage = firstPage.Substring(0, j) + "&PageNum=" + firstPageToDisplay + partAfterPageNum; } else if (firstPage.Contains("?")) { firstPage += "&PageNum=" + firstPageToDisplay; } else { firstPage += "?PageNum=" + firstPageToDisplay; } <li> <a href="@firstPage"> &laquo; <span aria-hidden="true">@Translate("ProductList.FirstPage", "Første")</span> </a> </li> <li> <a href="@GetString("Ecom:ProductList.PrevPage.Clean")"> &lsaquo; <span aria-hidden="true">@Translate("ProductList.PreviousPage", "Forrige")</span> </a> </li> } @foreach (LoopItem page in GetLoop("Ecom:ProductList.Pages")) { var cssClass = currentPage == page.GetInteger("Ecom:ProductList.Pages.Page.Number") ? "active" : string.Empty; var showPage = false; var index = 2; if (currentPage == firstPageToDisplay || currentPage == totalPages) { index = 4; } else if (currentPage == firstPageToDisplay + 1 || currentPage == totalPages - 1) { index = 3; } if (currentPage + index >= i && i >= currentPage - index) { showPage = true; } if (showPage) { <li class="@cssClass"> <a href="@page.GetString("Ecom:ProductList.Pages.Page.Url")"> @i </a> </li> } i++; } @if (!string.IsNullOrWhiteSpace(GetString("Ecom:ProductList.NextPage.Clean"))) { var lastPage = HttpContext.Current.Request.RawUrl; if (lastPage.Contains("?PageNum")) { var j = lastPage.IndexOf("?PageNum"); var partAfterPageNum = ""; if (lastPage.Substring(j).IndexOf("&") > -1) { partAfterPageNum = lastPage.Substring(j).Substring(lastPage.Substring(j).IndexOf("&")); } lastPage = lastPage.Substring(0, j) + "?PageNum=" + totalPages + partAfterPageNum; } else if (lastPage.Contains("&PageNum")) { var j = lastPage.IndexOf("&PageNum"); var partAfterPageNum = ""; if (lastPage.Substring(j).IndexOf("&") > -1) { partAfterPageNum = lastPage.Substring(j).Substring(lastPage.Substring(j).IndexOf("&")); } lastPage = lastPage.Substring(0, j) + "&PageNum=" + totalPages + partAfterPageNum; } else if(lastPage.Contains("?")) { lastPage += "&PageNum=" + totalPages; } else { lastPage += "?PageNum=" + totalPages; } <li> <a href="@GetString("Ecom:ProductList.NextPage.Clean")"> <span aria-hidden="true">@Translate("ProductList.NextPage", "Næste")</span> &rsaquo; </a> </li> <li> <a href="@lastPage"> <span aria-hidden="true">@Translate("ProductList.LastPage", "Sidste")</span> &raquo; </a> </li> } </ul> </div> </div> } </div> </div> </div> </div> </div> </section> @if (manufacturer != null && !string.IsNullOrEmpty(manufacturer.Description)) { <section class="text-module"> <div class="container"> <div class="box"> @manufacturer.Description </div> </div> </section> } @if (!string.IsNullOrEmpty(manufacturerDesc)) { <section class="text-module"> <div class="container"> <div class="box"> @manufacturerDesc </div> </div> </section> }

Större penis och penispumpar

En penis är en svullen kropp, och samma penis kan därför ha många olika storlekar, beroende på omständigheterna. Naturligtvis är du av naturen utrustad med en penis som har ett minimum och en maximal storlek. Vissa kan bli väldigt små, svullna sedan upp till 10 dubbla i storlek när de är uppförda, medan andra kan vara stora i slackt skick, men i sin tur inte bli mycket större när de är uppförda.

Vissa människor tycker att kuken alltid blir mycket hård och snabb, medan andra peniser kan vara något mer föränderliga.

Oavsett vilken typ av penis du har, kan det vara roligt och läckert att uppleva hur stor och hård din penis kan vara och du kan känna att med våra produkter för större penis- och penispumpar. Delvis kan det vara en trevlig känsla att utsätta din penis för ett vakuum som ger en större penis under en begränsad tid och då kan de också bli en ny upplevelse för din partner.

Om du vill ha en mer permanent utvidgning av din penis kan du använda en Penis Extender istället. Det är en lång process, men många män har haft stor nytta av resultatet. Belugi är den officiella nordiska distributören av Male Edge ™ och Jes Extender ™, som båda har visat effekt inom området för permanent större penis. De garanterar också en permanent större penis - både i längd och tjocklek.

Om du bara vill ge din partner en annan känsla när du har sex kan du helt enkelt använda en penishylsa, som är ett mjukt hölster som gör den yttre storleken på Penis större. Dessa finns i många olika varianter som kan ge din partner en helt ny känsla. Vissa modeller har också en insida som kan ge mannen en ny och annorlunda upplevelse.

Vilket märke inom den större penis ska jag välja?

Hos Belugi har vi valt att sälja ett stort urval av produkter inom varumärken Bathmate ©, Pump Worx ©, Fantasy X-voltage ©, Colt © och Metal Worx ©.

Större penis för onani och sex eller permanent större penis

I allmänhet kan produkter för större penis delas in i två kategorier. Större penis för onani och sex och permanent större penis.

Större onani penis

Större penis för onani och sex är produkter inom penispumpar. Penispumpar skapar ett vakuum som får penis att växa. Mer blod pumpas in i penis och det ger en större penis. Du kan se vårt stora urval av penispumpar här.

Större sexpenis

Penisöverdrag kan antingen vara ett trevligt omslag att onanera för att få din penis att känna sig större, och det kan vara ett täcke där din penis, så att säga, sätts in i en annan penis och du sedan har sex med din partner. Din partner kommer att kunna känna din större penis när du tränger igenom. Du kan se vårt stora urval av penisskydd här.

Permanent större penis

Om du vill ha en permanent större penis, välj en produkt från Male Edge ™ och Jes Extender ™ De ger dig en 200% garanti för att du kommer att få en större penis om du använder produkten enligt beskrivningen i deras bruksanvisning (även på danska).

Prova en av våra produkter för den större penis - särskilt om du känner att din penis är för liten. Något kan göras med det.

Se även artikel om sexologen Marie Oddershede: Är din penis för liten?