From 3e8b6c9b2a0ff6e1ef9653e6e8a508c8d323d8e1 Mon Sep 17 00:00:00 2001 From: Marcus Gesing Date: Wed, 3 Jun 2020 14:46:13 +0200 Subject: [PATCH 0001/1090] (mm) More on new thumbUrl property --- .../Media/MediaFileInfo.cs | 12 +++++-- .../SmartStore.Services/Media/MediaService.cs | 7 ++-- .../Extensions/HtmlExtensions.cs | 21 +++++------- .../Modelling/MediaTemplateModel.cs | 1 - .../Scripts/smartstore.media.js | 16 ---------- .../Views/Shared/MediaTemplates/Audio.cshtml | 2 +- .../Views/Shared/MediaTemplates/Image.cshtml | 2 +- .../Views/Shared/MediaTemplates/Video.cshtml | 2 +- .../Shared/MediaTemplates/_Thumbnail.cshtml | 32 ++++++++++++++++--- 9 files changed, 53 insertions(+), 42 deletions(-) diff --git a/src/Libraries/SmartStore.Services/Media/MediaFileInfo.cs b/src/Libraries/SmartStore.Services/Media/MediaFileInfo.cs index 02db09cea6..7db8a5adab 100644 --- a/src/Libraries/SmartStore.Services/Media/MediaFileInfo.cs +++ b/src/Libraries/SmartStore.Services/Media/MediaFileInfo.cs @@ -12,7 +12,8 @@ namespace SmartStore.Services.Media public partial class MediaFileInfo : IFile { private string _url; - + private string _thumbUrl; + private readonly IMediaStorageProvider _storageProvider; private readonly IMediaUrlGenerator _urlGenerator; @@ -93,7 +94,14 @@ public string Url } [JsonProperty("thumbUrl")] - public string ThumbUrl { get; set; } + public string ThumbUrl + { + get { return _thumbUrl ?? (_thumbUrl = _urlGenerator.GenerateUrl(this, new ProcessImageQuery { MaxSize = ThumbSize }, string.Empty)); } + set { _thumbUrl = value; } + } + + [JsonIgnore] + public int ThumbSize { get; set; } = 256; [JsonIgnore] public bool Exists => File?.Id > 0; diff --git a/src/Libraries/SmartStore.Services/Media/MediaService.cs b/src/Libraries/SmartStore.Services/Media/MediaService.cs index 5e2e3b9866..e915619197 100644 --- a/src/Libraries/SmartStore.Services/Media/MediaService.cs +++ b/src/Libraries/SmartStore.Services/Media/MediaService.cs @@ -828,9 +828,10 @@ public MediaFileInfo ConvertMediaFile(MediaFile file) protected MediaFileInfo ConvertMediaFile(MediaFile file, MediaFolderNode folder) { - var mediaFile = new MediaFileInfo(file, _storageProvider, _urlGenerator, folder?.Path); - - mediaFile.ThumbUrl = _urlGenerator.GenerateUrl(mediaFile, new ProcessImageQuery { MaxSize = _mediaSettings.ProductThumbPictureSize }, string.Empty); + var mediaFile = new MediaFileInfo(file, _storageProvider, _urlGenerator, folder?.Path) + { + ThumbSize = _mediaSettings.ProductThumbPictureSize + }; return mediaFile; } diff --git a/src/Presentation/SmartStore.Web.Framework/Extensions/HtmlExtensions.cs b/src/Presentation/SmartStore.Web.Framework/Extensions/HtmlExtensions.cs index d307c1f5fa..df70c4bb42 100644 --- a/src/Presentation/SmartStore.Web.Framework/Extensions/HtmlExtensions.cs +++ b/src/Presentation/SmartStore.Web.Framework/Extensions/HtmlExtensions.cs @@ -926,7 +926,7 @@ public static MvcHtmlString IconForFileExtension(this HtmlHelper helper, string #region Media - public static MvcHtmlString MediaImage( + public static MvcHtmlString MediaThumbnail( this HtmlHelper helper, MediaFileInfo file, int size, @@ -957,23 +957,18 @@ private static MvcHtmlString MediaInternal( } // Validate size parameter. - if (file.MediaType != "image") + if (file.MediaType != "image" && !renderViewer) { - if (renderViewer) - { - // Force 0 to not get the URL of the thumbnail. - size = 0; - } - else - { - Guard.IsPositive(size, nameof(size), $"The size must be greater than 0 to get a thumbnail for type '{file.MediaType}'."); - } + Guard.IsPositive(size, nameof(size), $"The size must be greater than 0 to get a thumbnail for type '{file.MediaType.NaIfEmpty()}'."); + } + + if (size > 0) + { + file.ThumbSize = size; } - var urlHelper = new UrlHelper(helper.ViewContext.RequestContext); var model = new MediaTemplateModel(file, renderViewer) { - Url = urlHelper.Media(file, size), ExtraCssClasses = extraCssClasses }; diff --git a/src/Presentation/SmartStore.Web.Framework/Modelling/MediaTemplateModel.cs b/src/Presentation/SmartStore.Web.Framework/Modelling/MediaTemplateModel.cs index 6c9a6a8ab5..9808a4aedd 100644 --- a/src/Presentation/SmartStore.Web.Framework/Modelling/MediaTemplateModel.cs +++ b/src/Presentation/SmartStore.Web.Framework/Modelling/MediaTemplateModel.cs @@ -16,7 +16,6 @@ public MediaTemplateModel(MediaFileInfo file, bool renderViewer) public MediaFileInfo File { get; private set; } public bool RenderViewer { get; private set; } - public string Url { get; set; } public string ExtraCssClasses { get; set; } } } diff --git a/src/Presentation/SmartStore.Web/Scripts/smartstore.media.js b/src/Presentation/SmartStore.Web/Scripts/smartstore.media.js index dd6b12e46c..641294e227 100644 --- a/src/Presentation/SmartStore.Web/Scripts/smartstore.media.js +++ b/src/Presentation/SmartStore.Web/Scripts/smartstore.media.js @@ -44,22 +44,6 @@ SmartStore.media = (function () { getIconHint: function (file) { return iconHints[file.ext] || iconHints[file.type] || (file.type ? iconHints[file.type.split('/')[0]] : null) || iconHints['misc']; }, - initFiles: function (selector) { - var self = this; - - // Init file icons. - $(selector || document).find('i.file-icon').each(function () { - try { - var icon = $(this); - var file = icon.parent().data('file'); - var hint = self.getIconHint(file); - icon.addClass(hint.name).css('color', hint.color); - } - catch (err) { - console.log(err); - } - }); - }, lazyLoadThumbnails: function (selector) { $(selector || document).find('img.file-img').each(function () { try { diff --git a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Audio.cshtml b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Audio.cshtml index 951fb7d526..8c53272ba5 100644 --- a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Audio.cshtml +++ b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Audio.cshtml @@ -3,7 +3,7 @@ @if (Model.RenderViewer) {
-
} else diff --git a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Image.cshtml b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Image.cshtml index f712b1fb70..ed102d1ee8 100644 --- a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Image.cshtml +++ b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Image.cshtml @@ -1,6 +1,6 @@ @using SmartStore.Web.Framework.Modelling; @model MediaTemplateModel -@Model.File.File.Alt \ No newline at end of file diff --git a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Video.cshtml b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Video.cshtml index 0beb55ee35..50af54c289 100644 --- a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Video.cshtml +++ b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/Video.cshtml @@ -3,7 +3,7 @@ @if (Model.RenderViewer) {
-
} else diff --git a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/_Thumbnail.cshtml b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/_Thumbnail.cshtml index 5aea05a1b7..cb2dfc07b4 100644 --- a/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/_Thumbnail.cshtml +++ b/src/Presentation/SmartStore.Web/Views/Shared/MediaTemplates/_Thumbnail.cshtml @@ -1,11 +1,35 @@ @using SmartStore.Web.Framework.Modelling; @model MediaTemplateModel -
- +@{ + dynamic iconHint = GetIconHint(Model.File.MediaType); +} +
+ @Model.File.File.Alt + data-src="@Model.File.ThumbUrl" /> -
\ No newline at end of file +
+@functions { + private object GetIconHint(string mediaType) + { + switch (mediaType) + { + case "image": + return new { Name = "far fa-file-image", Color = "#e77c00" }; + case "video": + return new { Name = "far fa-file-video", Color = "#ff5722" }; + case "audio": + return new { Name = "far fa-file-audio", Color = "#009688" }; + case "document": + return new { Name = "fas fa-file-alt", Color = "#2b579a" }; + case "text": + return new { Name = "far fa-file-alt", Color = "#607d8B" }; + case "bin": + default: + return new { Name = "far fa-file", Color = "#bbb" }; + } + } +} \ No newline at end of file From 27464157d86996490cb04f1f7123dd76f35c282b Mon Sep 17 00:00:00 2001 From: Marcel Schmidt Date: Tue, 2 Jun 2020 21:42:56 +0200 Subject: [PATCH 0002/1090] Example products: Added a few more products to furniture, added sub categories to furniture; --- .../SeedData/InvariantSeedData.Categories.cs | 42 +- .../SeedData/InvariantSeedData.Products.cs | 383 +++++++++++++++++- .../App_Data/Samples/category/sofas.jpg | Bin 0 -> 10181 bytes .../App_Data/Samples/category/tables.jpg | Bin 0 -> 4420 bytes .../product/isamu_noguchi_coffeetable_1.jpg | Bin 0 -> 9390 bytes .../product/isamu_noguchi_coffeetable_2.jpg | Bin 0 -> 8444 bytes .../product/josef_hoffmann_sofa_cubus_1.jpg | Bin 0 -> 11939 bytes .../product/le_corbusier_lc2_sofa_1.jpg | Bin 0 -> 7444 bytes .../mies_van_der_rohe_sofa_barcelona_1.jpg | Bin 0 -> 13708 bytes .../mies_van_der_rohe_tisch_barcelona_1.jpg | Bin 0 -> 5456 bytes 10 files changed, 405 insertions(+), 20 deletions(-) create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/category/sofas.jpg create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/category/tables.jpg create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/product/isamu_noguchi_coffeetable_1.jpg create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/product/isamu_noguchi_coffeetable_2.jpg create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/product/josef_hoffmann_sofa_cubus_1.jpg create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/product/le_corbusier_lc2_sofa_1.jpg create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/product/mies_van_der_rohe_sofa_barcelona_1.jpg create mode 100644 src/Presentation/SmartStore.Web/App_Data/Samples/product/mies_van_der_rohe_tisch_barcelona_1.jpg diff --git a/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Categories.cs b/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Categories.cs index f3e64eddc0..54cd55ebca 100644 --- a/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Categories.cs +++ b/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Categories.cs @@ -194,7 +194,7 @@ public IList CategoriesSecondLevel() ShowOnHomePage = true }; - var categorySunglasses = new Category + var categoryFashionSunglasses = new Category { Name = "Sunglasses", Alias = "Sunglasses", @@ -307,6 +307,42 @@ public IList CategoriesSecondLevel() MetaTitle = "Games" }; + var categoryFurnitureSofas = new Category + { + Name = "Sofas", + Alias = "Sofas", + CategoryTemplateId = categoryTemplateInGridAndLines.Id, + ParentCategoryId = categories["Furniture"].Id, + MediaFile = CreatePicture("category/sofas.jpg"), + Published = true, + DisplayOrder = 3, + MetaTitle = "Sofas" + }; + + var categoryFurnitureChairs = new Category + { + Name = "Chairs", + Alias = "Chairs", + CategoryTemplateId = categoryTemplateInGridAndLines.Id, + ParentCategoryId = categories["Furniture"].Id, + MediaFile = CreatePicture("category/furniture.jpg"), + Published = true, + DisplayOrder = 3, + MetaTitle = "Chairs" + }; + + var categoryFurnitureTables = new Category + { + Name = "Tables", + Alias = "Tables", + CategoryTemplateId = categoryTemplateInGridAndLines.Id, + ParentCategoryId = categories["Furniture"].Id, + MediaFile = CreatePicture("category/tables.jpg"), + Published = true, + DisplayOrder = 3, + MetaTitle = "Tables" + }; + //var categoryFashionLeatherJackets = new Category //{ // Name = "Leather jackets", @@ -361,9 +397,9 @@ public IList CategoriesSecondLevel() var entities = new List { - categorySunglasses, categorySportsSoccer, categorySportsBasketball, categorySportsGolf, categoryBooksSpiegel, + categorySportsSoccer, categorySportsBasketball, categorySportsGolf, categoryBooksSpiegel, categoryBooksCookAndEnjoy, categoryGamingAccessories, categoryGamingGames, categoryFashionJackets, categoryFashionShoes, - categoryFashionTrousers + categoryFashionTrousers, categoryFashionSunglasses, categoryFurnitureChairs, categoryFurnitureSofas, categoryFurnitureTables }; this.Alter(entities); diff --git a/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Products.cs b/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Products.cs index 2e7cddebfc..31e71fad14 100644 --- a/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Products.cs +++ b/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.Products.cs @@ -107,7 +107,8 @@ public IList ProductTags() #endregion tag download - #region tag watches + #region Tag Watches + var productTagWatches = new ProductTag { Name = "watches" @@ -115,12 +116,23 @@ public IList ProductTags() _ctx.Set().Where(pt => pt.MetaTitle == "Certina DS Podium Big Size").FirstOrDefault().ProductTags.Add(productTagWatches); - #endregion tag download + #endregion Tag Watches + + #region Tag Furniture + + var productTagFurniture = new ProductTag + { + Name = "Furniture" + }; + + _ctx.Set().Where(x => x.ProductCategories.Any(x => x.Category.ParentCategoryId == 4)).Each(y => y.ProductTags.Add(productTagFurniture)); + + #endregion Tag Furniture var entities = new List { productTagGift, productTagBook, productTagCooking, productTagCars, productTagMotorbikes, - productTagMP3, productTagDownload + productTagMP3, productTagDownload, productTagFurniture }; this.Alter(entities); @@ -641,14 +653,215 @@ private List GetFashionProducts( }; } - private List GetFurnitureProducts(Dictionary specAttributes) + private List GetFurnitureProducts(Dictionary categories, Dictionary specAttributes) { var productTemplateSimple = _ctx.Set().First(x => x.ViewPath == "Product"); var thirdDeliveryTime = _ctx.Set().First(x => x.DisplayOrder == 2); - var furnitureCategory = _ctx.Set().First(x => x.MetaTitle == "Furniture"); var taxCategoryIdElectronics = _ctx.Set().First(x => x.Name.Equals(TaxNameElectronics)).Id; - #region Le Corbusier LC 6 table + #region Category Sofas + + #region Le Corbusier LC2 Sofa + + var corbusierSofa = new Product + { + ProductType = ProductType.SimpleProduct, + Name = "Le Corbusier LC2 Sofa, 3-Sitzer (1929)", + MetaTitle = "Le Corbusier LC2 Sofa, 3-Sitzer (1929)", + ShortDescription = "Sofa 3-Sitzer LC 2, Designer: Le Corbusier, Stahlrohrrahmen (Chrom), Kissen aus Polyurethan Schaum und Dacronwatte, Sitzpolster mit Daunenauflage, Bezug: Leder", + FullDescription = "

Das 3-Sitzer-Sofa LC2 ist zusammen mit dem gleichnamigen Zweisitzer die vollkommene Ergänzung der bekannten Corbusier-Sessel. Zusammen ergibt sich eine formvollendete Sitzgruppe für Lobbys, Lofts oder Salons mit hohem Design-Anspruch." + + "Auch wenn die Corbusier Sofas das Kürzel des Designers (LC) tragen, sind sie nicht von ihm entworfen worden. Sie lehnen sich lediglich eng an die von Le Corbusier entworfenen Sitzmöbel LC2 und LC3 an. Der Optik und dem Komfort schadet dieser Umstand jedoch nicht. " + + "Das Gestell dieses Sofas besteht aus einem aufwendig gebogenen Stahlrohrahmen in Chrom.Die Lederkissen sind mit Polyurethan Schaum und Dacronwatte gefüllt.Die Sitzfläche des Sofas wurde für einen optimalen Sitzkomfort zusätzlich mit Daunenfedern aufgepolstert. " + + "

Abmessungen: B x T x H: 180 x 70 x 67 cm, Sitzhöhe: ca. 45 cm

", + Sku = "LC2 DS/23-1", + ProductTemplateId = productTemplateSimple.Id, + AllowCustomerReviews = true, + Published = true, + Price = 1999.00M, + HasTierPrices = true, + ManageInventoryMethod = ManageInventoryMethod.ManageStock, + OrderMinimumQuantity = 1, + OrderMaximumQuantity = 10000, + StockQuantity = 10000, + NotifyAdminForQuantityBelow = 1, + IsShipEnabled = true, + DeliveryTime = thirdDeliveryTime, + TaxCategoryId = taxCategoryIdElectronics + }; + + AddProductPicture(corbusierSofa, "product/le_corbusier_lc2_sofa_1.jpg"); + + corbusierSofa.ProductCategories.Add(new ProductCategory { Category = categories["Sofas"], DisplayOrder = 1 }); + + corbusierSofa.TierPrices.Add(new TierPrice + { + Quantity = 2, + Price = 1799.10M + }); + corbusierSofa.TierPrices.Add(new TierPrice + { + Quantity = 4, + Price = 1699.15M + }); + + corbusierSofa.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 1, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 1) + }); + corbusierSofa.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 2, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 14) + }); + + #endregion Le Corbusier LC2 Sofa + + #region Josef Hoffmann Sofa + + var josefHoffmannSofa = new Product + { + ProductType = ProductType.SimpleProduct, + Name = "Josef Hoffmann Sofa 2-Sitzer Cubus (1910)", + MetaTitle = "Josef Hoffmann Sofa 2-Sitzer Cubus (1910)", + ShortDescription = "Sofa Kubus, 2-Sitzer, Designer: Josef Hoffmann, Breite 166 cm, Tiefe 72 cm, Höhe 77 cm, Grundgestell: massives Buchenholz, Polsterung: fester Polyurethan Schaum (formbeständig), Bezug: Leder", + FullDescription = "

Der Zweisitzer aus der Kubus-Serie von Josef Hoffmann ist ein stilvoller Blickfang in Wohn- und Geschäftsräumen. Gemeinsam mit dem Sessel Kubus und dem Kubus Dreisitzer entsteht eine stilvolle Sitzgruppe für Empfangshallen und große Wohnzimmer." + + "Das Sofa von Josef Hoffmann ist mit einer formbeständige Polsterung versehen, mit Leder überzogen und zeigt durch eine spezielle Nähtechnik zahlreiche Quadrate, die sich zu einem Gesamtbild Formen. " + + "Das Grundgestell besteht aus Buchenholz.Die rein geometrische Form dieses Hoffman Entwurfs war auch Vorreiter für den Kubismus, der Anfang des 20.Jahrhunderts seine Hochphase erreichte. " + + "

Abmessung: Breite 166 cm, Tiefe 72 cm, Höhe 77 cm, cbm: 1,50

", + Sku = "JH DS/82-1", + ProductTemplateId = productTemplateSimple.Id, + AllowCustomerReviews = true, + Published = true, + Price = 3099.00M, + HasTierPrices = true, + ManageInventoryMethod = ManageInventoryMethod.ManageStock, + OrderMinimumQuantity = 1, + OrderMaximumQuantity = 10000, + StockQuantity = 10000, + NotifyAdminForQuantityBelow = 1, + IsShipEnabled = true, + DeliveryTime = thirdDeliveryTime, + TaxCategoryId = taxCategoryIdElectronics + }; + + AddProductPicture(josefHoffmannSofa, "product/josef_hoffmann_sofa_cubus_1.jpg"); + + josefHoffmannSofa.ProductCategories.Add(new ProductCategory { Category = categories["Sofas"], DisplayOrder = 1 }); + + josefHoffmannSofa.TierPrices.Add(new TierPrice + { + Quantity = 2, + Price = 2659.05M + }); + josefHoffmannSofa.TierPrices.Add(new TierPrice + { + Quantity = 4, + Price = 2519.10M + }); + josefHoffmannSofa.TierPrices.Add(new TierPrice + { + Quantity = 6, + Price = 2379.15M + }); + josefHoffmannSofa.TierPrices.Add(new TierPrice + { + Quantity = 10, + Price = 2239.20M + }); + + josefHoffmannSofa.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 1, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 1) + }); + josefHoffmannSofa.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 2, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 14) + }); + + #endregion Josef Hoffmann Sofa + + #region Mies van der Rohe Barcelona Sofa + + var miesBarcelonaSofa = new Product + { + ProductType = ProductType.SimpleProduct, + Name = "Mies van der Rohe Barcelona - Loveseat Sofa (1929)", + MetaTitle = "Mies van der Rohe Barcelona - Loveseat Sofa (1929)", + ShortDescription = "Sessel Barcelona lang, Designer: Mies van der Rohe, L x T x H: 147 x 75 x 75 cm, verchromtes Gestell aus Spezialfederstahl, Bespannung: Kernlederstreifen, Polster mit Polyurethanschaum-Kern, Bezug: Leder", + FullDescription = "

Der Loveseat Sofa Barcelona ist eines der bekanntesten Möbelstücke der Bauhaus-Ära. Er wurde von Mies van der Rohe entworfen und 1929 bei der Weltausstellung in Barcelona vorgestellt. Mies van der Rohe widmete ihn dem spanischen Königspaar. Der Barcelona Sofa in der langen Ausführung eignet sich hervorragend als Sitzmöbel für Ausstellungen oder Geschäftsräume. " + + "Zusammen mit der schmalen Ausführung und einem Tisch von Mies van der Rohe entsteht außerdem eine stilvolle Sitzecke für Wohnräume. " + + "Der Loveseat Sofa Barcelona hat ein Gestell aus besonders hochwertigem Spezialfederstahl.Als Bespannung dienen Kernlederstreifen. " + + "Darauf liegt die Polsterung mit Lederbezug.Einzelne Quadrate ergeben hierbei ein symmetrisches, stilvolles Bild.

" + + "

Abmessung: Länge 147 cm, Tiefe 75 cm, Höhe 75 cm, cbm: 0,96

", + Sku = "LR 556", + ProductTemplateId = productTemplateSimple.Id, + AllowCustomerReviews = true, + Published = true, + Price = 2799.00M, + HasTierPrices = true, + ManageInventoryMethod = ManageInventoryMethod.ManageStock, + OrderMinimumQuantity = 1, + OrderMaximumQuantity = 10000, + StockQuantity = 10000, + NotifyAdminForQuantityBelow = 1, + IsShipEnabled = true, + DeliveryTime = thirdDeliveryTime, + TaxCategoryId = taxCategoryIdElectronics + }; + + AddProductPicture(miesBarcelonaSofa, "product/mies_van_der_rohe_sofa_barcelona_1.jpg"); + + miesBarcelonaSofa.ProductCategories.Add(new ProductCategory { Category = categories["Sofas"], DisplayOrder = 1 }); + + miesBarcelonaSofa.TierPrices.Add(new TierPrice + { + Quantity = 4, + Price = 2659.05M + }); + miesBarcelonaSofa.TierPrices.Add(new TierPrice + { + Quantity = 6, + Price = 2519.10M + }); + miesBarcelonaSofa.TierPrices.Add(new TierPrice + { + Quantity = 10, + Price = 2379.15M + }); + + miesBarcelonaSofa.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 1, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 1) + }); + miesBarcelonaSofa.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 2, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 14) + }); + + #endregion Mies van der Rohe Barcelona + + #endregion Category Sofas + + #region Category Tables + + #region Le Corbusier LC 6 tTble var corbusierTable = new Product { @@ -678,7 +891,7 @@ private List GetFurnitureProducts(Dictionary GetFurnitureProducts(Dictionary x.DisplayOrder == 14) }); - #endregion Le Corbusier LC 6 table + #endregion Le Corbusier LC 6 Table + + #region Isamu Noguchi Coffee Table + + var noguchiTable = new Product + { + ProductType = ProductType.SimpleProduct, + Name = "Isamu Noguchi Couchtisch, Coffee Table (1945)", + MetaTitle = "Isamu Noguchi Couchtisch, Coffee Table (1945)", + ShortDescription = "Couchtisch, Designer: Isamu Noguchi, B x H x T: 128 x 40 x 92,5 cm, Untergestell: Holz, Tischplatte: Kristallglas, 15 oder 19 mm", + FullDescription = "

Der Kaffeetisch von Isamu Noguchi hat einst sogar den Präsidenten des New Yorker Museums für moderne Kunst beeindruckt. " + + "Für ihn ist er nämlich ursprünglich entworfen worden. Das geschwungene Untergestell aus Esche ist ein eleganter Blickfang. " + + "Es wirkt unaufdringlich und kommt durch die durchsichtige, dreiseitige Glasplatte perfekt zur Geltung. " + + "Ein Bauhaus - Möbel, das heute in vielen Räumen mit gehobener Ausstattung als Beistelltisch genutzt wird. " + + "Es passt perfekt in die Lounge, ins Wohnzimmer und in Empfangsräume.

" + + "

Abmessungen: Breite 128 cm, Höhe 40 cm, Tiefe 92,5 cm

", + Sku = "IN 200", + ProductTemplateId = productTemplateSimple.Id, + AllowCustomerReviews = true, + Published = true, + Price = 499.00M, + HasTierPrices = true, + ManageInventoryMethod = ManageInventoryMethod.ManageStock, + OrderMinimumQuantity = 1, + OrderMaximumQuantity = 10000, + StockQuantity = 10000, + NotifyAdminForQuantityBelow = 1, + IsShipEnabled = true, + DeliveryTime = thirdDeliveryTime, + TaxCategoryId = taxCategoryIdElectronics + }; + + AddProductPicture(noguchiTable, "product/isamu_noguchi_coffeetable_1.jpg"); + AddProductPicture(noguchiTable, "product/isamu_noguchi_coffeetable_2.jpg"); + + noguchiTable.ProductCategories.Add(new ProductCategory { Category = categories["Tables"], DisplayOrder = 1 }); + + noguchiTable.TierPrices.Add(new TierPrice + { + Quantity = 2, + Price = 449.10M + }); + noguchiTable.TierPrices.Add(new TierPrice + { + Quantity = 4, + Price = 424.15M + }); + + noguchiTable.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 1, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 1) + }); + noguchiTable.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 2, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 14) + }); + + #endregion Isamu Noguchi Coffee Table + + #region Mies van der Rohe Barcelona Table + + var miesBarcelonaTable = new Product + { + ProductType = ProductType.SimpleProduct, + Name = "Ludwig Mies van der Rohe Tisch Barcelona (1930)", + MetaTitle = "Ludwig Mies van der Rohe Tisch Barcelona (1930)", + ShortDescription = "Tisch Barcelona, Designer: Mies van der Rohe, Breite 90 cm, Höhe 46 cm, Tiefe 90 cm, Untergestell: verchromter Flachstahl, Tischplatte: Glas (12 mm)", + FullDescription = "

Dieser Tisch von Mies van der Rohe passt zur berühmten Barcelona-Serie aus Sessel und Hocker, die für den spanischen König entworfen und 1929 bei der Weltausstellung präsentiert wurde. " + + "Der Couchtisch wurde zwar erst einige Zeit später von Mies van der Rohe für das Haus „Tugendhat“ angefertigt, bildet aber mit den Möbeln der Barcelona-Serie eine attraktive Sitzecke für Büros und Wohnräume. " + + "Der Tisch von Mies van der Rohe besteht aus einem Gestell aus Flachstahl und einer 12 mm dicken Glasplatte.Unter der durchsichtigen Platte erscheint durch die Konstruktion ein verchromtes „X“.

" + + "

Abmessung: Breite 90 cm, Höhe 46 cm, Tiefe 90 cm" + + "Stärke Glasplatte: 12 mm

", + Sku = "LM T/98", + ProductTemplateId = productTemplateSimple.Id, + AllowCustomerReviews = true, + Published = true, + Price = 629.00M, + HasTierPrices = true, + ManageInventoryMethod = ManageInventoryMethod.ManageStock, + OrderMinimumQuantity = 1, + OrderMaximumQuantity = 10000, + StockQuantity = 10000, + NotifyAdminForQuantityBelow = 1, + IsShipEnabled = true, + DeliveryTime = thirdDeliveryTime, + TaxCategoryId = taxCategoryIdElectronics + }; + + AddProductPicture(miesBarcelonaTable, "product/mies_van_der_rohe_tisch_barcelona_1.jpg"); + + miesBarcelonaTable.ProductCategories.Add(new ProductCategory { Category = categories["Tables"], DisplayOrder = 1 }); + + miesBarcelonaTable.TierPrices.Add(new TierPrice + { + Quantity = 2, + Price = 597.55M + }); + miesBarcelonaTable.TierPrices.Add(new TierPrice + { + Quantity = 4, + Price = 566.10M + }); + miesBarcelonaTable.TierPrices.Add(new TierPrice + { + Quantity = 6, + Price = 534.65M + }); + + miesBarcelonaTable.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 1, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 1) + }); + miesBarcelonaTable.ProductSpecificationAttributes.Add(new ProductSpecificationAttribute + { + AllowFiltering = true, + ShowOnProductPage = true, + DisplayOrder = 2, + SpecificationAttributeOption = specAttributes[8].SpecificationAttributeOptions.FirstOrDefault(x => x.DisplayOrder == 14) + }); + + #endregion Mies van der Rohe Barcelona Table + + #endregion Category Tables + + #region Category Chairs #region Ball Chair @@ -735,7 +1081,7 @@ private List GetFurnitureProducts(Dictionary GetFurnitureProducts(Dictionary GetFurnitureProducts(Dictionary GetFurnitureProducts(Dictionary x.DisplayOrder == 4) }); - #endregion Lounge chair + #endregion Charles Eames Lounge Chair - #region Cube chair + #region Josef Hoffmann Cube Chair var cubeChair = new Product { @@ -865,7 +1211,7 @@ private List GetFurnitureProducts(Dictionary GetFurnitureProducts(Dictionary x.DisplayOrder == 5) }); - #endregion Cube chair + #endregion Josef Hoffmann Cube Chair + + #endregion Category Chairs return new List { - corbusierTable, ballChair, loungeChair, cubeChair + miesBarcelonaTable, noguchiTable, corbusierTable, ballChair, loungeChair, cubeChair, + miesBarcelonaSofa, corbusierSofa, josefHoffmannSofa }; } @@ -3269,7 +3618,7 @@ public IList Products() }; entities.AddRange(GetFashionProducts(categories, manufacturers, specAttributes)); - entities.AddRange(GetFurnitureProducts(specAttributes)); + entities.AddRange(GetFurnitureProducts(categories, specAttributes)); this.Alter(entities); return entities; diff --git a/src/Presentation/SmartStore.Web/App_Data/Samples/category/sofas.jpg b/src/Presentation/SmartStore.Web/App_Data/Samples/category/sofas.jpg new file mode 100644 index 0000000000000000000000000000000000000000..15d09dc7ad55df6732bf03a680adb1df2c4453d8 GIT binary patch literal 10181 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 He-{1+Df#-f literal 0 HcmV?d00001 diff --git a/src/Presentation/SmartStore.Web/App_Data/Samples/category/tables.jpg b/src/Presentation/SmartStore.Web/App_Data/Samples/category/tables.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43cbf8fee6fc398b5f8c0b3ce872af0953c58875 GIT binary patch literal 4420 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 literal 0 HcmV?d00001 diff --git a/src/Presentation/SmartStore.Web/App_Data/Samples/product/isamu_noguchi_coffeetable_1.jpg b/src/Presentation/SmartStore.Web/App_Data/Samples/product/isamu_noguchi_coffeetable_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f5aa0005e8f398dbd4d308648e70d12f94d97b9b GIT binary patch literal 9390 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 literal 0 HcmV?d00001 diff --git a/src/Presentation/SmartStore.Web/App_Data/Samples/product/josef_hoffmann_sofa_cubus_1.jpg b/src/Presentation/SmartStore.Web/App_Data/Samples/product/josef_hoffmann_sofa_cubus_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f903730383b62180a7e2c5e8e77cfe829612b2f GIT binary patch literal 11939 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 z�DEp9W7OvpG}J$_(v8+z`dPIJh<^c%5sS8!7QQ_s9g%n+0X z%CTg0XT;*8CPW~0tdi9h4$=^0HYWp(AKA-aIC?srE7z{k zKl}=k@eq!E+qWvy0tAz#pbhfspDOq`BmOba8+tOj=eP}yRcnHGS`u{8Z&9pqi!c-r zszgHSPqrJZc-d^uGw~*{E4W!d4Gjm_LJqrDSq%#u279Dx9{Es6h^}&%5D3@h)^R3}YnD7)Mwo|5T=-94y?ks^b$DQxl zT)2$|IKxHTLN`|rC0l$Nw}yMV4|V*zzB$^;g!sJ}zYt+pzxnO`2`z5^l!)+|t^+Zq zJ8TzzRium4vQ<9VdwBViZn7T0hY3^+yMhNvcxFcZC37hDY%i$>^Dp`cY{gR@WVa1{J{qb(ncP#C_rph}OqSU1!qNVaTke?(9h8WaR*Eo!j>-y zd!q{F^pjg|fsx_&zq;}X1UdCGYKT^?N^bfp2IG?pL>3@Z(v)_W_Oai;V0YRBSlq>i!khmqF(py3c_F zF(r2|j%+2vW{j1xrX>}W6^5B@{%u5hgJj^e5~uLUuHHi&OPofA7*+!aU{Zvl?EB7C z;^1HA$X0Rclpn-OUYj_Sok zQ#E3ASAh1Nx8UDq-FwNTgYLF5On3e!>>nh~+$*imoh|L>pWLBcUY}Ry;F>FO1eqH} zJ*tn_&@5Bl<6(YsO#PIK1dH5VkO=AbWT=U?skiSWYaAuu*ee#_dP+NV6L7?7RftG; zoOXj$Z`ez!jIv5{4Z^nGCw2(2F&V|YSl$u_% zQXz-KTZf{@*HOU^+TK3QnRPo4UE(o(HXmiTTq(CHFYs_BHe60vKmAGdcOClIjT+~l zh9+n`(?7jT{}LD+0Gs+PEEf$ouKMSHcZb2iNCN$bLR{$_S9a(4z>#YFtb>juC+jdpo<0N z(2%1$Mf%guz!%9aD<79V`;_Vg+L%{9+^mQW#C0r;qpzxLEV=1%rzpauoFUC!;1qJ z(E}FQ*O_XL`(8fcn|u3MQa q97(y-hwJI+{M#Q|w@(UGgQciqX`@DxaC@~<^8R18<*T897yk#6B3q&W literal 0 HcmV?d00001 diff --git a/src/Presentation/SmartStore.Web/App_Data/Samples/product/le_corbusier_lc2_sofa_1.jpg b/src/Presentation/SmartStore.Web/App_Data/Samples/product/le_corbusier_lc2_sofa_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52ac26facb0df8909f9b1dd8f13ba92ff4af1ded GIT binary patch literal 7444 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 literal 0 HcmV?d00001 diff --git a/src/Presentation/SmartStore.Web/App_Data/Samples/product/mies_van_der_rohe_sofa_barcelona_1.jpg b/src/Presentation/SmartStore.Web/App_Data/Samples/product/mies_van_der_rohe_sofa_barcelona_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1ca271658ae004c1aece149288998fb04981c288 GIT binary patch literal 13708 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 U8q!tv3wRm)^s&zk_1_Qw7Z3_2Y5)KL literal 0 HcmV?d00001 diff --git a/src/Presentation/SmartStore.Web/App_Data/Samples/product/mies_van_der_rohe_tisch_barcelona_1.jpg b/src/Presentation/SmartStore.Web/App_Data/Samples/product/mies_van_der_rohe_tisch_barcelona_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fae230a0ed3f9db51c87dee61e8d9f5f62683f4a GIT binary patch literal 5456 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 Date: Tue, 2 Jun 2020 21:45:50 +0200 Subject: [PATCH 0003/1090] Fixed setting ressource ShowDIscountSign > hint did not describe function correctly --- .../SmartStore.Data/Migrations/MigrationsConfiguration.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Libraries/SmartStore.Data/Migrations/MigrationsConfiguration.cs b/src/Libraries/SmartStore.Data/Migrations/MigrationsConfiguration.cs index 7db3815f11..f886a3a6e0 100644 --- a/src/Libraries/SmartStore.Data/Migrations/MigrationsConfiguration.cs +++ b/src/Libraries/SmartStore.Data/Migrations/MigrationsConfiguration.cs @@ -728,6 +728,12 @@ public void MigrateLocaleResources(LocaleResourcesBuilder builder) builder.AddOrUpdate("Admin.Configuration.Settings.Media.Type.Document", "Document", "Dokument"); builder.AddOrUpdate("Admin.Configuration.Settings.Media.Type.Text", "Text", "Text"); builder.AddOrUpdate("Admin.Configuration.Settings.Media.Type.Bin", "Other", "Sonstige"); + + builder.AddOrUpdate("Admin.Configuration.Settings.Catalog.ShowDiscountSign", + "Show discount sign", + "Specifies whether a discount sign should be displayed on product pictures when discounts were applied", + "Rabattzeichen anzeigen", + "Legt fest, ob ein Rabattzeichen auf dem Produktbild angezeigt werden soll, wenn Rabatte angewendet wurden."); } } } From edceb4c443441634c9e5a4c4c84120dfbc7ea2f2 Mon Sep 17 00:00:00 2001 From: Marcel Schmidt Date: Tue, 2 Jun 2020 22:04:50 +0200 Subject: [PATCH 0004/1090] Applied Smartstore product brand name conventions --- .../Domain/Shipping/Shipment.cs | 2 +- .../SmartStore.Core/Fakes/FakeHttpRequest.cs | 2 +- .../SmartStore.Core/Packaging/Readme.txt | 2 +- .../SmartStore.Core/Plugins/PluginManager.cs | 2 +- .../SmartStore.Core/SmartStoreVersion.cs | 2 +- .../Utilities/FileDownloadManager.cs | 2 +- src/Libraries/SmartStore.Core/WebHelper.cs | 4 ++-- .../201908150749388_V322Resources.cs | 4 ++-- .../Setup/SeedData/InvariantSeedData.cs | 20 +++++++++++------- .../DataExchange/Export/DataExporter.cs | 2 +- .../DataExchange/Import/DataImporter.cs | 2 +- .../Services/AmazonPayServiceHelper.cs | 2 +- .../SmartStore.DevTools/Description.txt | 2 +- .../Localization/resources.de-de.xml | 2 +- .../Localization/resources.en-us.xml | 2 +- .../Views/DevTools/BackendExtension.cshtml | 4 ++-- .../Providers/PayPalStandardProvider.cs | 4 ++-- src/Plugins/SmartStore.WebApi/Description.txt | 4 ++-- .../SmartStore.WebApi/Scripts/swagger-auth.js | 4 ++-- .../Swagger/SwaggerOdataDocumentFilter.cs | 2 +- .../SmartUrlRoutingModule.cs | 2 +- .../Administration/Content/theme.scss | 2 +- .../Controllers/CommonController.cs | 2 +- .../Controllers/HomeController.cs | 2 +- .../Controllers/LanguageController.cs | 4 ++-- .../Views/Shared/Partials/Navbar.cshtml | 5 ++--- .../Installation/installation.de.xml | 6 +++--- .../Installation/installation.en.xml | 6 +++--- .../App_Data/Samples/company-logo.png | Bin 1975 -> 3874 bytes .../Installation/DeDESeedData.cs | 19 ++++++++++------- src/Presentation/SmartStore.Web/Refresh.html | 2 +- .../SmartStore.Web/Views/Install/Index.cshtml | 5 +++-- .../Views/Shared/Layouts/_Document.cshtml | 4 ++-- .../SmartStore.Web/favicon.readme.txt | 2 +- .../Search/LinqCatalogSearchServiceTests.cs | 8 +++---- .../SmartStore.Packager/MainForm.Designer.cs | 2 +- 36 files changed, 74 insertions(+), 67 deletions(-) diff --git a/src/Libraries/SmartStore.Core/Domain/Shipping/Shipment.cs b/src/Libraries/SmartStore.Core/Domain/Shipping/Shipment.cs index 5e76bf8d43..0ae02bd495 100644 --- a/src/Libraries/SmartStore.Core/Domain/Shipping/Shipment.cs +++ b/src/Libraries/SmartStore.Core/Domain/Shipping/Shipment.cs @@ -35,7 +35,7 @@ public partial class Shipment : BaseEntity /// /// Gets or sets the total weight of this shipment - /// It's nullable for compatibility with the previous version of SmartStore.NET where was no such property + /// It's nullable for compatibility with the previous version of Smartstore where was no such property /// [DataMember] public decimal? TotalWeight { get; set; } diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs b/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs index bf87081f57..3862a727f7 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs @@ -131,7 +131,7 @@ public override string UserHostAddress public override bool IsSecureConnection => _url?.Scheme?.EmptyNull().StartsWith("https", StringComparison.OrdinalIgnoreCase) == true; public override bool IsAuthenticated => false; public override string[] UserLanguages => new string[] { }; - public override string UserAgent => "SmartStore.NET"; + public override string UserAgent => "Smartstore"; public override bool IsLocal => false; public override RequestContext RequestContext diff --git a/src/Libraries/SmartStore.Core/Packaging/Readme.txt b/src/Libraries/SmartStore.Core/Packaging/Readme.txt index 58566c0667..2052796b87 100644 --- a/src/Libraries/SmartStore.Core/Packaging/Readme.txt +++ b/src/Libraries/SmartStore.Core/Packaging/Readme.txt @@ -1,4 +1,4 @@  -Inspiration for the SmartStore.NET packaging infrastructure comes from Orchard (http://orchardproject.net/), +Inspiration for the Smartstore packaging infrastructure comes from Orchard (http://orchardproject.net/), a fantastic ASP.NET MVC based open source CMS from the Outercurve Foundation. Most of the types here were copied over and refactored accordingly. \ No newline at end of file diff --git a/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs b/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs index 61e7d8ccdf..a34a036f21 100644 --- a/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs +++ b/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs @@ -105,7 +105,7 @@ private static void InitializeCore() var isFullTrust = WebHelper.GetTrustLevel() == AspNetHostingPermissionLevel.Unrestricted; if (!isFullTrust) { - throw new ApplicationException("SmartStore.NET requires Full Trust mode. Please enable Full Trust for your web site or contact your hosting provider."); + throw new ApplicationException("Smartstore requires Full Trust mode. Please enable Full Trust for your web site or contact your hosting provider."); } using (var updater = new AppUpdater()) diff --git a/src/Libraries/SmartStore.Core/SmartStoreVersion.cs b/src/Libraries/SmartStore.Core/SmartStoreVersion.cs index e5bc5e5e48..4fd74907cf 100644 --- a/src/Libraries/SmartStore.Core/SmartStoreVersion.cs +++ b/src/Libraries/SmartStore.Core/SmartStoreVersion.cs @@ -121,7 +121,7 @@ public static string GetUserGuideSpaceKey(string languageCode) } /// - /// Gets a list of SmartStore.NET versions in which breaking changes occured, + /// Gets a list of Smartstore versions in which breaking changes occured, /// which could lead to plugins malfunctioning. /// /// diff --git a/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs b/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs index d2a1171d6c..18ba757bb1 100644 --- a/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs +++ b/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs @@ -48,7 +48,7 @@ public FileDownloadResponse DownloadFile(string url, bool sendAuthCookie = false else { req = WebRequest.CreateHttp(url); - req.UserAgent = "SmartStore.NET"; + req.UserAgent = "Smartstore"; } if (timeout.HasValue) diff --git a/src/Libraries/SmartStore.Core/WebHelper.cs b/src/Libraries/SmartStore.Core/WebHelper.cs index 4617e0a0bd..eeb5dba1d6 100644 --- a/src/Libraries/SmartStore.Core/WebHelper.cs +++ b/src/Libraries/SmartStore.Core/WebHelper.cs @@ -754,7 +754,7 @@ public static HttpWebRequest CreateHttpRequestForSafeLocalCall(Uri requestUri) var request = WebRequest.CreateHttp(uri); request.ServerCertificateValidationCallback += (sender, cert, chain, errors) => true; request.ServicePoint.Expect100Continue = false; - request.UserAgent = "SmartStore.NET {0}".FormatInvariant(SmartStoreVersion.CurrentFullVersion); + request.UserAgent = "Smartstore {0}".FormatInvariant(SmartStoreVersion.CurrentFullVersion); return request; } @@ -808,7 +808,7 @@ private static bool TestHost(Uri originalUri, string host, int timeout) var request = WebRequest.CreateHttp(uri); request.ServerCertificateValidationCallback += (sender, cert, chain, errors) => true; request.ServicePoint.Expect100Continue = false; - request.UserAgent = "SmartStore.NET"; + request.UserAgent = "Smartstore"; request.Timeout = timeout; HttpWebResponse response = null; diff --git a/src/Libraries/SmartStore.Data/Migrations/201908150749388_V322Resources.cs b/src/Libraries/SmartStore.Data/Migrations/201908150749388_V322Resources.cs index 12a38b031e..b920443f92 100644 --- a/src/Libraries/SmartStore.Data/Migrations/201908150749388_V322Resources.cs +++ b/src/Libraries/SmartStore.Data/Migrations/201908150749388_V322Resources.cs @@ -62,8 +62,8 @@ public void MigrateLocaleResources(LocaleResourcesBuilder builder) "Bitte berprfen Sie die Link-Daten. Auf Basis Ihrer Eingabe kann kein Link erzeugt werden."); builder.AddOrUpdate("Admin.Packaging.IsIncompatible", - "The package is not compatible the current app version {0}. Please update Smartstore.NET or install another version of this package.", - "Das Paket ist nicht kompatibel mit der aktuellen Programmversion {0}. Bitte aktualisieren Sie Smartstore.NET oder nutzen Sie eine andere, kompatible Paket-Version."); + "The package is not compatible the current app version {0}. Please update Smartstore or install another version of this package.", + "Das Paket ist nicht kompatibel mit der aktuellen Programmversion {0}. Bitte aktualisieren Sie Smartstore oder nutzen Sie eine andere, kompatible Paket-Version."); } } } diff --git a/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.cs b/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.cs index 8b0439b212..2ddd292e9c 100644 --- a/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.cs +++ b/src/Libraries/SmartStore.Data/Setup/SeedData/InvariantSeedData.cs @@ -990,7 +990,7 @@ public IList BlogPosts() Language = defaultLanguage, Title = "Customer Service - Client Service", Body = "

Managing online business requires different skills and abilities than managing a business in the ‘real world.’ Customers can easily detect the size and determine the prestige of a business when they have the ability to walk in and take a look around. Not only do ‘real-world’ furnishings and location tell the customer what level of professionalism to expect, but "real world" personal encounters allow first impressions to be determined by how the business approaches its customer service. When a customer walks into a retail business just about anywhere in the world, that customer expects prompt and personal service, especially with regards to questions that they may have about products they wish to purchase.

Customer service or the client service is the service provided to the customer for his satisfaction during and after the purchase. It is necessary to every business organization to understand the customer needs for value added service. So customer data collection is essential. For this, a good customer service is important. The easiest way to lose a client is because of the poor customer service. The importance of customer service changes by product, industry and customer. Client service is an important part of every business organization. Each organization is different in its attitude towards customer service. Customer service requires a superior quality service through a careful design and execution of a series of activities which include people, technology and processes. Good customer service starts with the design and communication between the company and the staff.

In some ways, the lack of a physical business location allows the online business some leeway that their ‘real world’ counterparts do not enjoy. Location is not important, furnishings are not an issue, and most of the visual first impression is made through the professional design of the business website.

However, one thing still remains true. Customers will make their first impressions on the customer service they encounter. Unfortunately, in online business there is no opportunity for front- line staff to make a good impression. Every interaction the customer has with the website will be their primary means of making their first impression towards the business and its client service. Good customer service in any online business is a direct result of good website design and planning.

By Jayashree Pakhare (buzzle.com)

", - Tags = "e-commerce, Smartstore.NET, asp.net, sample tag, money", + Tags = "e-commerce, Smartstore, asp.net, sample tag, money", CreatedOnUtc = DateTime.UtcNow.AddSeconds(1), }; @@ -1010,22 +1010,26 @@ public IList NewsItems() { AllowComments = true, Language = defaultLanguage, - Title = "Smartstore.NET 3.2 now with the new CMS Page Builder", + Title = "Smartstore 3.2 now with the new CMS Page Builder", Short = "Create fascinating content with the new Page Builder", - Full = "
", + Full = "

Create fascinating content from products, product groups, images, videos and texts.
" + + "Transitions, animations, gradients, hover effects or overlays are easily applied in the WYSIWYG editor.

" + + "More information about Smartstore 3.2 and Page Builder can be found at www.smartstore.com

", Published = true, - MetaTitle = "Smartstore.NET 3.2", + MetaTitle = "Smartstore 3.2", CreatedOnUtc = DateTime.Now }; var news2 = new NewsItem() { AllowComments = true, Language = defaultLanguage, - Title = "Smartstore.NET new release!", - Short = "Smartstore.NET includes everything you need to begin your e-commerce online store.", - Full = "

Smartstore.NET includes everything you need to begin your e-commerce online store.
We have thought of everything and it's all included!

From downloads to documentation, www.smartstore.com offers a comprehensive base of information, resources, and support to the Smartstore.NET community.

", + Title = "Smartstore new release!", + Short = "Smartstore includes everything you need to begin your e-commerce online store.", + Full = "

Smartstore includes everything you need to begin your e-commerce online store.
" + + "We have thought of everything and it's all included!

Smartstore is a fully customizable shop-system. It's stable and highly usable.
" + + "From downloads to documentation, www.smartstore.com offers a comprehensive base of information, resources, and support to the Smartstore community.

", Published = true, - MetaTitle = "Smartstore.NET new release!", + MetaTitle = "Smartstore new release!", CreatedOnUtc = DateTime.Now }; diff --git a/src/Libraries/SmartStore.Services/DataExchange/Export/DataExporter.cs b/src/Libraries/SmartStore.Services/DataExchange/Export/DataExporter.cs index 2833879e15..919b2a5556 100644 --- a/src/Libraries/SmartStore.Services/DataExchange/Export/DataExporter.cs +++ b/src/Libraries/SmartStore.Services/DataExchange/Export/DataExporter.cs @@ -1625,7 +1625,7 @@ private void ExportCoreInner(DataExporterContext ctx, Store store) var logHead = new StringBuilder(); logHead.AppendLine(); logHead.AppendLine(new string('-', 40)); - logHead.AppendLine("SmartStore.NET: v." + SmartStoreVersion.CurrentFullVersion); + logHead.AppendLine("Smartstore: v." + SmartStoreVersion.CurrentFullVersion); logHead.Append("Export profile: " + profile.Name); logHead.AppendLine(profile.Id == 0 ? " (volatile)" : $" (Id {profile.Id})"); diff --git a/src/Libraries/SmartStore.Services/DataExchange/Import/DataImporter.cs b/src/Libraries/SmartStore.Services/DataExchange/Import/DataImporter.cs index b6c6cd1703..ffc8a89938 100644 --- a/src/Libraries/SmartStore.Services/DataExchange/Import/DataImporter.cs +++ b/src/Libraries/SmartStore.Services/DataExchange/Import/DataImporter.cs @@ -289,7 +289,7 @@ private void ImportCoreOuter(DataImporterContext ctx) var sb = new StringBuilder(); sb.AppendLine(); sb.AppendLine(new string('-', 40)); - sb.AppendLine("SmartStore.NET: v." + SmartStoreVersion.CurrentFullVersion); + sb.AppendLine("Smartstore: v." + SmartStoreVersion.CurrentFullVersion); sb.AppendLine("Import profile: {0} {1}".FormatInvariant(profile.Name, profile.Id == 0 ? " (volatile)" : $" (Id {profile.Id})")); foreach (var fileGroup in groupedFiles) { diff --git a/src/Plugins/SmartStore.AmazonPay/Services/AmazonPayServiceHelper.cs b/src/Plugins/SmartStore.AmazonPay/Services/AmazonPayServiceHelper.cs index 1fbf843352..c2f6d1746d 100644 --- a/src/Plugins/SmartStore.AmazonPay/Services/AmazonPayServiceHelper.cs +++ b/src/Plugins/SmartStore.AmazonPay/Services/AmazonPayServiceHelper.cs @@ -544,7 +544,7 @@ private Client CreateClient(AmazonPaySettings settings) .WithClientId(settings.ClientId) .WithSecretKey(settings.SecretKey) .WithSandbox(settings.UseSandbox) - .WithApplicationName("SmartStore.Net " + AmazonPayPlugin.SystemName) + .WithApplicationName("Smartstore " + AmazonPayPlugin.SystemName) .WithApplicationVersion(appVersion) .WithRegion(region); diff --git a/src/Plugins/SmartStore.DevTools/Description.txt b/src/Plugins/SmartStore.DevTools/Description.txt index 54399e9fcf..ca9061ce59 100644 --- a/src/Plugins/SmartStore.DevTools/Description.txt +++ b/src/Plugins/SmartStore.DevTools/Description.txt @@ -1,4 +1,4 @@ -FriendlyName: SmartStore.NET Developer Tools (MiniProfiler and other goodies) +FriendlyName: Smartstore Developer Tools (MiniProfiler and other goodies) SystemName: SmartStore.DevTools Group: Developer Version: 3.2.2 diff --git a/src/Plugins/SmartStore.DevTools/Localization/resources.de-de.xml b/src/Plugins/SmartStore.DevTools/Localization/resources.de-de.xml index f18f62b5d4..10fb461867 100644 --- a/src/Plugins/SmartStore.DevTools/Localization/resources.de-de.xml +++ b/src/Plugins/SmartStore.DevTools/Localization/resources.de-de.xml @@ -3,7 +3,7 @@ Developer Tools - SmartStore.NET Developer Tools (MiniProfiler und andere Extras). + Smartstore Developer Tools (MiniProfiler und andere Extras). Developer Tools Demo Widget diff --git a/src/Plugins/SmartStore.DevTools/Localization/resources.en-us.xml b/src/Plugins/SmartStore.DevTools/Localization/resources.en-us.xml index 2f503eb23a..8d519b9476 100644 --- a/src/Plugins/SmartStore.DevTools/Localization/resources.en-us.xml +++ b/src/Plugins/SmartStore.DevTools/Localization/resources.en-us.xml @@ -3,7 +3,7 @@ Developer Tools - SmartStore.NET Developer Tools (MiniProfiler and other goodies). + Smartstore Developer Tools (MiniProfiler and other goodies). Developer Tools Demo Widget diff --git a/src/Plugins/SmartStore.DevTools/Views/DevTools/BackendExtension.cshtml b/src/Plugins/SmartStore.DevTools/Views/DevTools/BackendExtension.cshtml index 0af50e879f..c325f2977c 100644 --- a/src/Plugins/SmartStore.DevTools/Views/DevTools/BackendExtension.cshtml +++ b/src/Plugins/SmartStore.DevTools/Views/DevTools/BackendExtension.cshtml @@ -3,13 +3,13 @@ @{ Layout = "_AdminLayout"; - ViewBag.Title = "My SmartStore.NET backend extension page"; + ViewBag.Title = "My Smartstore backend extension page"; }
- My SmartStore.NET backend extension page + My Smartstore backend extension page
diff --git a/src/Plugins/SmartStore.PayPal/Providers/PayPalStandardProvider.cs b/src/Plugins/SmartStore.PayPal/Providers/PayPalStandardProvider.cs index 5ff39c0bfb..016bf9c56e 100644 --- a/src/Plugins/SmartStore.PayPal/Providers/PayPalStandardProvider.cs +++ b/src/Plugins/SmartStore.PayPal/Providers/PayPalStandardProvider.cs @@ -202,13 +202,13 @@ public override void PostProcessPayment(PostProcessPaymentRequest postProcessPay decimal discountTotal = cartTotal - postProcessPaymentRequest.Order.OrderTotal; discountTotal = Math.Round(discountTotal, 2); - //gift card or rewared point amount applied to cart in SmartStore.NET - shows in Paypal as "discount" + // Gift card or rewared point amount applied to cart in Smartstore - shows in Paypal as "discount" builder.AppendFormat("&discount_amount_cart={0}", discountTotal.ToString("0.00", CultureInfo.InvariantCulture)); } } else { - //pass order total + // Pass order total string totalItemName = "{0} {1}".FormatWith(T("Checkout.OrderNumber"), orderNumber); builder.AppendFormat("&item_name={0}", HttpUtility.UrlEncode(totalItemName)); var orderTotal = Math.Round(postProcessPaymentRequest.Order.OrderTotal, 2); diff --git a/src/Plugins/SmartStore.WebApi/Description.txt b/src/Plugins/SmartStore.WebApi/Description.txt index 5580fe1226..88bdf73e2b 100644 --- a/src/Plugins/SmartStore.WebApi/Description.txt +++ b/src/Plugins/SmartStore.WebApi/Description.txt @@ -1,5 +1,5 @@ -FriendlyName: SmartStore.NET Web API -SystemName: SmartStore.WebApi +FriendlyName: Smartstore Web API +SystemName: Smartstore.WebApi Group: Api Version: 3.2.2 MinAppVersion: 3.2.2 diff --git a/src/Plugins/SmartStore.WebApi/Scripts/swagger-auth.js b/src/Plugins/SmartStore.WebApi/Scripts/swagger-auth.js index 2a80f260fb..cc69cf2220 100644 --- a/src/Plugins/SmartStore.WebApi/Scripts/swagger-auth.js +++ b/src/Plugins/SmartStore.WebApi/Scripts/swagger-auth.js @@ -15,7 +15,7 @@ var publicKey = $('#input_publickey').val(), secretKey = $('#input_secretkey').val(); - // add headers required for SmartStore.NET HMAC authentication + // Add headers required for Smartstore HMAC authentication if (publicKey && publicKey.trim() != '' && secretKey && secretKey.trim() != '') { smNetConsumer.init({ @@ -65,7 +65,7 @@ $(authUi).insertBefore('#api_selector div.input:last-child'); - // add SmartStore.NET HMAC authentication + // Add Smartstore HMAC authentication swaggerUi.api.clientAuthorizations.add('SmNetHmac1', new SmNetHmacSigner('SmNetHmac1')); } }); diff --git a/src/Plugins/SmartStore.WebApi/Services/Swagger/SwaggerOdataDocumentFilter.cs b/src/Plugins/SmartStore.WebApi/Services/Swagger/SwaggerOdataDocumentFilter.cs index b3c927fcaf..d75e592a1a 100644 --- a/src/Plugins/SmartStore.WebApi/Services/Swagger/SwaggerOdataDocumentFilter.cs +++ b/src/Plugins/SmartStore.WebApi/Services/Swagger/SwaggerOdataDocumentFilter.cs @@ -14,7 +14,7 @@ public class SwaggerOdataDocumentFilter : IDocumentFilter { public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer) { - swaggerDoc.info.title = "SmartStore.NET Web-API"; + swaggerDoc.info.title = "Smartstore Web-API"; var thisAssemblyTypes = Assembly.GetExecutingAssembly().GetTypes().ToList(); diff --git a/src/Presentation/SmartStore.Web.Framework/SmartUrlRoutingModule.cs b/src/Presentation/SmartStore.Web.Framework/SmartUrlRoutingModule.cs index 41e123dea0..cc1d0ae197 100644 --- a/src/Presentation/SmartStore.Web.Framework/SmartUrlRoutingModule.cs +++ b/src/Presentation/SmartStore.Web.Framework/SmartUrlRoutingModule.cs @@ -120,7 +120,7 @@ public static void RegisterAction(Action action) /// The app relative path to handle (regular expression, e.g. /sitemap.xml or /mini-profiler-resources/(.*)) /// The http method constraint (regular expression, e.g. GET|POST) /// - /// For performance reasons SmartStore.NET is configured to serve static files (files with extensions other than those mapped to managed handlers) + /// For performance reasons Smartstore is configured to serve static files (files with extensions other than those mapped to managed handlers) /// through the native StaticFileModule. This method lets you define exceptions to this default rule: every path registered as routable gets /// handled by the and therefore enables dynamic processing of (physically non-existent) static files. /// diff --git a/src/Presentation/SmartStore.Web/Administration/Content/theme.scss b/src/Presentation/SmartStore.Web/Administration/Content/theme.scss index 2cf202dddf..5af4a27bfc 100644 --- a/src/Presentation/SmartStore.Web/Administration/Content/theme.scss +++ b/src/Presentation/SmartStore.Web/Administration/Content/theme.scss @@ -1,6 +1,6 @@ /// -// Theme: SmartStore.NET Admin +// Theme: Smartstore Admin // ======================================== diff --git a/src/Presentation/SmartStore.Web/Administration/Controllers/CommonController.cs b/src/Presentation/SmartStore.Web/Administration/Controllers/CommonController.cs index 08cc68d10c..4ebf5dfc6f 100644 --- a/src/Presentation/SmartStore.Web/Administration/Controllers/CommonController.cs +++ b/src/Presentation/SmartStore.Web/Administration/Controllers/CommonController.cs @@ -186,7 +186,7 @@ private async Task CheckUpdateInternalAsync(bool enforce = fa client.Timeout = TimeSpan.FromMilliseconds(3000); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - client.DefaultRequestHeaders.UserAgent.ParseAdd("SmartStore.NET {0}".FormatInvariant(curVersion)); + client.DefaultRequestHeaders.UserAgent.ParseAdd("Smartstore {0}".FormatInvariant(curVersion)); client.DefaultRequestHeaders.Add("Authorization-Key", _services.StoreContext.CurrentStore.Url.TrimEnd('/')); client.DefaultRequestHeaders.Add("X-Application-ID", HostingEnvironment.ApplicationID); diff --git a/src/Presentation/SmartStore.Web/Administration/Controllers/HomeController.cs b/src/Presentation/SmartStore.Web/Administration/Controllers/HomeController.cs index 194dc2de8a..a0590e81bd 100644 --- a/src/Presentation/SmartStore.Web/Administration/Controllers/HomeController.cs +++ b/src/Presentation/SmartStore.Web/Administration/Controllers/HomeController.cs @@ -107,7 +107,7 @@ public ActionResult MarketplaceFeed() string url = "http://community.smartstore.com/index.php?/rss/downloads/"; var request = (HttpWebRequest)WebRequest.Create(url); request.Timeout = 3000; - request.UserAgent = "SmartStore.NET {0}".FormatInvariant(SmartStoreVersion.CurrentFullVersion); + request.UserAgent = "Smartstore {0}".FormatInvariant(SmartStoreVersion.CurrentFullVersion); using (WebResponse response = request.GetResponse()) { diff --git a/src/Presentation/SmartStore.Web/Administration/Controllers/LanguageController.cs b/src/Presentation/SmartStore.Web/Administration/Controllers/LanguageController.cs index 4609bd9485..dba284579e 100644 --- a/src/Presentation/SmartStore.Web/Administration/Controllers/LanguageController.cs +++ b/src/Presentation/SmartStore.Web/Administration/Controllers/LanguageController.cs @@ -214,7 +214,7 @@ private async Task CheckAvailableResources(bool e client.Timeout = TimeSpan.FromMilliseconds(10000); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - client.DefaultRequestHeaders.UserAgent.ParseAdd("SmartStore.NET " + currentVersion); + client.DefaultRequestHeaders.UserAgent.ParseAdd("Smartstore " + currentVersion); client.DefaultRequestHeaders.Add("Authorization-Key", Services.StoreContext.CurrentStore.Url.EmptyNull().TrimEnd('/')); var url = CommonHelper.GetAppSetting("sm:TranslateCheckUrl").FormatInvariant(currentVersion); @@ -254,7 +254,7 @@ private async Task DownloadAvailableResources(string downloadUrl, string { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(MediaTypeNames.Text.Xml)); - client.DefaultRequestHeaders.UserAgent.ParseAdd("SmartStore.NET " + SmartStoreVersion.CurrentFullVersion); + client.DefaultRequestHeaders.UserAgent.ParseAdd("Smartstore " + SmartStoreVersion.CurrentFullVersion); client.DefaultRequestHeaders.Add("Authorization-Key", storeUrl.EmptyNull().TrimEnd('/')); using (var sourceStream = await client.GetStreamAsync(downloadUrl)) diff --git a/src/Presentation/SmartStore.Web/Administration/Views/Shared/Partials/Navbar.cshtml b/src/Presentation/SmartStore.Web/Administration/Views/Shared/Partials/Navbar.cshtml index 5661064520..c4708c9ef1 100644 --- a/src/Presentation/SmartStore.Web/Administration/Views/Shared/Partials/Navbar.cshtml +++ b/src/Presentation/SmartStore.Web/Administration/Views/Shared/Partials/Navbar.cshtml @@ -19,9 +19,8 @@

Create fascinating content from products, product groups, images, videos and texts.
Transitions, animations, gradients, hover effects or overlays are easily applied in the WYSIWYG editor.

More information about Smartstore 3.2 and Page Builder can be found at
www.smartstore.com