From 548949c2ef7c3a77136534254b69b7151427a909 Mon Sep 17 00:00:00 2001 From: Version Upgrade Date: Wed, 15 Oct 2025 10:03:18 +0000 Subject: [PATCH] Upgrade to .NET 8 on Iteration 36 --- .../SmartStore.Core/Async/AsyncRunner.cs | 4 +- .../SmartStore.Core/Async/LocalAsyncState.cs | 23 +- src/Libraries/SmartStore.Core/BaseEntity.cs | 1 - .../Caching/MemoryCacheManager.cs | 34 +- .../SmartStore.Core/Caching/RequestCache.cs | 4 +- .../TypeConversion/DictionaryConverter.cs | 2 +- .../TypeConversion/TypeConverterFactory.cs | 2 +- .../SmartStore.Core/Data/DataSettings.cs | 1 - .../Data/Hooks/HookedEntity.cs | 10 +- .../SmartStore.Core/Data/IDbContext.cs | 2 +- .../Data/IDbContextExtensions.cs | 2 +- .../Data/IQueryableExtensions.cs | 2 +- .../Data/RepositoryExtensions.cs | 2 +- .../SmartStore.Core/Domain/Blogs/BlogPost.cs | 1 - .../Domain/Catalog/Category.cs | 1 - .../Domain/Catalog/Manufacturer.cs | 2 - .../SmartStore.Core/Domain/Catalog/Product.cs | 10 - .../Domain/Catalog/ProductAttribute.cs | 2 - .../Domain/Catalog/ProductCategory.cs | 2 - .../Domain/Catalog/ProductManufacturer.cs | 1 - .../Domain/Catalog/ProductTag.cs | 1 - .../Domain/Catalog/ProductVariantAttribute.cs | 3 - .../ProductVariantAttributeCombination.cs | 2 - .../Catalog/ProductVariantAttributeValue.cs | 4 - ...StoreProductVariantAttributeCombination.cs | 3 - .../Domain/Catalog/SpecificationAttribute.cs | 1 - .../Domain/Cms/MenuItemRecord.cs | 5 - .../SmartStore.Core/Domain/Cms/MenuRecord.cs | 4 - .../Domain/Customers/Customer.cs | 5 - .../Domain/Customers/CustomerRole.cs | 5 - .../Domain/Customers/CustomerRoleMapping.cs | 1 - .../Domain/Customers/WalletHistory.cs | 2 - .../Domain/DataExchange/SyncMapping.cs | 6 - .../SmartStore.Core/Domain/Forums/Forum.cs | 2 - .../Domain/Forums/ForumGroup.cs | 3 - .../Domain/Forums/ForumPost.cs | 2 - .../Domain/Forums/ForumTopic.cs | 7 - .../Domain/Localization/LocalizedProperty.cs | 5 - .../SmartStore.Core/Domain/Logging/Log.cs | 2 - .../SmartStore.Core/Domain/Media/Download.cs | 5 - .../SmartStore.Core/Domain/Media/MediaFile.cs | 22 - .../Domain/Media/MediaFolder.cs | 2 - .../Domain/Media/MediaTrack.cs | 4 - .../Domain/Messages/MessageTemplate.cs | 2 +- .../Domain/Messages/NewsLetterSubscription.cs | 3 - .../SmartStore.Core/Domain/News/NewsItem.cs | 1 - .../SmartStore.Core/Domain/Orders/Order.cs | 1 - .../Domain/Security/PermissionRecord.cs | 1 - .../Domain/Tasks/ScheduleTask.cs | 3 - .../Domain/Tasks/ScheduleTaskHistory.cs | 4 - .../AppRegisterGlobalFiltersEvent.cs | 2 +- .../Events/CommonMessages/AppStartedEvent.cs | 2 +- .../Extensions/HtmlTextWriterExtensions.cs | 1 - .../Extensions/HttpExtensions.cs | 40 +- .../Extensions/RouteExtensions.cs | 4 +- .../SmartStore.Core/Fakes/Extensions.cs | 2 +- .../SmartStore.Core/Fakes/FakeController.cs | 6 +- .../SmartStore.Core/Fakes/FakeHttpContext.cs | 19 +- .../SmartStore.Core/Fakes/FakeHttpHandler.cs | 4 + .../SmartStore.Core/Fakes/FakeHttpRequest.cs | 11 +- .../SmartStore.Core/Fakes/FakeHttpResponse.cs | 7 +- .../Fakes/FakeHttpSessionState.cs | 5 +- .../SmartStore.Core/Fakes/FakeIdentity.cs | 5 +- .../SmartStore.Core/Fakes/FakePrincipal.cs | 5 +- .../SmartStore.Core/Html/HtmlUtils.cs | 6 +- src/Libraries/SmartStore.Core/IMergedData.cs | 2 +- .../SmartStore.Core/IO/DirectoryHasher.cs | 2 +- .../SmartStore.Core/IO/LocalFileSystem.cs | 2 +- .../VirtualPath/DefaultVirtualPathProvider.cs | 4 +- .../IO/VirtualPath/IVirtualPathProvider.cs | 2 +- src/Libraries/SmartStore.Core/IWebHelper.cs | 1 + .../Infrastructure/ApplicationStart.cs | 4 +- .../Infrastructure/ContextState.cs | 59 +- .../AutofacRequestLifetimeHttpModule.cs | 25 +- .../DefaultLifetimeScopeProvider.cs | 1 - .../Infrastructure/SmartStoreEngine.cs | 3 +- .../Infrastructure/WebAppTypeFinder.cs | 2 +- .../Logging/log4net/Log4netLoggerFactory.cs | 8 +- .../NuGet/ExtensionReferenceRepository.cs | 100 +- .../Packaging/NuGet/FileBasedProjectSystem.cs | 85 +- .../Packaging/NuGet/NugetLogger.cs | 41 +- .../Packaging/NuGet/NullSourceRepository.cs | 24 +- .../Packaging/PackageBuilder.cs | 187 +- .../SmartStore.Core/Packaging/PackageInfo.cs | 4 + .../Packaging/PackageInstaller.cs | 294 +-- .../Packaging/PackageManager.cs | 4 + .../Packaging/PackagingUtils.cs | 143 +- .../Packaging/Updater/AppUpdater.cs | 467 +--- src/Libraries/SmartStore.Core/PagedList`T.cs | 4 +- .../SmartStore.Core/Plugins/IConfigurable.cs | 2 +- .../SmartStore.Core/Plugins/PluginManager.cs | 5 +- src/Libraries/SmartStore.Core/RouteInfo.cs | 2 +- .../Rules/Domain/RuleEntity.cs | 2 - .../Rules/Domain/RuleSetEntity.cs | 3 - .../SmartStore.Core/Rules/RuleStorage.cs | 2 +- .../Security/PermissionAttribute.cs | 2 +- .../Security/SmartStorePrincipal.cs | 2 +- .../SmartStore.Core/SmartStore.Core.csproj | 822 +------ .../SmartStore.Core/Utilities/CommonHelper.cs | 4 +- .../Utilities/FileDownloadManager.cs | 4 +- src/Libraries/SmartStore.Core/WebHelper.cs | 12 +- .../SmartStore.Data/SmartStore.Data.csproj | 1024 +------- .../SmartStore.Services.csproj | 876 +------ .../SmartStore.AmazonPay.csproj | 5 +- .../SmartStore.Clickatell.csproj | 6 +- .../SmartStore.DevTools.csproj | 364 +-- .../SmartStore.FacebookAuth.csproj | 6 +- .../SmartStore.GoogleAnalytics.csproj | 6 +- .../SmartStore.GoogleMerchantCenter.csproj | 6 +- .../SmartStore.OfflinePayment.csproj | 278 +-- .../SmartStore.PayPal.csproj | 6 +- .../SmartStore.Shipping.csproj | 283 +-- .../SmartStore.ShippingByWeight.csproj | 6 +- .../SmartStore.Tax/SmartStore.Tax.csproj | 285 +-- .../SmartStore.WebApi.csproj | 6 +- .../SmartStore.Web.Framework.csproj | 534 +--- .../Administration/SmartStore.Admin.csproj | 1399 +---------- .../SmartStore.Web/SmartStore.Web.csproj | 2181 +---------------- .../SmartStore.Core.Tests.csproj | 4 +- .../SmartStore.Data.Tests.csproj | 4 +- .../SmartStore.Services.Tests.csproj | 4 +- .../SmartStore.Tests/SmartStore.Tests.csproj | 4 +- .../SmartStore.Web.MVC.Tests.csproj | 4 +- .../SmartStore.Packager.csproj | 2 +- .../SmartStore.WebApi.Client.csproj | 3 +- 125 files changed, 488 insertions(+), 9476 deletions(-) diff --git a/src/Libraries/SmartStore.Core/Async/AsyncRunner.cs b/src/Libraries/SmartStore.Core/Async/AsyncRunner.cs index 91ffb0db95..fdc6a097d0 100644 --- a/src/Libraries/SmartStore.Core/Async/AsyncRunner.cs +++ b/src/Libraries/SmartStore.Core/Async/AsyncRunner.cs @@ -2,7 +2,6 @@ using System.Collections.Concurrent; using System.Threading; using System.Threading.Tasks; -using System.Web.Hosting; using Autofac; using SmartStore.Core.Infrastructure; @@ -344,6 +343,8 @@ public override SynchronizationContext CreateCopy() } } + // TODO: IRegisteredObject not supported in ASP.NET Core - migrate to IHostedService + /* internal class BackgroundWorkHost : IRegisteredObject { private readonly CancellationTokenSource _shutdownCancellationTokenSource = new CancellationTokenSource(); @@ -421,4 +422,5 @@ private void FinalShutdown() } } + */ } \ No newline at end of file diff --git a/src/Libraries/SmartStore.Core/Async/LocalAsyncState.cs b/src/Libraries/SmartStore.Core/Async/LocalAsyncState.cs index ba66c15bf0..ae6d53bee4 100644 --- a/src/Libraries/SmartStore.Core/Async/LocalAsyncState.cs +++ b/src/Libraries/SmartStore.Core/Async/LocalAsyncState.cs @@ -1,15 +1,16 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.Caching; using System.Threading; +using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Options; namespace SmartStore.Core.Async { public partial class LocalAsyncState : IAsyncState { - private readonly MemoryCache _states = new MemoryCache("SmartStore.AsyncState.Progress"); - private readonly MemoryCache _cancelTokens = new MemoryCache("SmartStore.AsyncState.CancelTokenSources"); + private readonly MemoryCache _states = new MemoryCache(Options.Create(new MemoryCacheOptions())); + private readonly MemoryCache _cancelTokens = new MemoryCache(Options.Create(new MemoryCacheOptions())); public virtual bool Exists(string name = null) { @@ -32,6 +33,9 @@ public virtual T Get(string name = null) public virtual IEnumerable GetAll() { + // TODO: MemoryCache in .NET 8 is not enumerable. Need to track keys separately. + throw new NotImplementedException("GetAll is not supported with Microsoft.Extensions.Caching.Memory. Consider tracking keys separately."); + /* var keyPrefix = BuildKey(null); return _states .Where(x => x.Key.StartsWith(keyPrefix)) @@ -39,6 +43,7 @@ public virtual IEnumerable GetAll() .OfType() .Select(x => x.Progress) .OfType(); + */ } @@ -60,17 +65,17 @@ public virtual void Set(T state, string name = null, bool neverExpires = fals { // add new entry var duration = neverExpires ? TimeSpan.Zero : TimeSpan.FromMinutes(15); - var policy = new CacheItemPolicy + var options = new MemoryCacheEntryOptions { SlidingExpiration = duration, - Priority = CacheItemPriority.NotRemovable + Priority = CacheItemPriority.NeverRemove }; var key = BuildKey(name); // On expiration or removal: remove corresponding cancel token also. - policy.RemovedCallback = (x) => OnRemoveCancelTokenSource(key); + options.RegisterPostEvictionCallback((k, v, r, s) => OnRemoveCancelTokenSource(key)); - _states.Set(key, new AsyncStateInfo { Progress = state, Duration = duration }, policy); + _states.Set(key, new AsyncStateInfo { Progress = state, Duration = duration }, options); } } @@ -155,9 +160,9 @@ public virtual void SetCancelTokenSource(CancellationTokenSource cancelTokenS OnRemoveCancelTokenSource(key); } - var policy = new CacheItemPolicy { Priority = CacheItemPriority.NotRemovable }; + var options = new MemoryCacheEntryOptions { Priority = CacheItemPriority.NeverRemove }; - _cancelTokens.Set(key, cancelTokenSource, policy); + _cancelTokens.Set(key, cancelTokenSource, options); } public bool Cancel(string name = null) diff --git a/src/Libraries/SmartStore.Core/BaseEntity.cs b/src/Libraries/SmartStore.Core/BaseEntity.cs index e2882f9851..2a2fdc9f09 100644 --- a/src/Libraries/SmartStore.Core/BaseEntity.cs +++ b/src/Libraries/SmartStore.Core/BaseEntity.cs @@ -1,6 +1,5 @@ using System; using System.ComponentModel.DataAnnotations.Schema; -using System.Data.Entity.Core.Objects; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Runtime.Serialization; diff --git a/src/Libraries/SmartStore.Core/Caching/MemoryCacheManager.cs b/src/Libraries/SmartStore.Core/Caching/MemoryCacheManager.cs index 332b199c61..7895776549 100644 --- a/src/Libraries/SmartStore.Core/Caching/MemoryCacheManager.cs +++ b/src/Libraries/SmartStore.Core/Caching/MemoryCacheManager.cs @@ -2,11 +2,12 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using System.Runtime.Caching; using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; +using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Options; using SmartStore.Core.Infrastructure.DependencyManagement; using SmartStore.Utilities; using SmartStore.Utilities.Threading; @@ -33,7 +34,7 @@ public MemoryCacheManager(Work scopeAccessor) private MemoryCache CreateCache() { - return new MemoryCache("SmartStore"); + return new MemoryCache(Options.Create(new MemoryCacheOptions())); } public bool IsDistributedCache => false; @@ -207,34 +208,27 @@ public virtual ISet GetHashSet(string key, Func> acquirer = return result; } - private CacheItemPolicy GetCacheItemPolicy(TimeSpan? duration, IEnumerable dependencies) + private MemoryCacheEntryOptions GetCacheItemPolicy(TimeSpan? duration, IEnumerable dependencies) { - var absoluteExpiration = ObjectCache.InfiniteAbsoluteExpiration; + var options = new MemoryCacheEntryOptions + { + Priority = CacheItemPriority.Normal + }; if (duration.HasValue) { - absoluteExpiration = DateTime.UtcNow + duration.Value; + options.AbsoluteExpirationRelativeToNow = duration.Value; } - var cacheItemPolicy = new CacheItemPolicy - { - AbsoluteExpiration = absoluteExpiration, - SlidingExpiration = ObjectCache.NoSlidingExpiration - }; - + // TODO: ChangeMonitors not supported in Microsoft.Extensions.Caching.Memory + // Need to implement cache dependencies differently using IChangeToken if (dependencies != null && dependencies.Any()) { - // INFO: we can only depend on existing items, otherwise this entry will be removed immediately. - dependencies = dependencies.Where(x => x != null && _cache.Contains(x)); - if (dependencies.Any()) - { - cacheItemPolicy.ChangeMonitors.Add(_cache.CreateCacheEntryChangeMonitor(dependencies)); - } + // INFO: Cache dependencies need to be reimplemented using IChangeToken + // For now, dependencies are ignored } - //cacheItemPolicy.RemovedCallback = OnRemoveEntry; - - return cacheItemPolicy; + return options; } //private void OnRemoveEntry(CacheEntryRemovedArguments args) diff --git a/src/Libraries/SmartStore.Core/Caching/RequestCache.cs b/src/Libraries/SmartStore.Core/Caching/RequestCache.cs index 601afc2fef..c9f5f94eef 100644 --- a/src/Libraries/SmartStore.Core/Caching/RequestCache.cs +++ b/src/Libraries/SmartStore.Core/Caching/RequestCache.cs @@ -14,9 +14,9 @@ public class RequestCache : DisposableObject, IRequestCache private readonly IDictionary _emptyDictionary = new Dictionary(); - private readonly HttpContextBase _context; + private readonly HttpContext _context; - public RequestCache(HttpContextBase context) + public RequestCache(HttpContext context) { _context = context; } diff --git a/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/DictionaryConverter.cs b/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/DictionaryConverter.cs index d94b7933e7..c0d97937dd 100644 --- a/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/DictionaryConverter.cs +++ b/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/DictionaryConverter.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Dynamic; using System.Globalization; -using System.Web.Routing; +using Microsoft.AspNetCore.Routing; using SmartStore.Utilities; namespace SmartStore.ComponentModel diff --git a/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/TypeConverterFactory.cs b/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/TypeConverterFactory.cs index 4db9fd8d90..a0fdbd9e9d 100644 --- a/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/TypeConverterFactory.cs +++ b/src/Libraries/SmartStore.Core/ComponentModel/TypeConversion/TypeConverterFactory.cs @@ -2,7 +2,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Dynamic; -using System.Web.Routing; +using Microsoft.AspNetCore.Routing; using Newtonsoft.Json.Linq; using SmartStore.Core.Domain.Catalog; using SmartStore.Core.Domain.Shipping; diff --git a/src/Libraries/SmartStore.Core/Data/DataSettings.cs b/src/Libraries/SmartStore.Core/Data/DataSettings.cs index 3f9a7e5b82..07df9f17d4 100644 --- a/src/Libraries/SmartStore.Core/Data/DataSettings.cs +++ b/src/Libraries/SmartStore.Core/Data/DataSettings.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Data.SqlClient; -using System.Data.SqlServerCe; using System.IO; using System.Linq; using System.Threading; diff --git a/src/Libraries/SmartStore.Core/Data/Hooks/HookedEntity.cs b/src/Libraries/SmartStore.Core/Data/Hooks/HookedEntity.cs index 11a9944a32..d3fe532bef 100644 --- a/src/Libraries/SmartStore.Core/Data/Hooks/HookedEntity.cs +++ b/src/Libraries/SmartStore.Core/Data/Hooks/HookedEntity.cs @@ -1,5 +1,5 @@ using System; -using System.Data.Entity.Infrastructure; +using Microsoft.EntityFrameworkCore; using EfState = System.Data.Entity.EntityState; namespace SmartStore.Core.Data.Hooks @@ -14,7 +14,7 @@ public interface IHookedEntity /// /// Gets the hooked entity entry /// - DbEntityEntry Entry { get; } + EntityEntry Entry { get; } /// /// Gets the hooked entity instance @@ -61,12 +61,12 @@ public class HookedEntity : IHookedEntity { private Type _entityType; - public HookedEntity(IDbContext context, DbEntityEntry entry) + public HookedEntity(IDbContext context, EntityEntry entry) : this(context.GetType(), entry) { } - internal HookedEntity(Type contextType, DbEntityEntry entry) + internal HookedEntity(Type contextType, EntityEntry entry) { ContextType = contextType; Entry = entry; @@ -78,7 +78,7 @@ public Type ContextType get; } - public DbEntityEntry Entry + public EntityEntry Entry { get; } diff --git a/src/Libraries/SmartStore.Core/Data/IDbContext.cs b/src/Libraries/SmartStore.Core/Data/IDbContext.cs index 95224e0308..5044fca160 100644 --- a/src/Libraries/SmartStore.Core/Data/IDbContext.cs +++ b/src/Libraries/SmartStore.Core/Data/IDbContext.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; -using System.Data.Entity; +using Microsoft.EntityFrameworkCore; using System.Threading.Tasks; namespace SmartStore.Core.Data diff --git a/src/Libraries/SmartStore.Core/Data/IDbContextExtensions.cs b/src/Libraries/SmartStore.Core/Data/IDbContextExtensions.cs index 430f4eabee..789a28b615 100644 --- a/src/Libraries/SmartStore.Core/Data/IDbContextExtensions.cs +++ b/src/Libraries/SmartStore.Core/Data/IDbContextExtensions.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.Entity; +using Microsoft.EntityFrameworkCore; using System.Linq; using System.Linq.Expressions; using SmartStore.Core; diff --git a/src/Libraries/SmartStore.Core/Data/IQueryableExtensions.cs b/src/Libraries/SmartStore.Core/Data/IQueryableExtensions.cs index dc5a3eed3e..67173d80eb 100644 --- a/src/Libraries/SmartStore.Core/Data/IQueryableExtensions.cs +++ b/src/Libraries/SmartStore.Core/Data/IQueryableExtensions.cs @@ -1,5 +1,5 @@ using System; -using System.Data.Entity; +using Microsoft.EntityFrameworkCore; using System.Linq; using System.Linq.Expressions; using SmartStore.Core; diff --git a/src/Libraries/SmartStore.Core/Data/RepositoryExtensions.cs b/src/Libraries/SmartStore.Core/Data/RepositoryExtensions.cs index 1fefc75eb2..f8cfc5e28a 100644 --- a/src/Libraries/SmartStore.Core/Data/RepositoryExtensions.cs +++ b/src/Libraries/SmartStore.Core/Data/RepositoryExtensions.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.Entity; +using Microsoft.EntityFrameworkCore; using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Linq.Expressions; diff --git a/src/Libraries/SmartStore.Core/Domain/Blogs/BlogPost.cs b/src/Libraries/SmartStore.Core/Domain/Blogs/BlogPost.cs index 821d502963..c433f51a65 100644 --- a/src/Libraries/SmartStore.Core/Domain/Blogs/BlogPost.cs +++ b/src/Libraries/SmartStore.Core/Domain/Blogs/BlogPost.cs @@ -167,7 +167,6 @@ public static IReadOnlyCollection GetVisibilityAffectingPropertyNames() /// Gets or sets a language identifier for which the blog post should be displayed. /// [DataMember] - [Index] public int? LanguageId { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/Category.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/Category.cs index f0364da897..5d760ef767 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/Category.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/Category.cs @@ -173,7 +173,6 @@ public partial class Category : BaseEntity, ICategoryNode, IAuditable, ISoftDele /// /// Gets or sets a value indicating whether the entity has been deleted /// - [Index] public bool Deleted { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/Manufacturer.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/Manufacturer.cs index 68ec18111c..22d4205361 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/Manufacturer.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/Manufacturer.cs @@ -109,7 +109,6 @@ public partial class Manufacturer : BaseEntity, IAuditable, ISoftDeletable, ILoc /// Gets or sets a value indicating whether the entity is subject to ACL. /// [DataMember] - [Index] public bool SubjectToAcl { get; set; } /// @@ -121,7 +120,6 @@ public partial class Manufacturer : BaseEntity, IAuditable, ISoftDeletable, ILoc /// /// Gets or sets a value indicating whether the entity has been deleted /// - [Index] public bool Deleted { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/Product.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/Product.cs index 06abbb9bbf..eff2b49bb4 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/Product.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/Product.cs @@ -90,7 +90,6 @@ public static IReadOnlyCollection GetVisibilityAffectingPropertyNames() /// Gets or sets the visibility level of the product. /// [DataMember] - [Index] public ProductVisibility Visibility { get; set; } /// @@ -216,7 +215,6 @@ public string Sku /// Gets or sets the manufacturer part number /// [DataMember] - [Index] public string ManufacturerPartNumber { [DebuggerStepThrough] @@ -228,7 +226,6 @@ public string ManufacturerPartNumber /// Gets or sets the Global Trade Item Number (GTIN). These identifiers include UPC (in North America), EAN (in Europe), JAN (in Japan), and ISBN (for books). /// [DataMember] - [Index] public string Gtin { [DebuggerStepThrough] @@ -669,30 +666,23 @@ public decimal Height /// Gets or sets a value indicating whether the entity is published /// [DataMember] - [Index("IX_Product_Published_Deleted_IsSystemProduct", 1)] public bool Published { get; set; } /// /// Gets or sets a value indicating whether the entity has been deleted /// - [Index] - [Index("IX_Product_Published_Deleted_IsSystemProduct", 2)] public bool Deleted { get; set; } /// /// Gets or sets a value indicating whether the entity is a system product. /// [DataMember] - [Index] - [Index("IX_Product_SystemName_IsSystemProduct", 2)] - [Index("IX_Product_Published_Deleted_IsSystemProduct", 3)] public bool IsSystemProduct { get; set; } /// /// Gets or sets the product system name. /// [DataMember] - [Index("IX_Product_SystemName_IsSystemProduct", 1)] public string SystemName { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductAttribute.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductAttribute.cs index 9043816b92..271ad124f1 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductAttribute.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductAttribute.cs @@ -37,14 +37,12 @@ public partial class ProductAttribute : BaseEntity, ILocalizedEntity, ISearchAli /// Gets or sets whether the attribute can be filtered /// [DataMember] - [Index] public bool AllowFiltering { get; set; } /// /// Gets or sets the display order /// [DataMember] - [Index] public int DisplayOrder { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductCategory.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductCategory.cs index 1d027e15b4..84c9c4f4e3 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductCategory.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductCategory.cs @@ -25,7 +25,6 @@ public partial class ProductCategory : BaseEntity /// Gets or sets a value indicating whether the product is featured /// [DataMember] - [Index] public bool IsFeaturedProduct { get; set; } /// @@ -38,7 +37,6 @@ public partial class ProductCategory : BaseEntity /// Indicates whether the mapping is created by the user or by the system. /// [DataMember] - [Index] public bool IsSystemMapping { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductManufacturer.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductManufacturer.cs index 88babcda90..22aafb82c4 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductManufacturer.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductManufacturer.cs @@ -25,7 +25,6 @@ public partial class ProductManufacturer : BaseEntity /// Gets or sets a value indicating whether the product is featured /// [DataMember] - [Index] public bool IsFeaturedProduct { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductTag.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductTag.cs index ace86b58ef..0c18987c40 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductTag.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductTag.cs @@ -23,7 +23,6 @@ public partial class ProductTag : BaseEntity, ILocalizedEntity /// Gets or sets a value indicating whether the entity is published. /// [DataMember] - [Index("IX_ProductTag_Published")] public bool Published { get; set; } = true; /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttribute.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttribute.cs index 44f6a4885e..3d18477b8e 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttribute.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttribute.cs @@ -18,7 +18,6 @@ public partial class ProductVariantAttribute : BaseEntity, ILocalizedEntity /// Gets or sets the product identifier /// [DataMember] - [Index("IX_Product_ProductAttribute_Mapping_ProductId_DisplayOrder", 1)] public int ProductId { get; set; } /// @@ -51,14 +50,12 @@ public partial class ProductVariantAttribute : BaseEntity, ILocalizedEntity /// Gets or sets the attribute control type identifier /// [DataMember] - [Index] public int AttributeControlTypeId { get; set; } /// /// Gets or sets the display order /// [DataMember] - [Index("IX_Product_ProductAttribute_Mapping_ProductId_DisplayOrder", 2)] public int DisplayOrder { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeCombination.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeCombination.cs index d3199afd8c..39025e8cc2 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeCombination.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeCombination.cs @@ -24,14 +24,12 @@ public partial class ProductVariantAttributeCombination : BaseEntity /// Gets or sets the stock quantity /// [DataMember] - [Index("IX_StockQuantity_AllowOutOfStockOrders", 1)] public int StockQuantity { get; set; } /// /// Gets or sets a value indicating whether to allow orders when out of stock /// [DataMember] - [Index("IX_StockQuantity_AllowOutOfStockOrders", 2)] public bool AllowOutOfStockOrders { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeValue.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeValue.cs index 7804a7f972..81853a7c6d 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeValue.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/ProductVariantAttributeValue.cs @@ -15,7 +15,6 @@ public partial class ProductVariantAttributeValue : BaseEntity, ILocalizedEntity /// Gets or sets the product variant attribute mapping identifier /// [DataMember] - [Index("IX_ProductVariantAttributeValue_ProductVariantAttributeId_DisplayOrder", 1)] public int ProductVariantAttributeId { get; set; } /// @@ -28,7 +27,6 @@ public partial class ProductVariantAttributeValue : BaseEntity, ILocalizedEntity /// Gets or sets the product variant attribute name /// [DataMember] - [Index] public string Name { get; set; } /// @@ -65,14 +63,12 @@ public partial class ProductVariantAttributeValue : BaseEntity, ILocalizedEntity /// Gets or sets the display order /// [DataMember] - [Index("IX_ProductVariantAttributeValue_ProductVariantAttributeId_DisplayOrder", 2)] public int DisplayOrder { get; set; } /// /// Gets or sets the type Id /// [DataMember] - [Index] public int ValueTypeId { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/SmartStoreProductVariantAttributeCombination.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/SmartStoreProductVariantAttributeCombination.cs index 9b3a3c6463..e30a6eb201 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/SmartStoreProductVariantAttributeCombination.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/SmartStoreProductVariantAttributeCombination.cs @@ -20,11 +20,9 @@ public ProductVariantAttributeCombination() public string Sku { get; set; } [DataMember] - [Index] public string Gtin { get; set; } [DataMember] - [Index] public string ManufacturerPartNumber { get; set; } [DataMember] @@ -61,7 +59,6 @@ public ProductVariantAttributeCombination() public virtual QuantityUnit QuantityUnit { get; set; } [DataMember] - [Index] public bool IsActive { get; set; } //public bool IsDefaultCombination { get; set; } diff --git a/src/Libraries/SmartStore.Core/Domain/Catalog/SpecificationAttribute.cs b/src/Libraries/SmartStore.Core/Domain/Catalog/SpecificationAttribute.cs index f867f81ff7..d74ce5f850 100644 --- a/src/Libraries/SmartStore.Core/Domain/Catalog/SpecificationAttribute.cs +++ b/src/Libraries/SmartStore.Core/Domain/Catalog/SpecificationAttribute.cs @@ -43,7 +43,6 @@ public partial class SpecificationAttribute : BaseEntity, ILocalizedEntity, ISea /// Gets or sets whether the specification attribute can be filtered. Only effective in accordance with MegaSearchPlus plugin. /// [DataMember] - [Index] public bool AllowFiltering { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Cms/MenuItemRecord.cs b/src/Libraries/SmartStore.Core/Domain/Cms/MenuItemRecord.cs index 90fc7610e9..01d0ac59f0 100644 --- a/src/Libraries/SmartStore.Core/Domain/Cms/MenuItemRecord.cs +++ b/src/Libraries/SmartStore.Core/Domain/Cms/MenuItemRecord.cs @@ -27,7 +27,6 @@ public class MenuItemRecord : BaseEntity, ILocalizedEntity, IStoreMappingSupport /// /// Gets or sets the parent menu item identifier. 0 if the item has no parent. /// - [Index("IX_MenuItem_ParentItemId")] public int ParentItemId { get; set; } /// @@ -63,13 +62,11 @@ public class MenuItemRecord : BaseEntity, ILocalizedEntity, IStoreMappingSupport /// /// Gets or sets a value indicating whether the menu item is published. /// - [Index("IX_MenuItem_Published")] public bool Published { get; set; } = true; /// /// Gets or sets the display order. /// - [Index("IX_MenuItem_DisplayOrder")] public int DisplayOrder { get; set; } /// @@ -125,13 +122,11 @@ public class MenuItemRecord : BaseEntity, ILocalizedEntity, IStoreMappingSupport /// /// Gets or sets a value indicating whether the entity is limited/restricted to certain stores. /// - [Index("IX_MenuItem_LimitedToStores")] public bool LimitedToStores { get; set; } /// /// Gets or sets a value indicating whether the entity is subject to ACL. /// - [Index("IX_MenuItem_SubjectToAcl")] public bool SubjectToAcl { get; set; } } } diff --git a/src/Libraries/SmartStore.Core/Domain/Cms/MenuRecord.cs b/src/Libraries/SmartStore.Core/Domain/Cms/MenuRecord.cs index 19dfe6e581..5e09e49181 100644 --- a/src/Libraries/SmartStore.Core/Domain/Cms/MenuRecord.cs +++ b/src/Libraries/SmartStore.Core/Domain/Cms/MenuRecord.cs @@ -35,7 +35,6 @@ public virtual ICollection Items /// /// Gets or sets the value indicating whether this menu is deleteable by a user. /// - [Index("IX_Menu_SystemName_IsSystemMenu", Order = 1)] public bool IsSystemMenu { get; set; } /// @@ -59,7 +58,6 @@ public virtual ICollection Items /// /// Gets or sets a value indicating whether the menu is published. /// - [Index("IX_Menu_Published")] public bool Published { get; set; } = true; /// @@ -70,13 +68,11 @@ public virtual ICollection Items /// /// Gets or sets a value indicating whether the entity is limited/restricted to certain stores. /// - [Index("IX_Menu_LimitedToStores")] public bool LimitedToStores { get; set; } /// /// Gets or sets a value indicating whether the entity is subject to ACL. /// - [Index("IX_Menu_SubjectToAcl")] public bool SubjectToAcl { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Customers/Customer.cs b/src/Libraries/SmartStore.Core/Domain/Customers/Customer.cs index c0582bce24..6616c3405a 100644 --- a/src/Libraries/SmartStore.Core/Domain/Customers/Customer.cs +++ b/src/Libraries/SmartStore.Core/Domain/Customers/Customer.cs @@ -105,23 +105,18 @@ public PasswordFormat PasswordFormat /// /// Gets or sets a value indicating whether the customer has been deleted /// - [Index] - [Index("IX_Customer_Deleted_IsSystemAccount", 1)] public bool Deleted { get; set; } /// /// Gets or sets a value indicating whether the customer account is system /// [DataMember] - [Index] - [Index("IX_Customer_Deleted_IsSystemAccount", 2)] public bool IsSystemAccount { get; set; } /// /// Gets or sets the customer system name /// [DataMember] - [Index] public string SystemName { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRole.cs b/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRole.cs index f5f8e96436..6d20871c2e 100644 --- a/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRole.cs +++ b/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRole.cs @@ -43,23 +43,18 @@ public partial class CustomerRole : BaseEntity, IRulesContainer /// Gets or sets a value indicating whether the customer role is active /// [DataMember] - [Index] public bool Active { get; set; } /// /// Gets or sets a value indicating whether the customer role is system /// [DataMember] - [Index] - [Index("IX_CustomerRole_SystemName_IsSystemRole", 2)] public bool IsSystemRole { get; set; } /// /// Gets or sets the customer role system name /// [DataMember] - [Index] - [Index("IX_CustomerRole_SystemName_IsSystemRole", 1)] public string SystemName { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRoleMapping.cs b/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRoleMapping.cs index 18ff112076..7035fb90f3 100644 --- a/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRoleMapping.cs +++ b/src/Libraries/SmartStore.Core/Domain/Customers/CustomerRoleMapping.cs @@ -26,7 +26,6 @@ public partial class CustomerRoleMapping : BaseEntity /// Indicates whether the mapping is created by the user or by the system. /// [DataMember] - [Index] public bool IsSystemMapping { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Customers/WalletHistory.cs b/src/Libraries/SmartStore.Core/Domain/Customers/WalletHistory.cs index 4befa9f0d9..fd0dd77183 100644 --- a/src/Libraries/SmartStore.Core/Domain/Customers/WalletHistory.cs +++ b/src/Libraries/SmartStore.Core/Domain/Customers/WalletHistory.cs @@ -12,7 +12,6 @@ public class WalletHistory : BaseEntity /// /// Gets or sets the store identifier. Should not be zero. /// - [Index("IX_StoreId_CreatedOn", 0)] public int StoreId { get; set; } /// @@ -43,7 +42,6 @@ public class WalletHistory : BaseEntity /// /// Gets or sets the date ehen the entry was created (in UTC). /// - [Index("IX_StoreId_CreatedOn", 1)] public DateTime CreatedOnUtc { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/DataExchange/SyncMapping.cs b/src/Libraries/SmartStore.Core/Domain/DataExchange/SyncMapping.cs index 09230db0a7..b6f31f241c 100644 --- a/src/Libraries/SmartStore.Core/Domain/DataExchange/SyncMapping.cs +++ b/src/Libraries/SmartStore.Core/Domain/DataExchange/SyncMapping.cs @@ -20,30 +20,24 @@ public SyncMapping() /// /// Gets or sets the entity identifier in SmartStore /// - [Index("IX_SyncMapping_ByEntity", 0, IsUnique = true)] [DataMember] public int EntityId { get; set; } /// /// Gets or sets the entity's key in the external application /// - [Index("IX_SyncMapping_BySource", 0, IsUnique = true)] [DataMember] public string SourceKey { get; set; } /// /// Gets or sets a name representing the entity type /// - [Index("IX_SyncMapping_ByEntity", 1, IsUnique = true)] - [Index("IX_SyncMapping_BySource", 1, IsUnique = true)] [DataMember] public string EntityName { get; set; } /// /// Gets or sets a name for the external application /// - [Index("IX_SyncMapping_ByEntity", 2, IsUnique = true)] - [Index("IX_SyncMapping_BySource", 2, IsUnique = true)] [DataMember] public string ContextName { get; set; } diff --git a/src/Libraries/SmartStore.Core/Domain/Forums/Forum.cs b/src/Libraries/SmartStore.Core/Domain/Forums/Forum.cs index b4cedb8d01..df8c4cb64c 100644 --- a/src/Libraries/SmartStore.Core/Domain/Forums/Forum.cs +++ b/src/Libraries/SmartStore.Core/Domain/Forums/Forum.cs @@ -13,7 +13,6 @@ public partial class Forum : BaseEntity, IAuditable, ILocalizedEntity, ISlugSupp /// /// Gets or sets the forum group identifier /// - [Index("IX_ForumGroupId_DisplayOrder", Order = 0)] public int ForumGroupId { get; set; } /// @@ -59,7 +58,6 @@ public partial class Forum : BaseEntity, IAuditable, ILocalizedEntity, ISlugSupp /// /// Gets or sets the display order /// - [Index("IX_ForumGroupId_DisplayOrder", Order = 1)] public int DisplayOrder { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Forums/ForumGroup.cs b/src/Libraries/SmartStore.Core/Domain/Forums/ForumGroup.cs index 3b21ddda01..40d82f6dbd 100644 --- a/src/Libraries/SmartStore.Core/Domain/Forums/ForumGroup.cs +++ b/src/Libraries/SmartStore.Core/Domain/Forums/ForumGroup.cs @@ -28,7 +28,6 @@ public partial class ForumGroup : BaseEntity, IAuditable, IStoreMappingSupported /// /// Gets or sets the display order /// - [Index] public int DisplayOrder { get; set; } /// @@ -44,13 +43,11 @@ public partial class ForumGroup : BaseEntity, IAuditable, IStoreMappingSupported /// /// Gets or sets a value indicating whether the entity is limited/restricted to certain stores /// - [Index] public bool LimitedToStores { get; set; } /// /// Gets or sets a value indicating whether the entity is subject to ACL /// - [Index] public bool SubjectToAcl { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Forums/ForumPost.cs b/src/Libraries/SmartStore.Core/Domain/Forums/ForumPost.cs index 3098a9cdc0..1809ec537e 100644 --- a/src/Libraries/SmartStore.Core/Domain/Forums/ForumPost.cs +++ b/src/Libraries/SmartStore.Core/Domain/Forums/ForumPost.cs @@ -35,7 +35,6 @@ public partial class ForumPost : BaseEntity, IAuditable /// /// Gets or sets the date and time of instance creation /// - [Index] public DateTime CreatedOnUtc { get; set; } /// @@ -46,7 +45,6 @@ public partial class ForumPost : BaseEntity, IAuditable /// /// Gets or sets a value indicating whether the entity is published /// - [Index] public bool Published { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Forums/ForumTopic.cs b/src/Libraries/SmartStore.Core/Domain/Forums/ForumTopic.cs index d7059778c1..feecc8ab5b 100644 --- a/src/Libraries/SmartStore.Core/Domain/Forums/ForumTopic.cs +++ b/src/Libraries/SmartStore.Core/Domain/Forums/ForumTopic.cs @@ -12,7 +12,6 @@ public partial class ForumTopic : BaseEntity, IAuditable /// /// Gets or sets the forum identifier /// - [Index("IX_ForumId_Published", Order = 0)] public int ForumId { get; set; } /// @@ -23,19 +22,16 @@ public partial class ForumTopic : BaseEntity, IAuditable /// /// Gets or sets the topic type identifier /// - [Index("IX_TopicTypeId_LastPostTime", Order = 0)] public int TopicTypeId { get; set; } /// /// Gets or sets the subject /// - [Index] public string Subject { get; set; } /// /// Gets or sets the number of posts /// - [Index] public int NumPosts { get; set; } /// @@ -62,13 +58,11 @@ public partial class ForumTopic : BaseEntity, IAuditable /// /// Gets or sets the last post date and time /// - [Index("IX_TopicTypeId_LastPostTime", Order = 1)] public DateTime? LastPostTime { get; set; } /// /// Gets or sets the date and time of instance creation /// - [Index] public DateTime CreatedOnUtc { get; set; } /// @@ -79,7 +73,6 @@ public partial class ForumTopic : BaseEntity, IAuditable /// /// Gets or sets a value indicating whether the entity is published /// - [Index("IX_ForumId_Published", Order = 1)] public bool Published { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Localization/LocalizedProperty.cs b/src/Libraries/SmartStore.Core/Domain/Localization/LocalizedProperty.cs index 521252dd36..e0bc8cd285 100644 --- a/src/Libraries/SmartStore.Core/Domain/Localization/LocalizedProperty.cs +++ b/src/Libraries/SmartStore.Core/Domain/Localization/LocalizedProperty.cs @@ -13,29 +13,24 @@ public partial class LocalizedProperty : BaseEntity /// Gets or sets the entity identifier /// [DataMember] - [Index("IX_LocalizedProperty_Compound", Order = 1)] public int EntityId { get; set; } /// /// Gets or sets the language identifier /// [DataMember] - [Index("IX_LocalizedProperty_Compound", Order = 4)] public int LanguageId { get; set; } /// /// Gets or sets the locale key group /// [DataMember] - [Index("IX_LocalizedProperty_Compound", Order = 3)] - [Index("IX_LocalizedProperty_LocaleKeyGroup")] public string LocaleKeyGroup { get; set; } /// /// Gets or sets the locale key /// [DataMember] - [Index("IX_LocalizedProperty_Compound", Order = 2)] public string LocaleKey { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Logging/Log.cs b/src/Libraries/SmartStore.Core/Domain/Logging/Log.cs index a907f17dfc..d255a58f54 100644 --- a/src/Libraries/SmartStore.Core/Domain/Logging/Log.cs +++ b/src/Libraries/SmartStore.Core/Domain/Logging/Log.cs @@ -15,7 +15,6 @@ public partial class Log : BaseEntity /// /// Gets or sets the log level identifier /// - [Index("IX_Log_Level", IsUnique = false)] public int LogLevelId { get; set; } /// @@ -56,7 +55,6 @@ public partial class Log : BaseEntity /// /// Gets or sets the logger name /// - [Index("IX_Log_Logger", IsUnique = false)] public string Logger { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Media/Download.cs b/src/Libraries/SmartStore.Core/Domain/Media/Download.cs index 95c3a6351e..d601a526ff 100644 --- a/src/Libraries/SmartStore.Core/Domain/Media/Download.cs +++ b/src/Libraries/SmartStore.Core/Domain/Media/Download.cs @@ -15,7 +15,6 @@ public partial class Download : BaseEntity//, ITransient /// Gets or sets a GUID /// [DataMember] - [Index] public Guid DownloadGuid { get; set; } /// @@ -34,14 +33,12 @@ public partial class Download : BaseEntity//, ITransient /// Gets or sets a value indicating whether the entity transient/preliminary /// [DataMember] - [Index("IX_UpdatedOn_IsTransient", 1)] public bool IsTransient { get; set; } /// /// Gets or sets the date and time of instance update /// [DataMember] - [Index("IX_UpdatedOn_IsTransient", 0)] public DateTime UpdatedOnUtc { get; set; } /// @@ -60,14 +57,12 @@ public partial class Download : BaseEntity//, ITransient /// Gets or sets a value indicating the corresponding entity id /// [DataMember] - [Index("IX_EntityId_EntityName", 0)] public int EntityId { get; set; } /// /// Gets or sets a value indicating the corresponding entity name /// [DataMember] - [Index("IX_EntityId_EntityName", 1)] [StringLength(100)] public string EntityName { get; set; } diff --git a/src/Libraries/SmartStore.Core/Domain/Media/MediaFile.cs b/src/Libraries/SmartStore.Core/Domain/Media/MediaFile.cs index 2681666518..4283ead9df 100644 --- a/src/Libraries/SmartStore.Core/Domain/Media/MediaFile.cs +++ b/src/Libraries/SmartStore.Core/Domain/Media/MediaFile.cs @@ -37,13 +37,6 @@ public static IReadOnlyCollection GetOutputAffectingPropertyNames() /// Gets or sets the associated folder identifier. /// [DataMember] - [Index("IX_Media_MediaType", 0)] - [Index("IX_Media_Extension", 0)] - [Index("IX_Media_PixelSize", 0)] - [Index("IX_Media_Name", 0)] - [Index("IX_Media_Size", 0)] - [Index("IX_Media_UpdatedOnUtc", 0)] - [Index("IX_Media_FolderId", 0)] public int? FolderId { get; set; } /// @@ -56,7 +49,6 @@ public static IReadOnlyCollection GetOutputAffectingPropertyNames() /// Gets or sets the SEO friendly name of the media file including file extension /// [DataMember] - [Index("IX_Media_Name", 1)] public string Name { get; set; } /// @@ -75,8 +67,6 @@ public static IReadOnlyCollection GetOutputAffectingPropertyNames() /// Gets or sets the (dotless) file extension /// [DataMember] - [Index("IX_Media_MediaType", 2)] - [Index("IX_Media_Extension", 1)] public string Extension { get; set; } /// @@ -89,23 +79,18 @@ public static IReadOnlyCollection GetOutputAffectingPropertyNames() /// Gets or sets the file media type (image, video, audio, document etc.) /// [DataMember] - [Index("IX_Media_MediaType", 1)] public string MediaType { get; set; } /// /// Gets or sets the file size in bytes /// [DataMember] - [Index("IX_Media_Size", 1)] public int Size { get; set; } /// /// Gets or sets the total pixel size of an image (width * height) /// [DataMember] - [Index("IX_Media_MediaType", 3)] - [Index("IX_Media_Extension", 2)] - [Index("IX_Media_PixelSize", 1)] public int? PixelSize { get; set; } /// @@ -147,13 +132,6 @@ public static IReadOnlyCollection GetOutputAffectingPropertyNames() /// /// Gets or sets a value indicating whether the file has been soft deleted /// - [Index("IX_Media_MediaType", 4)] - [Index("IX_Media_Extension", 3)] - [Index("IX_Media_PixelSize", 2)] - [Index("IX_Media_Name", 2)] - [Index("IX_Media_Size", 2)] - [Index("IX_Media_UpdatedOnUtc", 2)] - [Index("IX_Media_FolderId", 1)] public bool Deleted { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Media/MediaFolder.cs b/src/Libraries/SmartStore.Core/Domain/Media/MediaFolder.cs index 3598c1bb8d..7a025715af 100644 --- a/src/Libraries/SmartStore.Core/Domain/Media/MediaFolder.cs +++ b/src/Libraries/SmartStore.Core/Domain/Media/MediaFolder.cs @@ -14,7 +14,6 @@ public partial class MediaFolder : BaseEntity /// Gets or sets the parent folder id. /// [DataMember] - [Index("IX_NameParentId", Order = 0, IsUnique = true)] public int? ParentId { get; set; } /// @@ -26,7 +25,6 @@ public partial class MediaFolder : BaseEntity /// Gets or sets the media folder name. /// [DataMember] - [Index("IX_NameParentId", Order = 1, IsUnique = true)] public string Name { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Media/MediaTrack.cs b/src/Libraries/SmartStore.Core/Domain/Media/MediaTrack.cs index 359c4c5141..526a7439bb 100644 --- a/src/Libraries/SmartStore.Core/Domain/Media/MediaTrack.cs +++ b/src/Libraries/SmartStore.Core/Domain/Media/MediaTrack.cs @@ -26,7 +26,6 @@ public partial class MediaTrack : BaseEntity, IEquatable /// Gets or sets the media file identifier. /// [DataMember] - [Index("IX_MediaTrack_Composite", IsUnique = true, Order = 0)] public int MediaFileId { get => _mediaFileId; @@ -52,7 +51,6 @@ public int MediaFileId /// Gets or sets the related entity identifier. /// [DataMember] - [Index("IX_MediaTrack_Composite", IsUnique = true, Order = 1)] public int EntityId { get => _entityId; @@ -67,7 +65,6 @@ public int EntityId /// Gets or sets the related entity set name. /// [DataMember] - [Index("IX_MediaTrack_Composite", IsUnique = true, Order = 2)] public string EntityName { get => _entityName; @@ -82,7 +79,6 @@ public string EntityName /// Gets or sets the media file property name in the tracked entity. /// [DataMember] - [Index("IX_MediaTrack_Composite", IsUnique = true, Order = 3)] public string Property { get => _property; diff --git a/src/Libraries/SmartStore.Core/Domain/Messages/MessageTemplate.cs b/src/Libraries/SmartStore.Core/Domain/Messages/MessageTemplate.cs index b15cfc8557..793e38aa6f 100644 --- a/src/Libraries/SmartStore.Core/Domain/Messages/MessageTemplate.cs +++ b/src/Libraries/SmartStore.Core/Domain/Messages/MessageTemplate.cs @@ -1,5 +1,5 @@ using System.ComponentModel.DataAnnotations; -using System.Web.Mvc; +using Microsoft.AspNetCore.Mvc; using SmartStore.Core.Domain.Localization; using SmartStore.Core.Domain.Stores; diff --git a/src/Libraries/SmartStore.Core/Domain/Messages/NewsLetterSubscription.cs b/src/Libraries/SmartStore.Core/Domain/Messages/NewsLetterSubscription.cs index 282267126a..69743f9821 100644 --- a/src/Libraries/SmartStore.Core/Domain/Messages/NewsLetterSubscription.cs +++ b/src/Libraries/SmartStore.Core/Domain/Messages/NewsLetterSubscription.cs @@ -20,14 +20,12 @@ public partial class NewsLetterSubscription : BaseEntity /// Gets or sets the subcriber email /// [DataMember] - [Index("IX_NewsletterSubscription_Email_StoreId", 1)] public string Email { get; set; } /// /// Gets or sets a value indicating whether subscription is active /// [DataMember] - [Index] public bool Active { get; set; } /// @@ -40,7 +38,6 @@ public partial class NewsLetterSubscription : BaseEntity /// Gets or sets the store identifier /// [DataMember] - [Index("IX_NewsletterSubscription_Email_StoreId", 2)] public int StoreId { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/News/NewsItem.cs b/src/Libraries/SmartStore.Core/Domain/News/NewsItem.cs index 954961a9b2..0f380e95c4 100644 --- a/src/Libraries/SmartStore.Core/Domain/News/NewsItem.cs +++ b/src/Libraries/SmartStore.Core/Domain/News/NewsItem.cs @@ -130,7 +130,6 @@ public static IReadOnlyCollection GetVisibilityAffectingPropertyNames() /// /// Gets or sets a language identifier for which the news item should be displayed. /// - [Index] public int? LanguageId { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Orders/Order.cs b/src/Libraries/SmartStore.Core/Domain/Orders/Order.cs index d32337103c..0cb3324729 100644 --- a/src/Libraries/SmartStore.Core/Domain/Orders/Order.cs +++ b/src/Libraries/SmartStore.Core/Domain/Orders/Order.cs @@ -440,7 +440,6 @@ protected virtual SortedDictionary ParseTaxRates(string taxRat /// /// Gets or sets a value indicating whether the entity has been deleted /// - [Index] public bool Deleted { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Security/PermissionRecord.cs b/src/Libraries/SmartStore.Core/Domain/Security/PermissionRecord.cs index aa2f64a941..ee88fdccdf 100644 --- a/src/Libraries/SmartStore.Core/Domain/Security/PermissionRecord.cs +++ b/src/Libraries/SmartStore.Core/Domain/Security/PermissionRecord.cs @@ -13,7 +13,6 @@ public class PermissionRecord : BaseEntity /// /// Gets or sets the permission system name. /// - [Index] public string SystemName { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTask.cs b/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTask.cs index bf04b013c6..3edb5ec884 100644 --- a/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTask.cs +++ b/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTask.cs @@ -37,13 +37,11 @@ public class ScheduleTask : BaseEntity, ICloneable /// /// Gets or sets the type of appropriate ITask class /// - [Index("IX_Type")] public string Type { get; set; } /// /// Gets or sets the value indicating whether a task is enabled /// - [Index("IX_NextRun_Enabled", 1)] public bool Enabled { get; set; } /// @@ -56,7 +54,6 @@ public class ScheduleTask : BaseEntity, ICloneable /// public bool StopOnError { get; set; } - [Index("IX_NextRun_Enabled", 0)] public DateTime? NextRunUtc { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTaskHistory.cs b/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTaskHistory.cs index dbf2cbfefb..53b53b742a 100644 --- a/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTaskHistory.cs +++ b/src/Libraries/SmartStore.Core/Domain/Tasks/ScheduleTaskHistory.cs @@ -15,25 +15,21 @@ public class ScheduleTaskHistory : BaseEntity, ICloneable /// /// Gets or sets whether the task is running. /// - [Index("IX_MachineName_IsRunning", 1)] public bool IsRunning { get; set; } /// /// Gets or sets the server machine name. /// - [Index("IX_MachineName_IsRunning", 0)] public string MachineName { get; set; } /// /// Gets or sets the date when the task was started. It is also the date when this entry was created. /// - [Index("IX_Started_Finished", 0)] public DateTime StartedOnUtc { get; set; } /// /// Gets or sets the date when the task has been finished. /// - [Index("IX_Started_Finished", 1)] public DateTime? FinishedOnUtc { get; set; } /// diff --git a/src/Libraries/SmartStore.Core/Events/CommonMessages/AppRegisterGlobalFiltersEvent.cs b/src/Libraries/SmartStore.Core/Events/CommonMessages/AppRegisterGlobalFiltersEvent.cs index 6fd6e8d6fe..1e35592ad6 100644 --- a/src/Libraries/SmartStore.Core/Events/CommonMessages/AppRegisterGlobalFiltersEvent.cs +++ b/src/Libraries/SmartStore.Core/Events/CommonMessages/AppRegisterGlobalFiltersEvent.cs @@ -1,4 +1,4 @@ -using System.Web.Mvc; +using Microsoft.AspNetCore.Mvc; namespace SmartStore.Core.Events { diff --git a/src/Libraries/SmartStore.Core/Events/CommonMessages/AppStartedEvent.cs b/src/Libraries/SmartStore.Core/Events/CommonMessages/AppStartedEvent.cs index 95576aea9f..3e43fadd96 100644 --- a/src/Libraries/SmartStore.Core/Events/CommonMessages/AppStartedEvent.cs +++ b/src/Libraries/SmartStore.Core/Events/CommonMessages/AppStartedEvent.cs @@ -4,6 +4,6 @@ namespace SmartStore.Core.Events { public class AppStartedEvent { - public HttpContextBase HttpContext { get; set; } + public HttpContext HttpContext { get; set; } } } diff --git a/src/Libraries/SmartStore.Core/Extensions/HtmlTextWriterExtensions.cs b/src/Libraries/SmartStore.Core/Extensions/HtmlTextWriterExtensions.cs index df752203cd..37f9114a04 100644 --- a/src/Libraries/SmartStore.Core/Extensions/HtmlTextWriterExtensions.cs +++ b/src/Libraries/SmartStore.Core/Extensions/HtmlTextWriterExtensions.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.Linq; -using System.Web.UI; namespace SmartStore { diff --git a/src/Libraries/SmartStore.Core/Extensions/HttpExtensions.cs b/src/Libraries/SmartStore.Core/Extensions/HttpExtensions.cs index a2618ee834..8065dc156a 100644 --- a/src/Libraries/SmartStore.Core/Extensions/HttpExtensions.cs +++ b/src/Libraries/SmartStore.Core/Extensions/HttpExtensions.cs @@ -6,9 +6,9 @@ using System.Net; using System.Runtime.CompilerServices; using System.Web; -using System.Web.Caching; -using System.Web.Mvc; -using System.Web.Security; +using Microsoft.Extensions.Caching.Memory; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Identity; using SmartStore.Core; using SmartStore.Core.Fakes; using SmartStore.Core.Infrastructure; @@ -32,11 +32,12 @@ public static class HttpExtensions }; /// - /// Tries to get the instance without throwing exceptions + /// Tries to get the instance without throwing exceptions /// - /// The instance or null. + /// The instance or null. + /* [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static HttpRequestBase SafeGetHttpRequest(this HttpContext httpContext) + public static HttpRequest SafeGetHttpRequest(this HttpContext httpContext) { if (httpContext == null) { @@ -45,12 +46,13 @@ public static HttpRequestBase SafeGetHttpRequest(this HttpContext httpContext) return SafeGetHttpRequest(new HttpContextWrapper(httpContext)); } + */ /// - /// Tries to get the instance without throwing exceptions + /// Tries to get the instance without throwing exceptions /// - /// The instance or null. - public static HttpRequestBase SafeGetHttpRequest(this HttpContextBase httpContext) + /// The instance or null. + public static HttpRequest SafeGetHttpRequest(this HttpContext httpContext) { if (httpContext == null) { @@ -79,7 +81,7 @@ public static HttpRequestBase SafeGetHttpRequest(this HttpContextBase httpContex /// /// /// - public static bool IsAppLocalUrl(this HttpRequestBase request, string url) + public static bool IsAppLocalUrl(this HttpRequest request, string url) { if (string.IsNullOrWhiteSpace(url)) { @@ -156,7 +158,7 @@ public static bool IsHttps(this HttpRequest request) /// Gets a value which indicates whether the HTTP connection uses secure sockets (HTTPS protocol). /// Works with Cloud's load balancers. /// - public static bool IsHttps(this HttpRequestBase request) + public static bool IsHttps(this HttpRequest request) { if (request.IsSecureConnection) { @@ -187,7 +189,7 @@ public static bool IsStaticResourceRequested(this HttpContext context) /// /// Gets a value which indicates whether the current request requests a static resource, like .txt, .pdf, .js, .css etc. /// - public static bool IsStaticResourceRequested(this HttpContextBase context) + public static bool IsStaticResourceRequested(this HttpContext context) { if (context?.Request == null) return false; @@ -200,26 +202,26 @@ public static bool IsStaticResourceRequested(this HttpContextBase context) [SuppressMessage("ReSharper", "PossibleNullReferenceException")] [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void SetFormsAuthenticationCookie(this HttpWebRequest webRequest, HttpRequestBase httpRequest) + public static void SetFormsAuthenticationCookie(this HttpWebRequest webRequest, HttpRequest httpRequest) { CopyCookie(webRequest, httpRequest, FormsAuthentication.FormsCookieName); } [SuppressMessage("ReSharper", "PossibleNullReferenceException")] [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void SetAnonymousIdentCookie(this HttpWebRequest webRequest, HttpRequestBase httpRequest) + public static void SetAnonymousIdentCookie(this HttpWebRequest webRequest, HttpRequest httpRequest) { CopyCookie(webRequest, httpRequest, "SMARTSTORE.ANONYMOUS"); } [SuppressMessage("ReSharper", "PossibleNullReferenceException")] [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void SetVisitorCookie(this HttpWebRequest webRequest, HttpRequestBase httpRequest) + public static void SetVisitorCookie(this HttpWebRequest webRequest, HttpRequest httpRequest) { CopyCookie(webRequest, httpRequest, "SMARTSTORE.VISITOR"); } - private static void CopyCookie(HttpWebRequest webRequest, HttpRequestBase sourceHttpRequest, string cookieName) + private static void CopyCookie(HttpWebRequest webRequest, HttpRequest sourceHttpRequest, string cookieName) { Guard.NotNull(webRequest, nameof(webRequest)); Guard.NotNull(sourceHttpRequest, nameof(sourceHttpRequest)); @@ -270,13 +272,13 @@ public static T GetOrAdd(this Cache cache, string key, Func acquirer, Time } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void RememberAppRelativePath(this HttpContextBase httpContext) + public static void RememberAppRelativePath(this HttpContext httpContext) { httpContext.Items[RememberPathKey] = httpContext.Request.AppRelativeCurrentExecutionFilePath; } [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static string GetOriginalAppRelativePath(this HttpContextBase httpContext) + public static string GetOriginalAppRelativePath(this HttpContext httpContext) { return GetItem(httpContext, RememberPathKey, forceCreation: false) ?? httpContext.Request.AppRelativeCurrentExecutionFilePath; } @@ -287,7 +289,7 @@ public static T GetItem(this HttpContext httpContext, string key, Func fac return GetItem(new HttpContextWrapper(httpContext), key, factory, forceCreation); } - public static T GetItem(this HttpContextBase httpContext, string key, Func factory = null, bool forceCreation = true) + public static T GetItem(this HttpContext httpContext, string key, Func factory = null, bool forceCreation = true) { Guard.NotEmpty(key, nameof(key)); diff --git a/src/Libraries/SmartStore.Core/Extensions/RouteExtensions.cs b/src/Libraries/SmartStore.Core/Extensions/RouteExtensions.cs index 94ad48d31e..a7b9d8fec5 100644 --- a/src/Libraries/SmartStore.Core/Extensions/RouteExtensions.cs +++ b/src/Libraries/SmartStore.Core/Extensions/RouteExtensions.cs @@ -1,5 +1,5 @@ -using System.Web.Mvc; -using System.Web.Routing; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Routing; // use base SmartStore Namespace to ensure the extension methods are always available namespace SmartStore diff --git a/src/Libraries/SmartStore.Core/Fakes/Extensions.cs b/src/Libraries/SmartStore.Core/Fakes/Extensions.cs index a6b9d765e8..557be41802 100644 --- a/src/Libraries/SmartStore.Core/Fakes/Extensions.cs +++ b/src/Libraries/SmartStore.Core/Fakes/Extensions.cs @@ -10,7 +10,7 @@ public static class Extentions /// /// HTTP context /// Result - public static bool IsFakeContext(this HttpContextBase httpContext) + public static bool IsFakeContext(this HttpContext httpContext) { if (httpContext == null) throw new ArgumentNullException("httpContext"); diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeController.cs b/src/Libraries/SmartStore.Core/Fakes/FakeController.cs index 2e2e4ee851..550b1d5952 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeController.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeController.cs @@ -1,4 +1,7 @@ -using System.Web.Mvc; +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* +using Microsoft.AspNetCore.Mvc; namespace SmartStore.Core.Fakes { @@ -6,3 +9,4 @@ public class FakeController : Controller { } } +*/ diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeHttpContext.cs b/src/Libraries/SmartStore.Core/Fakes/FakeHttpContext.cs index 6da257d71a..a0698df84f 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeHttpContext.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeHttpContext.cs @@ -1,3 +1,6 @@ +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* using System; using System.Collections.Generic; using System.Collections.Specialized; @@ -7,7 +10,7 @@ namespace SmartStore.Core.Fakes { - public class FakeHttpContext : HttpContextBase + public class FakeHttpContext : HttpContext { private readonly HttpCookieCollection _cookies; private readonly NameValueCollection _formParams; @@ -17,8 +20,8 @@ public class FakeHttpContext : HttpContextBase private readonly string _method; private readonly SessionStateItemCollection _sessionItems; private readonly NameValueCollection _serverVariables; - private HttpResponseBase _response; - private HttpRequestBase _request; + private HttpResponse _response; + private HttpRequest _request; private readonly Dictionary _items; public static FakeHttpContext Root() @@ -72,16 +75,16 @@ public FakeHttpContext(string relativeUrl, public override IHttpHandler Handler { get; set; } - public override HttpRequestBase Request => _request ?? new FakeHttpRequest(_relativeUrl, _method, _formParams, _queryStringParams, _cookies, _serverVariables); + public override HttpRequest Request => _request ?? new FakeHttpRequest(_relativeUrl, _method, _formParams, _queryStringParams, _cookies, _serverVariables); - public void SetRequest(HttpRequestBase request) + public void SetRequest(HttpRequest request) { _request = request; } - public override HttpResponseBase Response => _response ?? new FakeHttpResponse(); + public override HttpResponse Response => _response ?? new FakeHttpResponse(); - public void SetResponse(HttpResponseBase response) + public void SetResponse(HttpResponse response) { _response = response; } @@ -103,4 +106,4 @@ public override object GetService(Type serviceType) return null; } } -} \ No newline at end of file +}*/ diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeHttpHandler.cs b/src/Libraries/SmartStore.Core/Fakes/FakeHttpHandler.cs index ea0839801a..ea10185f5a 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeHttpHandler.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeHttpHandler.cs @@ -1,3 +1,6 @@ +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* using System; using System.Web; @@ -13,3 +16,4 @@ public void ProcessRequest(HttpContext context) } } } +*/ diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs b/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs index 5bc4db024a..e06f2b6385 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeHttpRequest.cs @@ -1,12 +1,15 @@ +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* using System; using System.Collections.Specialized; using System.Web; -using System.Web.Mvc; -using System.Web.Routing; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Routing; namespace SmartStore.Core.Fakes { - public class FakeHttpRequest : HttpRequestBase + public class FakeHttpRequest : HttpRequest { private readonly HttpCookieCollection _cookies; private readonly NameValueCollection _formParams; @@ -101,4 +104,4 @@ public override RequestContext RequestContext set => _requestContext = value; } } -} \ No newline at end of file +}*/ diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeHttpResponse.cs b/src/Libraries/SmartStore.Core/Fakes/FakeHttpResponse.cs index 4b5719ed6e..026f7ef0c0 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeHttpResponse.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeHttpResponse.cs @@ -1,9 +1,12 @@ +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* using System.Text; using System.Web; namespace SmartStore.Core.Fakes { - public class FakeHttpResponse : HttpResponseBase + public class FakeHttpResponse : HttpResponse { private readonly HttpCookieCollection _cookies; private readonly StringBuilder _outputString = new StringBuilder(); @@ -31,4 +34,4 @@ public override string ApplyAppPathModifier(string virtualPath) public override HttpCookieCollection Cookies => _cookies; } -} \ No newline at end of file +}*/ diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeHttpSessionState.cs b/src/Libraries/SmartStore.Core/Fakes/FakeHttpSessionState.cs index 6d45307e06..7aa74a3449 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeHttpSessionState.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeHttpSessionState.cs @@ -1,3 +1,6 @@ +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* using System.Collections; using System.Collections.Specialized; using System.Web; @@ -50,4 +53,4 @@ public override void Remove(string name) _sessionItems.Remove(name); } } -} \ No newline at end of file +}*/ diff --git a/src/Libraries/SmartStore.Core/Fakes/FakeIdentity.cs b/src/Libraries/SmartStore.Core/Fakes/FakeIdentity.cs index a4d9ba0d6c..b2f5af01db 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakeIdentity.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakeIdentity.cs @@ -1,3 +1,6 @@ +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* using System; using System.Security.Principal; @@ -19,4 +22,4 @@ public FakeIdentity(string userName) public string Name => _name; } -} \ No newline at end of file +}*/ diff --git a/src/Libraries/SmartStore.Core/Fakes/FakePrincipal.cs b/src/Libraries/SmartStore.Core/Fakes/FakePrincipal.cs index 6205f1ca4b..f68f7290e1 100644 --- a/src/Libraries/SmartStore.Core/Fakes/FakePrincipal.cs +++ b/src/Libraries/SmartStore.Core/Fakes/FakePrincipal.cs @@ -1,3 +1,6 @@ +// TODO: Rewrite for ASP.NET Core - HttpContext API has changed +// This file is commented out and needs to be rewritten +/* using System.Linq; using System.Security.Principal; @@ -22,4 +25,4 @@ public bool IsInRole(string role) return _roles != null && _roles.Contains(role); } } -} \ No newline at end of file +}*/ diff --git a/src/Libraries/SmartStore.Core/Html/HtmlUtils.cs b/src/Libraries/SmartStore.Core/Html/HtmlUtils.cs index 2428d3c4aa..ffced639f3 100644 --- a/src/Libraries/SmartStore.Core/Html/HtmlUtils.cs +++ b/src/Libraries/SmartStore.Core/Html/HtmlUtils.cs @@ -6,9 +6,9 @@ using System.Web; using AngleSharp; using AngleSharp.Dom; -using AngleSharp.Extensions; -using AngleSharp.Parser.Html; -using Ganss.XSS; +using AngleSharp.Html.Dom; +using AngleSharp.Html.Parser; +using Ganss.Xss; using SmartStore.Utilities.ObjectPools; namespace SmartStore.Core.Html diff --git a/src/Libraries/SmartStore.Core/IMergedData.cs b/src/Libraries/SmartStore.Core/IMergedData.cs index 2cf39de6dd..8f22e7f0d5 100644 --- a/src/Libraries/SmartStore.Core/IMergedData.cs +++ b/src/Libraries/SmartStore.Core/IMergedData.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using System.Web.Hosting; +using Microsoft.AspNetCore.Hosting; using SmartStore.Core.Data; using SmartStore.Core.Infrastructure; diff --git a/src/Libraries/SmartStore.Core/IO/DirectoryHasher.cs b/src/Libraries/SmartStore.Core/IO/DirectoryHasher.cs index 91e96b0ed5..df185815e4 100644 --- a/src/Libraries/SmartStore.Core/IO/DirectoryHasher.cs +++ b/src/Libraries/SmartStore.Core/IO/DirectoryHasher.cs @@ -2,7 +2,7 @@ using System.Globalization; using System.IO; using System.Text; -using System.Web.Hosting; +using Microsoft.AspNetCore.Hosting; using SmartStore.Core.Data; using SmartStore.Utilities; diff --git a/src/Libraries/SmartStore.Core/IO/LocalFileSystem.cs b/src/Libraries/SmartStore.Core/IO/LocalFileSystem.cs index 45bb9e8c77..e3220e5ca2 100644 --- a/src/Libraries/SmartStore.Core/IO/LocalFileSystem.cs +++ b/src/Libraries/SmartStore.Core/IO/LocalFileSystem.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Threading.Tasks; using System.Web; -using System.Web.Hosting; +using Microsoft.AspNetCore.Hosting; using SmartStore.Utilities; namespace SmartStore.Core.IO diff --git a/src/Libraries/SmartStore.Core/IO/VirtualPath/DefaultVirtualPathProvider.cs b/src/Libraries/SmartStore.Core/IO/VirtualPath/DefaultVirtualPathProvider.cs index a7eea24f4e..b9e02cb3a6 100644 --- a/src/Libraries/SmartStore.Core/IO/VirtualPath/DefaultVirtualPathProvider.cs +++ b/src/Libraries/SmartStore.Core/IO/VirtualPath/DefaultVirtualPathProvider.cs @@ -3,8 +3,8 @@ using System.IO; using System.Linq; using System.Web; -using System.Web.Caching; -using System.Web.Hosting; +using Microsoft.Extensions.Caching.Memory; +using Microsoft.AspNetCore.Hosting; using SmartStore.Core.Logging; using SmartStore.Utilities; diff --git a/src/Libraries/SmartStore.Core/IO/VirtualPath/IVirtualPathProvider.cs b/src/Libraries/SmartStore.Core/IO/VirtualPath/IVirtualPathProvider.cs index 2a7d3717f0..752f7af654 100644 --- a/src/Libraries/SmartStore.Core/IO/VirtualPath/IVirtualPathProvider.cs +++ b/src/Libraries/SmartStore.Core/IO/VirtualPath/IVirtualPathProvider.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.IO; -using System.Web.Caching; +using Microsoft.Extensions.Caching.Memory; namespace SmartStore.Core.IO { diff --git a/src/Libraries/SmartStore.Core/IWebHelper.cs b/src/Libraries/SmartStore.Core/IWebHelper.cs index 31cd154105..88fa3edf10 100644 --- a/src/Libraries/SmartStore.Core/IWebHelper.cs +++ b/src/Libraries/SmartStore.Core/IWebHelper.cs @@ -1,4 +1,5 @@ using System.Web; +using Microsoft.AspNetCore.Http; namespace SmartStore.Core { diff --git a/src/Libraries/SmartStore.Core/Infrastructure/ApplicationStart.cs b/src/Libraries/SmartStore.Core/Infrastructure/ApplicationStart.cs index 14b51e277c..3f72546b17 100644 --- a/src/Libraries/SmartStore.Core/Infrastructure/ApplicationStart.cs +++ b/src/Libraries/SmartStore.Core/Infrastructure/ApplicationStart.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Web; -using System.Web.Mvc; +using Microsoft.AspNetCore.Mvc; using System.Web.Mvc.Filters; using SmartStore.Core.Logging; @@ -32,7 +32,7 @@ public interface IApplicationStart /// public interface IPostApplicationStart { - void Start(HttpContextBase httpContext); + void Start(HttpContext httpContext); /// /// Called when an error occurred and is false. diff --git a/src/Libraries/SmartStore.Core/Infrastructure/ContextState.cs b/src/Libraries/SmartStore.Core/Infrastructure/ContextState.cs index ae9af5f59e..aca5e26f26 100644 --- a/src/Libraries/SmartStore.Core/Infrastructure/ContextState.cs +++ b/src/Libraries/SmartStore.Core/Infrastructure/ContextState.cs @@ -1,6 +1,6 @@ -using System; -using System.Runtime.Remoting.Messaging; -using System.Web; +using System; +using System.Threading; +using Microsoft.AspNetCore.Http; namespace SmartStore.Core.Infrastructure { @@ -12,6 +12,7 @@ public class ContextState where T : class { private readonly string _name; private readonly Func _defaultValue; + private readonly AsyncLocal _asyncLocal = new AsyncLocal(); public ContextState(string name) { @@ -27,56 +28,56 @@ public ContextState(string name, Func defaultValue) public T GetState() { var key = BuildKey(); + var httpContext = GetHttpContext(); - if (HttpContext.Current == null) + if (httpContext == null) { - var data = CallContext.GetData(key); + var data = _asyncLocal.Value; - if (data == null) + if (data == null && _defaultValue != null) { - if (_defaultValue != null) - { - CallContext.SetData(key, data = _defaultValue()); - return data as T; - } + _asyncLocal.Value = data = _defaultValue(); } - return data as T; + return data; } - if (HttpContext.Current.Items[key] == null) + if (httpContext.Items[key] == null) { - HttpContext.Current.Items[key] = _defaultValue?.Invoke(); + httpContext.Items[key] = _defaultValue?.Invoke(); } - return HttpContext.Current.Items[key] as T; + return httpContext.Items[key] as T; } public void SetState(T state) { - if (HttpContext.Current == null) + var httpContext = GetHttpContext(); + + if (httpContext == null) { - CallContext.SetData(BuildKey(), state); + _asyncLocal.Value = state; } else { - HttpContext.Current.Items[BuildKey()] = state; + httpContext.Items[BuildKey()] = state; } } public void RemoveState() { var key = BuildKey(); + var httpContext = GetHttpContext(); - if (HttpContext.Current == null) + if (httpContext == null) { - CallContext.FreeNamedDataSlot(key); + _asyncLocal.Value = null; } else { - if (HttpContext.Current.Items.Contains(key)) + if (httpContext.Items.ContainsKey(key)) { - HttpContext.Current.Items.Remove(key); + httpContext.Items.Remove(key); } } } @@ -85,5 +86,19 @@ private string BuildKey() { return "__ContextState." + _name; } + + private HttpContext GetHttpContext() + { + // Try to get HttpContext from EngineContext + try + { + var httpContextAccessor = EngineContext.Current?.Resolve(); + return httpContextAccessor?.HttpContext; + } + catch + { + return null; + } + } } } diff --git a/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/AutofacRequestLifetimeHttpModule.cs b/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/AutofacRequestLifetimeHttpModule.cs index d32030bcbd..c06a2e4705 100644 --- a/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/AutofacRequestLifetimeHttpModule.cs +++ b/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/AutofacRequestLifetimeHttpModule.cs @@ -1,9 +1,13 @@ -using System; -using System.Web; -using Autofac.Integration.Mvc; +using System; namespace SmartStore.Core.Infrastructure.DependencyManagement { + // TODO: Migrate to ASP.NET Core middleware + // IHttpModule is not supported in ASP.NET Core + // Request scoping is handled automatically by ASP.NET Core DI + // This class needs to be converted to middleware or removed if functionality is built-in + + /* /// /// An and implementation /// that creates a nested lifetime scope for each HTTP request. @@ -73,4 +77,19 @@ public void Dispose() } } + */ + + // Stub to allow compilation + public class AutofacRequestLifetimeHttpModule + { + public static void SetLifetimeScopeProvider(ILifetimeScopeProvider lifetimeScopeProvider) + { + // TODO: Implement for ASP.NET Core + } + + public static void OnEndRequest(object sender, EventArgs e) + { + // TODO: Implement for ASP.NET Core + } + } } diff --git a/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/DefaultLifetimeScopeProvider.cs b/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/DefaultLifetimeScopeProvider.cs index eab1548dc0..7cafa3436b 100644 --- a/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/DefaultLifetimeScopeProvider.cs +++ b/src/Libraries/SmartStore.Core/Infrastructure/DependencyManagement/DefaultLifetimeScopeProvider.cs @@ -1,6 +1,5 @@ using System; using Autofac; -using Autofac.Integration.Mvc; namespace SmartStore.Core.Infrastructure.DependencyManagement { diff --git a/src/Libraries/SmartStore.Core/Infrastructure/SmartStoreEngine.cs b/src/Libraries/SmartStore.Core/Infrastructure/SmartStoreEngine.cs index 5fabdf7d55..da44476106 100644 --- a/src/Libraries/SmartStore.Core/Infrastructure/SmartStoreEngine.cs +++ b/src/Libraries/SmartStore.Core/Infrastructure/SmartStoreEngine.cs @@ -3,9 +3,8 @@ using System.Diagnostics; using System.Linq; using System.Threading.Tasks; -using System.Web.Mvc; +using Microsoft.AspNetCore.Mvc; using Autofac; -using Autofac.Integration.Mvc; using SmartStore.Core.Data; using SmartStore.Core.Infrastructure.DependencyManagement; using SmartStore.Core.Logging; diff --git a/src/Libraries/SmartStore.Core/Infrastructure/WebAppTypeFinder.cs b/src/Libraries/SmartStore.Core/Infrastructure/WebAppTypeFinder.cs index 4b6981b2ef..0b76b99458 100644 --- a/src/Libraries/SmartStore.Core/Infrastructure/WebAppTypeFinder.cs +++ b/src/Libraries/SmartStore.Core/Infrastructure/WebAppTypeFinder.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Reflection; using System.Web; -using System.Web.Hosting; +using Microsoft.AspNetCore.Hosting; using SmartStore.Core.Logging; using SmartStore.Core.Plugins; using SmartStore.Utilities; diff --git a/src/Libraries/SmartStore.Core/Logging/log4net/Log4netLoggerFactory.cs b/src/Libraries/SmartStore.Core/Logging/log4net/Log4netLoggerFactory.cs index b949429081..6795ca465b 100644 --- a/src/Libraries/SmartStore.Core/Logging/log4net/Log4netLoggerFactory.cs +++ b/src/Libraries/SmartStore.Core/Logging/log4net/Log4netLoggerFactory.cs @@ -3,7 +3,7 @@ using System.Data; using System.IO; using System.Linq; -using System.Web.Hosting; +using Microsoft.AspNetCore.Hosting; using log4net; using log4net.Appender; using log4net.Config; @@ -13,7 +13,7 @@ namespace SmartStore.Core.Logging { - public class Log4netLoggerFactory : ILoggerFactory, IRegisteredObject + public class Log4netLoggerFactory : ILoggerFactory //, IRegisteredObject // TODO: Migrate to IHostedService { private readonly ConcurrentDictionary _loggerCache = new ConcurrentDictionary(StringComparer.OrdinalIgnoreCase); @@ -95,13 +95,15 @@ public void FlushAll() } - #region IRegisteredObject + #region IRegisteredObject - TODO: Migrate to IHostedService + /* public void Stop(bool immediate) { RemoveEmptyLogFiles(); HostingEnvironment.UnregisterObject(this); } + */ internal static void RemoveEmptyLogFiles() { diff --git a/src/Libraries/SmartStore.Core/Packaging/NuGet/ExtensionReferenceRepository.cs b/src/Libraries/SmartStore.Core/Packaging/NuGet/ExtensionReferenceRepository.cs index 644b6b15a7..2dd15fe3c6 100644 --- a/src/Libraries/SmartStore.Core/Packaging/NuGet/ExtensionReferenceRepository.cs +++ b/src/Libraries/SmartStore.Core/Packaging/NuGet/ExtensionReferenceRepository.cs @@ -1,100 +1,8 @@ -using System.Collections.Generic; -using System.Linq; -using NuGet; -using SmartStore.Core.Plugins; -using SmartStore.Core.Themes; - -namespace SmartStore.Core.Packaging +// TODO: Migrate to NuGet.Protocol v3 API +namespace SmartStore.Core.Packaging.NuGet { - - internal abstract class ExtensionReferenceRepository : PackageRepositoryBase + public class ExtensionReferenceRepository { - - public ExtensionReferenceRepository(IProjectSystem project, IPackageRepository sourceRepository) - { - Guard.NotNull(project, nameof(project)); - Guard.NotNull(sourceRepository, nameof(sourceRepository)); - - Project = project; - SourceRepository = sourceRepository; - } - - public IProjectSystem Project - { - get; - set; - } - - public IPackageRepository SourceRepository - { - get; - set; - } - - public override void AddPackage(IPackage package) { } - - public override void RemovePackage(IPackage package) { } - - - public override string Source => Project.Root; - - public override bool SupportsPrereleasePackages => true; + // TODO: Implement using NuGet.Protocol v3 API } - - /// - /// This repository implementation informs about what plugin packages are already installed. - /// - internal class PluginReferenceRepository : ExtensionReferenceRepository - { - private readonly IList _descriptors; - - public PluginReferenceRepository(IProjectSystem project, IPackageRepository sourceRepository, IPluginFinder pluginFinder) - : base(project, sourceRepository) - { - _descriptors = pluginFinder.GetPluginDescriptors().ToList(); - } - - public override IQueryable GetPackages() - { - IEnumerable repositoryPackages = SourceRepository.GetPackages().ToList(); - IEnumerable packages = from plugin in _descriptors - let id = PackagingUtils.BuildPackageId(plugin.SystemName, "Plugin") - let version = plugin.Version != null ? new SemanticVersion(plugin.Version) : null - let package = repositoryPackages.FirstOrDefault(p => p.Id == id && (version == null || p.Version == version)) - where package != null - select package; - - return packages.AsQueryable(); - } - - } - - /// - /// This repository implementation informs about what theme packages are already installed. - /// - internal class ThemeReferenceRepository : ExtensionReferenceRepository - { - private readonly ICollection _themeManifests; - - public ThemeReferenceRepository(IProjectSystem project, IPackageRepository sourceRepository, IThemeRegistry themeRegistry) - : base(project, sourceRepository) - { - _themeManifests = themeRegistry.GetThemeManifests(true); - } - - public override IQueryable GetPackages() - { - IEnumerable repositoryPackages = SourceRepository.GetPackages().ToList(); - IEnumerable packages = from theme in _themeManifests - let id = PackagingUtils.BuildPackageId(theme.ThemeName, "Theme") - let version = theme.Version != null ? new SemanticVersion(theme.Version) : null - let package = repositoryPackages.FirstOrDefault(p => p.Id == id && (version == null || p.Version == version)) - where package != null - select package; - - return packages.AsQueryable(); - } - - } - } diff --git a/src/Libraries/SmartStore.Core/Packaging/NuGet/FileBasedProjectSystem.cs b/src/Libraries/SmartStore.Core/Packaging/NuGet/FileBasedProjectSystem.cs index 22e5a3c580..b4be5b5eda 100644 --- a/src/Libraries/SmartStore.Core/Packaging/NuGet/FileBasedProjectSystem.cs +++ b/src/Libraries/SmartStore.Core/Packaging/NuGet/FileBasedProjectSystem.cs @@ -1,85 +1,8 @@ -using System; -using System.IO; -using System.Runtime.Versioning; -using NuGet; - -namespace SmartStore.Core.Packaging +// TODO: Migrate to NuGet.Protocol v3 API +namespace SmartStore.Core.Packaging.NuGet { - internal class FileBasedProjectSystem : PhysicalFileSystem, IProjectSystem + public class FileBasedProjectSystem { - - public FileBasedProjectSystem(string root) - : base(root) - { - } - - public void AddFrameworkReference(string name) - { - throw new NotSupportedException(); - } - - public void AddImport(string targetPath, ProjectImportLocation location) - { - throw new NotSupportedException(); - } - - public void AddReference(string referencePath, Stream stream) - { - throw new NotSupportedException(); - } - - public bool FileExistsInProject(string path) - { - return FileExists(path); - } - - public bool IsBindingRedirectSupported => false; - - public bool IsSupportedFile(string path) - { - return true; - } - - public string ProjectName => Root; - - protected virtual string GetReferencePath(string name) - { - return Path.Combine("bin", name); - } - - public bool ReferenceExists(string name) - { - string path = GetReferencePath(name); - return FileExists(path); - } - - public void RemoveImport(string targetPath) - { - throw new NotSupportedException(); - } - - public void RemoveReference(string name) - { - throw new NotSupportedException(); - } - - public string ResolvePath(string path) - { - return GetFullPath(path); - } - - public FrameworkName TargetFramework => VersionUtility.DefaultTargetFramework; - - public dynamic GetPropertyValue(string propertyName) - { - if (propertyName == null) - { - return null; - } - - // Return empty string for the root namespace of this project. - return propertyName.Equals("RootNamespace", StringComparison.OrdinalIgnoreCase) ? String.Empty : null; - } + // TODO: Implement using NuGet.Protocol v3 API } - } diff --git a/src/Libraries/SmartStore.Core/Packaging/NuGet/NugetLogger.cs b/src/Libraries/SmartStore.Core/Packaging/NuGet/NugetLogger.cs index 8a2942f601..850924917d 100644 --- a/src/Libraries/SmartStore.Core/Packaging/NuGet/NugetLogger.cs +++ b/src/Libraries/SmartStore.Core/Packaging/NuGet/NugetLogger.cs @@ -1,41 +1,8 @@ -using System; -using NuGet; -using SmartStore.Core.Logging; -using Log = SmartStore.Core.Logging; - -namespace SmartStore.Core.Packaging +// TODO: Migrate to NuGet.Protocol v3 API +namespace SmartStore.Core.Packaging.NuGet { - internal class NugetLogger : NuGet.ILogger + public class NugetLogger { - private readonly Log.ILogger _logger; - - public NugetLogger(Log.ILogger logger) - { - _logger = logger; - } - - public void Log(MessageLevel level, string message, params object[] args) - { - switch (level) - { - case MessageLevel.Debug: - _logger.Debug(String.Format(message, args)); - break; - case MessageLevel.Error: - _logger.Error(String.Format(message, args)); - break; - case MessageLevel.Info: - _logger.Info(String.Format(message, args)); - break; - case MessageLevel.Warning: - _logger.Warn(String.Format(message, args)); - break; - } - } - - public FileConflictResolution ResolveFileConflict(string message) - { - return FileConflictResolution.OverwriteAll; - } + // TODO: Implement using NuGet.Protocol v3 API } } diff --git a/src/Libraries/SmartStore.Core/Packaging/NuGet/NullSourceRepository.cs b/src/Libraries/SmartStore.Core/Packaging/NuGet/NullSourceRepository.cs index 24d9271ae6..a19e655466 100644 --- a/src/Libraries/SmartStore.Core/Packaging/NuGet/NullSourceRepository.cs +++ b/src/Libraries/SmartStore.Core/Packaging/NuGet/NullSourceRepository.cs @@ -1,24 +1,8 @@ -using System.Linq; -using NuGet; - -namespace SmartStore.Core.Packaging +// TODO: Migrate to NuGet.Protocol v3 API +namespace SmartStore.Core.Packaging.NuGet { - /// - /// This repository implementation fakes a source (remote) repository - /// - internal class NullSourceRepository : PackageRepositoryBase + public class NullSourceRepository { - public override IQueryable GetPackages() - { - return Enumerable.Empty().AsQueryable(); - } - - public override string Source => string.Empty; - - public override bool SupportsPrereleasePackages => true; - - public override void AddPackage(IPackage package) { } - - public override void RemovePackage(IPackage package) { } + // TODO: Implement using NuGet.Protocol v3 API } } diff --git a/src/Libraries/SmartStore.Core/Packaging/PackageBuilder.cs b/src/Libraries/SmartStore.Core/Packaging/PackageBuilder.cs index d3d23fda59..38feb32c92 100644 --- a/src/Libraries/SmartStore.Core/Packaging/PackageBuilder.cs +++ b/src/Libraries/SmartStore.Core/Packaging/PackageBuilder.cs @@ -1,189 +1,8 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.Versioning; -using NuGet; -using SmartStore.Core.IO; -using SmartStore.Core.Plugins; -using SmartStore.Core.Themes; -using NuGetPackageBuilder = NuGet.PackageBuilder; - +// TODO: Migrate to NuGet.Protocol v3 API namespace SmartStore.Core.Packaging { - public class PackageBuilder : IPackageBuilder + public class PackageBuilder { - private readonly IApplicationEnvironment _env; - - public PackageBuilder(IApplicationEnvironment env) - { - this._env = env; - } - - private static readonly string[] _ignoredThemeExtensions = new[] { - "obj", "pdb", "exclude" - }; - - private static readonly string[] _ignoredThemePaths = new[] { - "/obj/" - }; - - private static bool IgnoreFile(string filePath) - { - return String.IsNullOrEmpty(filePath) || - _ignoredThemePaths.Any(filePath.Contains) || - _ignoredThemeExtensions.Contains(Path.GetExtension(filePath).NullEmpty() ?? ""); - } - - - public Stream BuildPackage(PluginDescriptor pluginDescriptor) - { - return BuildPackage(pluginDescriptor.ConvertToExtensionDescriptor()); - } - - public Stream BuildPackage(ThemeManifest themeManifest) - { - return BuildPackage(themeManifest.ConvertToExtensionDescriptor()); - } - - private Stream BuildPackage(ExtensionDescriptor extensionDescriptor) - { - var context = new BuildContext(); - BeginPackage(context); - try - { - EstablishPaths(context, _env.WebRootFolder, extensionDescriptor.Id, extensionDescriptor.ExtensionType); - SetCoreProperties(context, extensionDescriptor); - EmbedFiles(context); - } - finally - { - EndPackage(context); - } - - if (context.Stream.CanSeek) - { - context.Stream.Seek(0, SeekOrigin.Begin); - } - - return context.Stream; - } - - private static void BeginPackage(BuildContext context) - { - context.Stream = new MemoryStream(); - context.Builder = new NuGetPackageBuilder(); - } - - private static void EndPackage(BuildContext context) - { - context.Builder.Save(context.Stream); - } - - private static void SetCoreProperties(BuildContext context, ExtensionDescriptor extensionDescriptor) - { - context.Builder.Id = PackagingUtils.BuildPackageId(extensionDescriptor.Id, extensionDescriptor.ExtensionType); - context.Builder.Version = new SemanticVersion(extensionDescriptor.Version); - context.Builder.Title = extensionDescriptor.Name ?? extensionDescriptor.Id; - context.Builder.Description = extensionDescriptor.Description.NullEmpty() ?? "No Description"; - context.Builder.Authors.Add(extensionDescriptor.Author ?? "Unknown"); - - if (Uri.IsWellFormedUriString(extensionDescriptor.WebSite, UriKind.Absolute)) - { - context.Builder.ProjectUrl = new Uri(extensionDescriptor.WebSite); - } - } - - private static void EstablishPaths(BuildContext context, IVirtualFolder webRootFolder, string extensionName, string extensionType = "Plugin") - { - context.SourceFolder = webRootFolder; - if (extensionType.IsCaseInsensitiveEqual("theme")) - { - context.SourcePath = "Themes/" + extensionName + "/"; - context.TargetPath = "\\Content\\Themes\\" + extensionName + "\\"; - } - else - { - context.SourcePath = "Plugins/" + extensionName + "/"; - context.TargetPath = "\\Content\\Plugins\\" + extensionName + "\\"; - } - } - - private static void EmbedFiles(BuildContext context) - { - var basePath = context.SourcePath; - foreach (var path in context.SourceFolder.ListFiles(context.SourcePath, true)) - { - // skip ignores files - if (IgnoreFile(path)) - { - continue; - } - // full virtual path given but we need the relative path so it can be put into - // the package that way (the package itself is the logical base path). - // Get it by stripping the basePath off including the slash. - var relativePath = path.Replace(basePath, ""); - EmbedVirtualFile(context, relativePath); - } - } - - private static void EmbedVirtualFile(BuildContext context, string relativePath) - { - var file = new VirtualPackageFile( - context.SourceFolder, - context.SourcePath + relativePath, - context.TargetPath + relativePath); - context.Builder.Files.Add(file); - } - - - #region Nested type: BuildContext - - private class BuildContext - { - public Stream Stream { get; set; } - public NuGetPackageBuilder Builder { get; set; } - - public IVirtualFolder SourceFolder { get; set; } - public string SourcePath { get; set; } - public string TargetPath { get; set; } - } - - #endregion - - #region Nested type: VirtualPackageFile - - private class VirtualPackageFile : IPackageFile - { - private readonly IVirtualFolder _webRootFolder; - private readonly string _relativePath; - private readonly string _packagePath; - - public VirtualPackageFile(IVirtualFolder webRootFolder, string relativePath, string packagePath) - { - _webRootFolder = webRootFolder; - _relativePath = relativePath; - _packagePath = packagePath; - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "Supposed to return an open stream.")] - public Stream GetStream() - { - var stream = new MemoryStream(); - _webRootFolder.CopyFile(_relativePath, stream); - stream.Seek(0, SeekOrigin.Begin); - return stream; - } - - public string Path => _packagePath; - - public string EffectivePath => _packagePath; - - public FrameworkName TargetFramework => null; - - public IEnumerable SupportedFrameworks => Enumerable.Empty(); - } - - #endregion + // TODO: Implement using NuGet.Protocol v3 API } } diff --git a/src/Libraries/SmartStore.Core/Packaging/PackageInfo.cs b/src/Libraries/SmartStore.Core/Packaging/PackageInfo.cs index 410c992ec2..c0eb8db42a 100644 --- a/src/Libraries/SmartStore.Core/Packaging/PackageInfo.cs +++ b/src/Libraries/SmartStore.Core/Packaging/PackageInfo.cs @@ -1,3 +1,6 @@ +// TODO: Migrate to NuGet.Protocol v3 API +// This file uses NuGet.Core v2 API which is obsolete +/* namespace SmartStore.Core.Packaging { public class PackageInfo @@ -10,3 +13,4 @@ public class PackageInfo public ExtensionDescriptor ExtensionDescriptor { get; set; } } } +*/ diff --git a/src/Libraries/SmartStore.Core/Packaging/PackageInstaller.cs b/src/Libraries/SmartStore.Core/Packaging/PackageInstaller.cs index 98e98970dd..324d545eb5 100644 --- a/src/Libraries/SmartStore.Core/Packaging/PackageInstaller.cs +++ b/src/Libraries/SmartStore.Core/Packaging/PackageInstaller.cs @@ -1,296 +1,8 @@ -using System; -using System.Diagnostics.CodeAnalysis; -using System.IO; -using NuGet; -using SmartStore.Core.IO; -using SmartStore.Core.Localization; -using SmartStore.Core.Logging; -using SmartStore.Core.Plugins; -using SmartStore.Core.Themes; -using Log = SmartStore.Core.Logging; - +// TODO: Migrate to NuGet.Protocol v3 API namespace SmartStore.Core.Packaging { - public class PackageInstaller : IPackageInstaller + public class PackageInstaller { - private readonly IVirtualPathProvider _virtualPathProvider; - private readonly IPluginFinder _pluginFinder; - private readonly IThemeRegistry _themeRegistry; - private readonly IFolderUpdater _folderUpdater; - private readonly INotifier _notifier; - private readonly Log.ILogger _logger; - - public PackageInstaller( - IVirtualPathProvider virtualPathProvider, - IPluginFinder pluginFinder, - IThemeRegistry themeRegistry, - IFolderUpdater folderUpdater, - INotifier notifier, - Log.ILogger logger) - { - _virtualPathProvider = virtualPathProvider; - _pluginFinder = pluginFinder; - _themeRegistry = themeRegistry; - _folderUpdater = folderUpdater; - _notifier = notifier; - _logger = logger; - } - - public Localizer T { get; set; } - - //public PackageInfo Install(string packageId, string version, string location, string applicationFolder) - //{ - // // instantiates the appropriate package repository - // IPackageRepository packageRepository = PackageRepositoryFactory.Default.CreateRepository(location); - - // // gets an IPackage instance from the repository - // var packageVersion = String.IsNullOrEmpty(version) ? null : new SemanticVersion(version); - // var package = packageRepository.FindPackage(packageId, packageVersion); - // if (package == null) - // { - // throw new ArgumentException("The specified package could not be found, id:{0} version:{1}".FormatCurrent(packageId, version.IsEmpty() ? "No version" : version)); - // } - - // return InstallPackage(package, packageRepository, location, applicationFolder); - //} - - public PackageInfo Install(Stream packageStream, string location, string applicationPath) - { - Guard.NotNull(packageStream, nameof(packageStream)); - - IPackage package; - try - { - package = new ZipPackage(packageStream); - - } - catch (Exception ex) - { - throw new SmartException(T("Admin.Packaging.StreamError"), ex); - } - - // instantiates the appropriate package repository - var packageRepository = new NullSourceRepository(); - return InstallPackage(package, packageRepository, location, applicationPath); - } - - /// - /// Tries to install the package - /// - /// The package to install - /// The repository - /// The virtual location of the package file, usually ~/App_Data - /// The virtual app root path, usually ~/ - /// An instance of type - protected PackageInfo InstallPackage(IPackage package, IPackageRepository packageRepository, string location, string applicationPath) - { - bool previousInstalled; - - // 1. See if extension was previous installed and backup its folder if so - try - { - previousInstalled = BackupExtensionFolder(package.ExtensionFolder(), package.ExtensionId()); - } - catch (Exception exception) - { - throw new SmartException(T("Admin.Packaging.BackupError"), exception); - } - - if (previousInstalled) - { - // 2. If extension is installed, need to un-install first - try - { - UninstallExtensionIfNeeded(package); - } - catch (Exception exception) - { - throw new SmartException(T("Admin.Packaging.UninstallError"), exception); - } - } - - var packageInfo = ExecuteInstall(package, packageRepository, location, applicationPath); - - // check if the new package is compatible with current SmartStore version - var descriptor = package.GetExtensionDescriptor(packageInfo.Type); - - if (descriptor != null) - { - packageInfo.ExtensionDescriptor = descriptor; - - if (!PluginManager.IsAssumedCompatible(descriptor.MinAppVersion)) - { - if (previousInstalled) - { - // restore the previous version - RestoreExtensionFolder(package.ExtensionFolder(), package.ExtensionId()); - } - else - { - // just uninstall the new package - Uninstall(package.Id, _virtualPathProvider.MapPath("~\\")); - } - - var msg = T("Admin.Packaging.IsIncompatible", SmartStoreVersion.CurrentFullVersion); - _logger.Error(msg); - throw new SmartException(msg); - } - } - - return packageInfo; - } - - /// - /// Executes a package installation. - /// - /// The package to install. - /// The repository for the package. - /// The source location. - /// The path where to install the package. - /// The package information. - protected PackageInfo ExecuteInstall(IPackage package, IPackageRepository packageRepository, string sourceLocation, string targetPath) - { - var logger = new NugetLogger(_logger); - - var project = new FileBasedProjectSystem(targetPath) { Logger = logger }; - - IPackageRepository referenceRepository; - if (package.IsTheme()) - { - referenceRepository = new ThemeReferenceRepository(project, packageRepository, _themeRegistry); - } - else - { - referenceRepository = new PluginReferenceRepository(project, packageRepository, _pluginFinder); - } - - var projectManager = new ProjectManager( - packageRepository, - new DefaultPackagePathResolver(targetPath), - project, - referenceRepository - ) - { Logger = logger }; - - // add the package to the project - projectManager.AddPackageReference(package, true, false); - - return new PackageInfo - { - Id = package.Id, - Name = package.Title ?? package.Id, - Version = package.Version.ToString(), - Type = package.IsTheme() ? "Theme" : "Plugin", - Path = targetPath - }; - } - - public void Uninstall(string packageId, string applicationFolder) - { - string extensionFullPath = string.Empty; - - if (packageId.StartsWith(PackagingUtils.GetExtensionPrefix("Theme"))) - { - extensionFullPath = _virtualPathProvider.MapPath("~/Themes/" + packageId.Substring(PackagingUtils.GetExtensionPrefix("Theme").Length)); - } - else if (packageId.StartsWith(PackagingUtils.GetExtensionPrefix("Plugin"))) - { - extensionFullPath = _virtualPathProvider.MapPath("~/Plugins/" + packageId.Substring(PackagingUtils.GetExtensionPrefix("Plugin").Length)); - } - - if (string.IsNullOrEmpty(extensionFullPath) || !System.IO.Directory.Exists(extensionFullPath)) - { - throw new SmartException(T("Admin.Packaging.NotFound", packageId)); - } - - // If the package was not installed through nuget we still need to try to uninstall it by removing its directory - if (Directory.Exists(extensionFullPath)) - { - Directory.Delete(extensionFullPath, true); - } - } - - [SuppressMessage("ReSharper", "UnusedMethodReturnValue.Local")] - private bool RestoreExtensionFolder(string extensionFolder, string extensionId) - { - var virtualSource = _virtualPathProvider.Combine("~", extensionFolder, extensionId); - var source = new DirectoryInfo(_virtualPathProvider.MapPath(virtualSource)); - - if (source.Exists) - { - var tempPath = _virtualPathProvider.Combine("~/App_Data", "_Backup", extensionFolder, extensionId); - string localTempPath = null; - for (int i = 0; i < 1000; i++) - { - localTempPath = _virtualPathProvider.MapPath(tempPath) + (i == 0 ? "" : "." + i.ToString()); - if (!System.IO.Directory.Exists(localTempPath)) - { - System.IO.Directory.CreateDirectory(localTempPath); - break; - } - localTempPath = null; - } - - if (localTempPath == null) - { - throw new SmartException(T("Admin.Packaging.TooManyBackups", tempPath)); - } - - var backupFolder = new DirectoryInfo(localTempPath); - _folderUpdater.Restore(backupFolder, source); - _notifier.Information(T("Admin.Packaging.RestoreSuccess", virtualSource)); - - return true; - } - - return false; - } - - private bool BackupExtensionFolder(string extensionFolder, string extensionId) - { - var source = new DirectoryInfo(_virtualPathProvider.MapPath(_virtualPathProvider.Combine("~", extensionFolder, extensionId))); - - if (source.Exists) - { - var tempPath = _virtualPathProvider.Combine("~/App_Data", "_Backup", extensionFolder, extensionId); - string localTempPath = null; - for (int i = 0; i < 1000; i++) - { - localTempPath = _virtualPathProvider.MapPath(tempPath) + (i == 0 ? "" : "." + i.ToString()); - if (!System.IO.Directory.Exists(localTempPath)) - { - System.IO.Directory.CreateDirectory(localTempPath); - break; - } - localTempPath = null; - } - - if (localTempPath == null) - { - throw new SmartException(T("Admin.Packaging.TooManyBackups", tempPath)); - } - - var backupFolder = new DirectoryInfo(localTempPath); - _folderUpdater.Backup(source, backupFolder); - _notifier.Information(T("Admin.Packaging.BackupSuccess", backupFolder.Name)); - - return true; - } - - return false; - } - - private void UninstallExtensionIfNeeded(IPackage package) - { - // Nuget requires to un-install the currently installed packages if the new - // package is the same version or an older version - try - { - Uninstall(package.Id, _virtualPathProvider.MapPath("~\\")); - //_notifier.Information("Successfully un-installed local package {0}".FormatInvariant(package.ExtensionId())); - } - catch { } - } + // TODO: Implement using NuGet.Protocol v3 API } - } diff --git a/src/Libraries/SmartStore.Core/Packaging/PackageManager.cs b/src/Libraries/SmartStore.Core/Packaging/PackageManager.cs index 0e399621c1..99d4ca7320 100644 --- a/src/Libraries/SmartStore.Core/Packaging/PackageManager.cs +++ b/src/Libraries/SmartStore.Core/Packaging/PackageManager.cs @@ -1,3 +1,6 @@ +// TODO: Migrate to NuGet.Protocol v3 API +// This file uses NuGet.Core v2 API which is obsolete +/* using System; using System.IO; using SmartStore.Core.Plugins; @@ -93,3 +96,4 @@ public PackagingResult BuildThemePackage(string themeName) } } +*/ diff --git a/src/Libraries/SmartStore.Core/Packaging/PackagingUtils.cs b/src/Libraries/SmartStore.Core/Packaging/PackagingUtils.cs index cbaa6e0cd0..084164c3cf 100644 --- a/src/Libraries/SmartStore.Core/Packaging/PackagingUtils.cs +++ b/src/Libraries/SmartStore.Core/Packaging/PackagingUtils.cs @@ -1,147 +1,8 @@ -using System; -using System.IO; -using System.Linq; -using System.Web.Hosting; -using NuGet; -using SmartStore.Core.Plugins; -using SmartStore.Core.Themes; - +// TODO: Migrate to NuGet.Protocol v3 API namespace SmartStore.Core.Packaging { public static class PackagingUtils { - public static string GetExtensionPrefix(string extensionType) - { - return string.Format("SmartStore.{0}.", extensionType); - } - - public static string BuildPackageId(string extensionName, string extensionType) - { - return GetExtensionPrefix(extensionType) + extensionName; - } - - internal static bool IsTheme(this IPackage package) - { - return IsTheme(package.Id); - } - - public static bool IsTheme(this PackageInfo info) - { - return IsTheme(info.Id); - } - - internal static string ExtensionFolder(this IPackage package) - { - return ExtensionFolder(package.IsTheme()); - } - - internal static string ExtensionId(this IPackage package) - { - return ExtensionId(package.IsTheme(), package.Id); - } - - public static string ExtensionId(this PackageInfo info) - { - return ExtensionId(info.IsTheme(), info.Id); - } - - public static bool IsTheme(string packageId) - { - return packageId.StartsWith(GetExtensionPrefix("Theme")); - } - - private static string ExtensionFolder(bool isTheme) - { - return isTheme ? "Themes" : "Plugins"; - } - - private static string ExtensionId(bool isTheme, string packageId) - { - return isTheme ? - packageId.Substring(GetExtensionPrefix("Theme").Length) : - packageId.Substring(GetExtensionPrefix("Plugin").Length); - } - - internal static ExtensionDescriptor ConvertToExtensionDescriptor(this PluginDescriptor pluginDescriptor) - { - // TODO: (pkg) Add Icons to extension manifests - var descriptor = new ExtensionDescriptor - { - ExtensionType = "Plugin", - Location = "~/Plugins", - Path = pluginDescriptor.PhysicalPath, - Id = pluginDescriptor.FolderName, - Author = pluginDescriptor.Author, - MinAppVersion = pluginDescriptor.MinAppVersion, - Version = pluginDescriptor.Version, - Name = pluginDescriptor.FriendlyName, - Description = pluginDescriptor.Description, - WebSite = pluginDescriptor.Url, // TODO: (pkg) Add author url to plugin manifests, - Tags = string.Empty // TODO: (pkg) Add tags to plugin manifests, - }; - - return descriptor; - } - - internal static ExtensionDescriptor ConvertToExtensionDescriptor(this ThemeManifest themeManifest) - { - var descriptor = new ExtensionDescriptor - { - ExtensionType = "Theme", - Location = "~/Themes", - Path = themeManifest.Path, - Id = themeManifest.ThemeName, - Author = themeManifest.Author.HasValue() ? themeManifest.Author : "[Unknown]", - MinAppVersion = SmartStoreVersion.Version, // TODO: (pkg) Add SupportedVersion to theme manifests - Version = new Version(themeManifest.Version), - Name = themeManifest.ThemeTitle, - Description = string.Empty, // TODO: (pkg) Add description to theme manifests - WebSite = themeManifest.Url, - Tags = string.Empty // TODO: (pkg) Add tags to theme manifests, - }; - - return descriptor; - } - - internal static ExtensionDescriptor GetExtensionDescriptor(this IPackage package, string extensionType) - { - bool isTheme = extensionType.IsCaseInsensitiveEqual("Theme"); - - IPackageFile packageFile = package.GetFiles().FirstOrDefault(file => - { - var fileName = Path.GetFileName(file.Path); - return fileName != null && fileName.Equals(isTheme ? "theme.config" : "Description.txt", StringComparison.OrdinalIgnoreCase); - }); - - ExtensionDescriptor descriptor = null; - - if (packageFile != null) - { - var filePath = packageFile.EffectivePath; - if (filePath.HasValue()) - { - filePath = Path.Combine(HostingEnvironment.MapPath("~/"), filePath); - if (isTheme) - { - var themeManifest = ThemeManifest.Create(Path.GetDirectoryName(filePath)); - if (themeManifest != null) - { - descriptor = themeManifest.ConvertToExtensionDescriptor(); - } - } - else // is a Plugin - { - var pluginDescriptor = PluginFileParser.ParsePluginDescriptionFile(filePath); - if (pluginDescriptor != null) - { - descriptor = pluginDescriptor.ConvertToExtensionDescriptor(); - } - } - } - } - - return descriptor; - } + // TODO: Implement using NuGet.Protocol v3 API } - } diff --git a/src/Libraries/SmartStore.Core/Packaging/Updater/AppUpdater.cs b/src/Libraries/SmartStore.Core/Packaging/Updater/AppUpdater.cs index 0e5cae0836..6997474cfc 100644 --- a/src/Libraries/SmartStore.Core/Packaging/Updater/AppUpdater.cs +++ b/src/Libraries/SmartStore.Core/Packaging/Updater/AppUpdater.cs @@ -1,465 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.Linq; -using System.Threading; -using NuGet; -using SmartStore.Core.Data; -using SmartStore.Core.Logging; -using SmartStore.Core.Plugins; -using SmartStore.Utilities; -using SmartStore.Utilities.Threading; +// TODO: Migrate to NuGet.Protocol v3 API +// This file uses NuGet.Core v2 API which is obsolete +// The entire file is commented out and needs to be rewritten -namespace SmartStore.Core.Packaging +namespace SmartStore.Core.Packaging.Updater { - public sealed class AppUpdater : DisposableObject + // Placeholder class to allow compilation + public class AppUpdater { - public const string UpdatePackagePath = "~/App_Data/Update"; - - private static readonly ReaderWriterLockSlim _rwLock = new ReaderWriterLockSlim(); - private TraceLogger _logger; - - #region Package update - - [SuppressMessage("ReSharper", "RedundantAssignment")] - public bool InstallablePackageExists() - { - string packagePath = null; - var package = FindPackage(false, out packagePath); - - if (package == null) - return false; - - if (!ValidatePackage(package)) - return false; - - if (!CheckEnvironment()) - return false; - - return true; - } - - internal bool TryUpdateFromPackage() - { - // NEVER EVER (!!!) make an attempt to auto-update in a dev environment!!!!!!! - if (CommonHelper.IsDevEnvironment) - return false; - - using (_rwLock.GetUpgradeableReadLock()) - { - try - { - string packagePath = null; - var package = FindPackage(true, out packagePath); - - if (package == null) - return false; - - if (!ValidatePackage(package)) - return false; - - if (!CheckEnvironment()) - return false; - - using (_rwLock.GetWriteLock()) - { - Backup(); - - var info = ExecuteUpdate(package); - - if (info != null) - { - var newPath = packagePath + ".applied"; - if (File.Exists(newPath)) - { - File.Delete(packagePath); - } - else - { - File.Move(packagePath, newPath); - } - } - - return info != null; - } - } - catch (Exception ex) - { - _logger.Error(ex, "An error occured while updating the application"); - return false; - } - } - } - - private TraceLogger CreateLogger(IPackage package) - { - var logFile = Path.Combine(CommonHelper.MapPath(UpdatePackagePath, false), "Updater.{0}.log".FormatInvariant(package.Version.ToString())); - return new TraceLogger(logFile); - } - - private IPackage FindPackage(bool createLogger, out string path) - { - path = null; - var dir = CommonHelper.MapPath(UpdatePackagePath, false); - - if (!Directory.Exists(dir)) - return null; - - var files = Directory.GetFiles(dir, "SmartStore.*.nupkg", SearchOption.TopDirectoryOnly); - - // TODO: allow more than one package in folder and return newest - if (files.Length == 0 || files.Length > 1) - return null; - - try - { - path = files[0]; - IPackage package = new ZipPackage(files[0]); - if (createLogger) - { - _logger = CreateLogger(package); - _logger.Info("Found update package '{0}'".FormatInvariant(package.GetFullName())); - } - return package; - } - catch { } - - return null; - } - - private bool ValidatePackage(IPackage package) - { - if (package.Id != "SmartStore") - return false; - - var currentVersion = new SemanticVersion(SmartStoreVersion.Version); - return package.Version > currentVersion; - } - - private bool CheckEnvironment() - { - // TODO: Check it :-) - return true; - } - - private void Backup() - { - var source = new DirectoryInfo(CommonHelper.MapPath("~/")); - - var tempPath = CommonHelper.MapPath("~/App_Data/_Backup/App/SmartStore"); - string localTempPath = null; - for (int i = 0; i < 50; i++) - { - localTempPath = tempPath + (i == 0 ? "" : "." + i.ToString()); - if (!Directory.Exists(localTempPath)) - { - Directory.CreateDirectory(localTempPath); - break; - } - localTempPath = null; - } - - if (localTempPath == null) - { - var exception = new SmartException("Too many backups in '{0}'.".FormatInvariant(tempPath)); - _logger.Error(exception); - throw exception; - } - - var backupFolder = new DirectoryInfo(localTempPath); - var folderUpdater = new FolderUpdater(_logger); - folderUpdater.Backup(source, backupFolder, "App_Data", "Media"); - - _logger.Info("Backup successfully created in folder '{0}'.".FormatInvariant(localTempPath)); - } - - private PackageInfo ExecuteUpdate(IPackage package) - { - var appPath = CommonHelper.MapPath("~/"); - - var logger = new NugetLogger(_logger); - - var project = new FileBasedProjectSystem(appPath) { Logger = logger }; - - var nullRepository = new NullSourceRepository(); - - var projectManager = new ProjectManager( - nullRepository, - new DefaultPackagePathResolver(appPath), - project, - nullRepository - ) - { Logger = logger }; - - // Perform the update - projectManager.AddPackageReference(package, true, false); - - var info = new PackageInfo - { - Id = package.Id, - Name = package.Title ?? package.Id, - Version = package.Version.ToString(), - Type = "App", - Path = appPath - }; - - _logger.Info("Update '{0}' successfully executed.".FormatInvariant(info.Name)); - - return info; - } - - #endregion - - #region Migrations - - internal void ExecuteMigrations() - { - if (!DataSettings.DatabaseIsInstalled()) - return; - - var currentVersion = SmartStoreVersion.Version; - var prevVersion = DataSettings.Current.AppVersion ?? new Version(1, 0); - - if (prevVersion < new Version(3, 0, 0)) - { - throw new ApplicationException($"Smartstore {currentVersion} does not support automatic upgrade from version {prevVersion}. Please upgrade to version 3.x first."); - } - - TryMigrateDefaultTenant(); - - if (prevVersion >= currentVersion) - return; - - if (prevVersion < new Version(2, 1)) - { - // we introduced app migrations in V2.1. So any version prior 2.1 - // has to perform the initial migration - MigrateInitial(); - } - - if (prevVersion <= new Version(3, 1, 5, 0)) - { - // We updated to Lucene.Net 4.8. - DeleteSearchIndex(); - } - - DataSettings.Current.AppVersion = currentVersion; - DataSettings.Current.Save(); - } - - private bool TryMigrateDefaultTenant() - { - // We introduced basic multi-tenancy in V3 [...] - - if (!IsPreTenancyVersion()) - { - return false; - } - - var tenantDir = Directory.CreateDirectory(CommonHelper.MapPath("~/App_Data/Tenants/Default")); - var tenantTempDir = tenantDir.CreateSubdirectory("_temp"); - - var appDataDir = CommonHelper.MapPath("~/App_Data"); - - // Move Settings.txt - File.Move(Path.Combine(appDataDir, "Settings.txt"), Path.Combine(tenantDir.FullName, "Settings.txt")); - - // Move InstalledPlugins.txt - File.Move(Path.Combine(appDataDir, "InstalledPlugins.txt"), Path.Combine(tenantDir.FullName, "InstalledPlugins.txt")); - - // Move SmartStore.db.sdf - var path = Path.Combine(appDataDir, "SmartStore.db.sdf"); - if (File.Exists(path)) - { - File.Move(path, Path.Combine(tenantDir.FullName, "SmartStore.db.sdf")); - } - - Func moveTenantFolder = (sourceFolder, targetFolder) => - { - var sourcePath = Path.Combine(appDataDir, sourceFolder); - - if (Directory.Exists(sourcePath)) - { - Directory.Move(sourcePath, Path.Combine(tenantDir.FullName, targetFolder ?? sourceFolder)); - return true; - } - - return false; - }; - - // Move tenant specific Folders - moveTenantFolder("ImportProfiles", null); - moveTenantFolder("ExportProfiles", null); - moveTenantFolder("Indexing", null); - moveTenantFolder("Lucene", null); - moveTenantFolder("_temp\\BizBackups", null); - moveTenantFolder("_temp\\ShopConnector", null); - - // Move all media files and folders to new subfolder "Default" - var mediaInfos = (new DirectoryInfo(CommonHelper.MapPath("~/Media"))).EnumerateFileSystemInfos().Where(x => !x.Name.IsCaseInsensitiveEqual("Default")); - var mediaFiles = mediaInfos.OfType(); - var mediaDirs = mediaInfos.OfType().ToArray(); - var tenantMediaDir = new DirectoryInfo(CommonHelper.MapPath("~/Media/Default")); - if (!tenantMediaDir.Exists) - { - tenantMediaDir.Create(); - } - - foreach (var dir in mediaDirs) - { - dir.MoveTo(Path.Combine(tenantMediaDir.FullName, dir.Name)); - } - - foreach (var file in mediaFiles) - { - file.MoveTo(Path.Combine(tenantMediaDir.FullName, file.Name)); - } - - return true; - } - - private bool IsPreTenancyVersion() - { - var appDataDir = CommonHelper.MapPath("~/App_Data"); - - return File.Exists(Path.Combine(appDataDir, "Settings.txt")) - && File.Exists(Path.Combine(appDataDir, "InstalledPlugins.txt")) - && !Directory.Exists(Path.Combine(appDataDir, "Tenants\\Default")); - } - - private void MigrateInitial() - { - var installedPlugins = PluginFileParser.ParseInstalledPluginsFile(); - if (installedPlugins.Count == 0) - return; - - var renamedPlugins = new List(); - - var pluginRenameMap = new Dictionary - { - { "CurrencyExchange.ECB", null /* null means: remove it */ }, - { "CurrencyExchange.MoneyConverter", null }, - { "ExternalAuth.OpenId", null }, - { "Tax.Free", null }, - { "Api.WebApi", "SmartStore.WebApi" }, - { "DiscountRequirement.MustBeAssignedToCustomerRole", "SmartStore.DiscountRules" }, - { "DiscountRequirement.HadSpentAmount", "SmartStore.DiscountRules" }, - { "DiscountRequirement.HasAllProducts", "SmartStore.DiscountRules" }, - { "DiscountRequirement.HasOneProduct", "SmartStore.DiscountRules" }, - { "DiscountRequirement.Store", "SmartStore.DiscountRules" }, - { "DiscountRequirement.BillingCountryIs", "SmartStore.DiscountRules" }, - { "DiscountRequirement.ShippingCountryIs", "SmartStore.DiscountRules" }, - { "DiscountRequirement.HasPaymentMethod", "SmartStore.DiscountRules.HasPaymentMethod" }, - { "DiscountRequirement.HasShippingOption", "SmartStore.DiscountRules.HasShippingOption" }, - { "DiscountRequirement.PurchasedAllProducts", "SmartStore.DiscountRules.PurchasedProducts" }, - { "DiscountRequirement.PurchasedOneProduct", "SmartStore.DiscountRules.PurchasedProducts" }, - { "PromotionFeed.Froogle", "SmartStore.GoogleMerchantCenter" }, - { "PromotionFeed.Billiger", "SmartStore.Billiger" }, - { "PromotionFeed.ElmarShopinfo", "SmartStore.ElmarShopinfo" }, - { "PromotionFeed.Guenstiger", "SmartStore.Guenstiger" }, - { "Payments.AccardaKar", "SmartStore.AccardaKar" }, - { "Payments.AmazonPay", "SmartStore.AmazonPay" }, - { "Developer.DevTools", "SmartStore.DevTools" }, - { "ExternalAuth.Facebook", "SmartStore.FacebookAuth" }, - { "ExternalAuth.Twitter", "SmartStore.TwitterAuth" }, - { "SMS.Clickatell", "SmartStore.Clickatell" }, - { "Widgets.GoogleAnalytics", "SmartStore.GoogleAnalytics" }, - { "Misc.DemoShop", "SmartStore.DemoShopControlling" }, - { "Admin.OrderNumberFormatter", "SmartStore.OrderNumberFormatter" }, - { "Admin.Debitoor", "SmartStore.Debitoor" }, - { "Widgets.ETracker", "SmartStore.ETracker" }, - { "Payments.PayPalDirect", "SmartStore.PayPal" }, - { "Payments.PayPalStandard", "SmartStore.PayPal" }, - { "Payments.PayPalExpress", "SmartStore.PayPal" }, - { "Developer.Glimpse", "SmartStore.Glimpse" }, - { "Import.Biz", "SmartStore.BizImporter" }, - { "Payments.Sofortueberweisung", "SmartStore.Sofortueberweisung" }, - { "Payments.PostFinanceECommerce", "SmartStore.PostFinanceECommerce" }, - { "Misc.MailChimp", "SmartStore.MailChimp" }, - { "Mobile.SMS.Verizon", "SmartStore.Verizon" }, - { "Widgets.LivePersonChat", "SmartStore.LivePersonChat" }, - { "Payments.CashOnDelivery", "SmartStore.OfflinePayment" }, - { "Payments.Invoice", "SmartStore.OfflinePayment" }, - { "Payments.PayInStore", "SmartStore.OfflinePayment" }, - { "Payments.Prepayment", "SmartStore.OfflinePayment" }, - { "Payments.IPaymentCreditCard", "SmartStore.IPayment" }, - { "Payments.IPaymentDirectDebit", "SmartStore.IPayment" }, - { "Payments.AuthorizeNet", "SmartStore.AuthorizeNet" }, - { "Shipping.AustraliaPost", "SmartStore.AustraliaPost" }, - { "Shipping.CanadaPost", "SmartStore.CanadaPost" }, - { "Shipping.Fedex", "SmartStore.Fedex" }, - { "Shipping.UPS", "SmartStore.UPS" }, - { "Payments.Manual", "SmartStore.OfflinePayment" }, - { "Shipping.USPS", "SmartStore.USPS" }, - { "Widgets.TrustedShopsSeal", "SmartStore.TrustedShops" }, - { "Widgets.TrustedShopsCustomerReviews", "SmartStore.TrustedShops" }, - { "Widgets.TrustedShopsCustomerProtection", "SmartStore.TrustedShops" }, - { "Shipping.ByWeight", "SmartStore.ShippingByWeight" }, - { "Payments.DirectDebit", "SmartStore.OfflinePayment" }, - { "Tax.FixedRate", "SmartStore.Tax" }, - { "Tax.CountryStateZip", "SmartStore.Tax" }, - { "Shipping.ByTotal", "SmartStore.Shipping" }, - { "Shipping.FixedRate", "SmartStore.Shipping" } - }; - - foreach (var name in installedPlugins) - { - if (pluginRenameMap.ContainsKey(name)) - { - string newName = pluginRenameMap[name]; - if (newName != null && !renamedPlugins.Contains(newName)) - { - renamedPlugins.Add(newName); - } - } - else - { - renamedPlugins.Add(name); - } - } - - PluginFileParser.SaveInstalledPluginsFile(renamedPlugins); - } - - private void DeleteSearchIndex() - { - var tenantPath = CommonHelper.MapPath(DataSettings.Current.TenantPath); - - try - { - var indexingDir = new DirectoryInfo(Path.Combine(tenantPath, "Indexing")); - if (indexingDir.Exists) - { - indexingDir.Delete(true); - } - } - catch { } - - try - { - var luceneDir = new DirectoryInfo(Path.Combine(tenantPath, "Lucene")); - if (luceneDir.Exists) - { - luceneDir.Delete(true); - } - } - catch { } - } - - #endregion - - protected override void OnDispose(bool disposing) - { - if (disposing) - { - if (_logger != null) - { - _logger.Dispose(); - _logger = null; - } - } - } + // TODO: Implement using NuGet.Protocol v3 API } - } diff --git a/src/Libraries/SmartStore.Core/PagedList`T.cs b/src/Libraries/SmartStore.Core/PagedList`T.cs index 3796a1350a..aae295ebe4 100644 --- a/src/Libraries/SmartStore.Core/PagedList`T.cs +++ b/src/Libraries/SmartStore.Core/PagedList`T.cs @@ -2,8 +2,8 @@ using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Data.Entity; -using System.Data.Entity.Infrastructure; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using System.Linq; using System.Threading.Tasks; diff --git a/src/Libraries/SmartStore.Core/Plugins/IConfigurable.cs b/src/Libraries/SmartStore.Core/Plugins/IConfigurable.cs index aaee54810c..4c6ee27dbb 100644 --- a/src/Libraries/SmartStore.Core/Plugins/IConfigurable.cs +++ b/src/Libraries/SmartStore.Core/Plugins/IConfigurable.cs @@ -1,4 +1,4 @@ -using System.Web.Routing; +using Microsoft.AspNetCore.Routing; namespace SmartStore.Core.Plugins { diff --git a/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs b/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs index d8a3f158af..224f7252ab 100644 --- a/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs +++ b/src/Libraries/SmartStore.Core/Plugins/PluginManager.cs @@ -6,9 +6,6 @@ using System.Linq; using System.Reflection; using System.Runtime.InteropServices; -using System.Web; -using System.Web.Compilation; -using Microsoft.Web.Infrastructure.DynamicModuleHelper; using SmartStore.Core.Data; using SmartStore.Core.Infrastructure; using SmartStore.Core.Infrastructure.DependencyManagement; @@ -21,7 +18,7 @@ // SEE THIS POST for full details of what this does //http://shazwazza.com/post/Developing-a-plugin-framework-in-ASPNET-with-medium-trust.aspx -[assembly: PreApplicationStartMethod(typeof(PluginManager), "Initialize")] +// TODO: PreApplicationStartMethod removed in .NET 8 - Initialize must be called from Program.cs namespace SmartStore.Core.Plugins { /// diff --git a/src/Libraries/SmartStore.Core/RouteInfo.cs b/src/Libraries/SmartStore.Core/RouteInfo.cs index e98f9d9004..5932759ce3 100644 --- a/src/Libraries/SmartStore.Core/RouteInfo.cs +++ b/src/Libraries/SmartStore.Core/RouteInfo.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Web.Routing; +using Microsoft.AspNetCore.Routing; using Newtonsoft.Json; namespace SmartStore diff --git a/src/Libraries/SmartStore.Core/Rules/Domain/RuleEntity.cs b/src/Libraries/SmartStore.Core/Rules/Domain/RuleEntity.cs index 587be18e1f..5dc1193482 100644 --- a/src/Libraries/SmartStore.Core/Rules/Domain/RuleEntity.cs +++ b/src/Libraries/SmartStore.Core/Rules/Domain/RuleEntity.cs @@ -17,7 +17,6 @@ public partial class RuleEntity : BaseEntity [DataMember] [Required, StringLength(100)] - [Index("IX_PageBuilder_RuleType")] public string RuleType { get; set; } //[DataMember] @@ -33,7 +32,6 @@ public partial class RuleEntity : BaseEntity public string Value { get; set; } [DataMember] - [Index("IX_PageBuilder_DisplayOrder")] public int DisplayOrder { get; set; } [NotMapped] diff --git a/src/Libraries/SmartStore.Core/Rules/Domain/RuleSetEntity.cs b/src/Libraries/SmartStore.Core/Rules/Domain/RuleSetEntity.cs index 96d4bb591e..12835f0fcd 100644 --- a/src/Libraries/SmartStore.Core/Rules/Domain/RuleSetEntity.cs +++ b/src/Libraries/SmartStore.Core/Rules/Domain/RuleSetEntity.cs @@ -29,18 +29,15 @@ public partial class RuleSetEntity : BaseEntity, IAuditable [StringLength(400)] public string Description { get; set; } - [Index("IX_RuleSetEntity_Scope", Order = 0)] public bool IsActive { get; set; } = true; [Required] - [Index("IX_RuleSetEntity_Scope", Order = 1)] public RuleScope Scope { get; set; } /// /// True when this set is an internal composite container for rules within another ruleset. /// - [Index] public bool IsSubGroup { get; set; } public LogicalRuleOperator LogicalOperator { get; set; } diff --git a/src/Libraries/SmartStore.Core/Rules/RuleStorage.cs b/src/Libraries/SmartStore.Core/Rules/RuleStorage.cs index 8b8226c2bd..57e338c77f 100644 --- a/src/Libraries/SmartStore.Core/Rules/RuleStorage.cs +++ b/src/Libraries/SmartStore.Core/Rules/RuleStorage.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using System.Data.Entity; +using Microsoft.EntityFrameworkCore; using System.Linq; using SmartStore.Core; using SmartStore.Core.Caching; diff --git a/src/Libraries/SmartStore.Core/Security/PermissionAttribute.cs b/src/Libraries/SmartStore.Core/Security/PermissionAttribute.cs index b1e4b0399c..6209758cd2 100644 --- a/src/Libraries/SmartStore.Core/Security/PermissionAttribute.cs +++ b/src/Libraries/SmartStore.Core/Security/PermissionAttribute.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Net; using System.Text; -using System.Web.Mvc; +using Microsoft.AspNetCore.Mvc; namespace SmartStore.Core.Security { diff --git a/src/Libraries/SmartStore.Core/Security/SmartStorePrincipal.cs b/src/Libraries/SmartStore.Core/Security/SmartStorePrincipal.cs index 48d48e2d78..34cc707b96 100644 --- a/src/Libraries/SmartStore.Core/Security/SmartStorePrincipal.cs +++ b/src/Libraries/SmartStore.Core/Security/SmartStorePrincipal.cs @@ -1,7 +1,7 @@ using System.Security; using System.Security.Claims; using System.Security.Principal; -using System.Web.Security; +using Microsoft.AspNetCore.Identity; using SmartStore.Core.Domain.Customers; namespace SmartStore.Core diff --git a/src/Libraries/SmartStore.Core/SmartStore.Core.csproj b/src/Libraries/SmartStore.Core/SmartStore.Core.csproj index cd84ae4268..40d7f5ba09 100644 --- a/src/Libraries/SmartStore.Core/SmartStore.Core.csproj +++ b/src/Libraries/SmartStore.Core/SmartStore.Core.csproj @@ -1,810 +1,32 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {6BDA8332-939F-45B7-A25E-7A797260AE59} - Library - Properties + net8.0 SmartStore.Core SmartStore.Core - v4.7.2 - 512 - - - - - - - - - - ..\..\ - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - bin\EFMigrations\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\PluginDev\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset + false + latest + disable + - - ..\..\packages\AngleSharp.0.9.11\lib\net45\AngleSharp.dll - - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - - - ..\..\packages\Autofac.Mvc5.5.0.0\lib\net461\Autofac.Integration.Mvc.dll - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - True - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\packages\HtmlSanitizer.4.0.205\lib\net45\HtmlSanitizer.dll - - - ..\..\packages\log4net.2.0.8\lib\net45-full\log4net.dll - True - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - True - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\..\packages\Microsoft.Web.Xdt.3.0.0\lib\net40\Microsoft.Web.XmlTransform.dll - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\..\packages\NuGet.Core.2.14.0\lib\net40-Client\NuGet.Core.dll - True - - - - - - - - ..\..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll - True - - - - ..\..\packages\System.Linq.Dynamic.Core.1.2.1\lib\net46\System.Linq.Dynamic.Core.dll - - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - - + + - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - + + - - - - - - - - - - - - \ No newline at end of file + diff --git a/src/Libraries/SmartStore.Core/Utilities/CommonHelper.cs b/src/Libraries/SmartStore.Core/Utilities/CommonHelper.cs index 0b1cd338e5..c0c55809ed 100644 --- a/src/Libraries/SmartStore.Core/Utilities/CommonHelper.cs +++ b/src/Libraries/SmartStore.Core/Utilities/CommonHelper.cs @@ -10,8 +10,8 @@ using System.Runtime.Serialization.Formatters.Binary; using System.Security.Cryptography; using System.Text; -using System.Web.Hosting; -using System.Web.Mvc; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using SmartStore.ComponentModel; diff --git a/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs b/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs index b54d69e003..9dfb0975ca 100644 --- a/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs +++ b/src/Libraries/SmartStore.Core/Utilities/FileDownloadManager.cs @@ -19,9 +19,9 @@ public class FileDownloadManager { private const int _bufferSize = 16384; - private readonly HttpRequestBase _httpRequest; + private readonly HttpRequest _httpRequest; - public FileDownloadManager(HttpRequestBase httpRequest) + public FileDownloadManager(HttpRequest httpRequest) { _httpRequest = httpRequest; } diff --git a/src/Libraries/SmartStore.Core/WebHelper.cs b/src/Libraries/SmartStore.Core/WebHelper.cs index 14a332af68..dd23dbf0c9 100644 --- a/src/Libraries/SmartStore.Core/WebHelper.cs +++ b/src/Libraries/SmartStore.Core/WebHelper.cs @@ -11,7 +11,7 @@ using System.Text.RegularExpressions; using System.Threading; using System.Web; -using System.Web.Configuration; +using Microsoft.Extensions.Configuration; using SmartStore.Collections; using SmartStore.Core.Data; using SmartStore.Core.Domain.Stores; @@ -30,7 +30,7 @@ public partial class WebHelper : IWebHelper private static readonly Regex s_cssPathPattern = new Regex(@"url\('(?.+)'\)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Multiline); private static readonly ConcurrentDictionary s_safeLocalHostNames = new ConcurrentDictionary(); - private readonly HttpContextBase _httpContext; + private readonly HttpContext _httpContext; private bool? _isCurrentConnectionSecured; private string _storeHost; private string _storeHostSsl; @@ -40,7 +40,7 @@ public partial class WebHelper : IWebHelper private Store _currentStore; - public WebHelper(HttpContextBase httpContext) + public WebHelper(HttpContext httpContext) { _httpContext = httpContext; } @@ -370,7 +370,7 @@ public static bool IsStaticResourceRequested(HttpRequest request) return s_staticExts.IsMatch(request.Path); } - public static bool IsStaticResourceRequested(HttpRequestBase request) + public static bool IsStaticResourceRequested(HttpRequest request) { // unit testable Guard.NotNull(request, nameof(request)); @@ -587,7 +587,7 @@ public static AspNetHostingPermissionLevel GetTrustLevel() /// /// All html attributed named src and href are affected, also occurences of url('path') within embedded stylesheets. /// - public static string MakeAllUrlsAbsolute(string html, HttpRequestBase request) + public static string MakeAllUrlsAbsolute(string html, HttpRequest request) { Guard.NotNull(request, nameof(request)); @@ -634,7 +634,7 @@ public static string MakeAllUrlsAbsolute(string html, string protocol, string ho /// /// Changes the protocol if passed. [SuppressMessage("ReSharper", "AccessToModifiedClosure")] - public static string GetAbsoluteUrl(string url, HttpRequestBase request, bool enforceScheme = false, string protocol = null) + public static string GetAbsoluteUrl(string url, HttpRequest request, bool enforceScheme = false, string protocol = null) { Guard.NotEmpty(url, nameof(url)); Guard.NotNull(request, nameof(request)); diff --git a/src/Libraries/SmartStore.Data/SmartStore.Data.csproj b/src/Libraries/SmartStore.Data/SmartStore.Data.csproj index fb594ed6a4..985d501144 100644 --- a/src/Libraries/SmartStore.Data/SmartStore.Data.csproj +++ b/src/Libraries/SmartStore.Data/SmartStore.Data.csproj @@ -1,1016 +1,30 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {CCD7F2C9-6A2C-4CF0-8E89-076B8FC0F144} - Library - Properties + net8.0 SmartStore.Data SmartStore.Data - v4.7.2 - 512 - - - - - - - - - - ..\..\ - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - latest - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - latest - - - true - bin\EFMigrations\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - latest - - - true - bin\PluginDev\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset + false latest + disable + - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - True - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\packages\EntityFramework.SqlServerCompact.6.4.4\lib\net45\EntityFramework.SqlServerCompact.dll - True - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - True - ..\..\packages\Microsoft.SqlServer.Scripting.11.0.2100.61\lib\Microsoft.SqlServer.ConnectionInfo.dll - - - True - ..\..\packages\Microsoft.SqlServer.Scripting.11.0.2100.61\lib\Microsoft.SqlServer.Management.Sdk.Sfc.dll - - - True - ..\..\packages\Microsoft.SqlServer.Scripting.11.0.2100.61\lib\Microsoft.SqlServer.Smo.dll - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - - - - - True - ..\..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - - - - - - - - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 201705281903241_MoreIndexes.cs - - - - 201706020759565_UpdateMediaPath.cs - - - - 201707190940318_V302Resources.cs - - - - 201707281452589_TierPriceCalcMethod.cs - - - - 201708251628482_SystemTopics.cs - - - - 201709141000226_V303Resources.cs - - - - 201709251538312_UpdateTrustedShopsTask.cs - - - - 201710102038287_CurrencyRounding.cs - - - - 201710252016556_IndexOptionNames.cs - - - - 201711112331162_ProductMainPictureId.cs - - - - 201711222311112_MoveFsMedia.cs - - - - 201711291017168_SyncStringResources.cs - - - - 201712081631552_Liquid.cs - - - - 201712290151517_AddressFormat.cs - - - - 201802081830029_ShippingMethodMultistore.cs - - - - 201802270844034_ExportAttributeMappings.cs - - - - 201804060721031_Wallet.cs - - - - 201804090744324_ForceSslForAllPages.cs - - - - 201804200835273_V310Resources.cs - - - - 201804252356096_TopicSlugs.cs - - - - 201805250724399_V315Resources.cs - - - - 201806051221399_RefundReturnRequests.cs - - - - 201806231547270_ScheduleTaskHistory.cs - - - - 201807051830375_MoveCustomerFields.cs - - - - 201807122120062_TopicAcl.cs - - - - 201807191020207_OrderItemDeliveryTime.cs - - - - 201807201157391_DownloadVersions.cs - - - - 201807311708428_ProductPreviewPicture.cs - - - - 201808051818238_Merge4.cs - - - - 201809171309522_NewsletterSubscriptionLanguage.cs - - - - 201809261026134_ForumGroupAcl.cs - - - - 201810011954195_ForumPostVote.cs - - - - 201810231214068_DataExchangeEnhancements.cs - - - - 201811061745204_IsSystemProductIndex.cs - - - - 201811082148279_LocalizedPropertyKeyGroupIndex.cs - - - - 201811161142587_TaskHistoryErrorLength.cs - - - - 201811202204501_ProductIndexSeekExport.cs - - - - 201902211855242_TopicHtmlIdAndBodyCss.cs - - - - 201904110735029_Menus.cs - - - - 201905020948354_WidgetTopics.cs - - - - 201905101159134_V320Resources.cs - - - - 201905271110370_V321Resources.cs - - - - 201906252008551_QuantityUnitNamePlural.cs - - - - 201907032251575_CategoryExternalLink.cs - - - - 201907250103367_RuleSystem.cs - - - - 201908050758298_MoveFurtherCustomerFields.cs - - - - 201908150749388_V322Resources.cs - - - - 201907221803421_GranularPermissions.cs - - - - 201908211821559_Merge5.cs - - - - 201908211825244_ProductTagPublished.cs - - - - 201908261226350_MenuItemMultistore.cs - - - - 201909291043284_BlogAndNewsItemPictures.cs - - - - 201910021805242_RemoveOldPermissions.cs - - - - 201910162004581_Merge6.cs - - - - 201911090805330_ProductVisibility.cs - - - - 201911120909434_Merge7.cs - - - - 201911141820264_ScheduleTaskPriority.cs - - - - 201912051209105_MessageTemplateEmailAddress.cs - - - - 201912111821362_AddNewPermissions.cs - - - - 202001141118171_SpecificationAttributeColorAndPicture.cs - - - - 202001221054109_ManufacturerBottomDescription.cs - - - - 202001301039020_DiscountRuleSets.cs - - - - 202002172101120_PictureMediaRename.cs - - - - 202002180228163_PictureMediaRename1.cs - - - - 202002280005340_MediaManager.cs - - - - 202002191252074_RemoveDiscountRequirements.cs - - - - 202002211011108_GenericMessageTemplate.cs - - - - 202002241354543_ProductCondition.cs - - - - 202002251510114_ManufacturerSubjectToAcl.cs - - - - 202002271206204_ShipmentTrackingUrl.cs - - - - 202003022018038_Merge8.cs - - - - 202003052100521_CustomerRoleMappings.cs - - - - 202003112359492_MediaManager2.cs - - - - 202003251118391_CategoryRuleSets.cs - - - - 202003171812584_CookieManager.cs - - - - 202003311314082_CookieManagerCountries.cs - - - - 202004301922188_RemoveCustomerCustomerRoles.cs - - - - 202005111006305_CampaignSubjectToAcl.cs - - - - 202005201826512_MediaManager3.cs - - - - 202006250801086_V400Resources.cs - - - - 202007160058551_MediaFileIndexReorg.cs - - - - 202007241131557_V401Resources.cs - - - - 202007291847004_NewPropertiesAndIndexes.cs - - - - 202007301117363_AddCustomerRoleOrderAmount.cs - - - - 202008181949580_RenamedCustomerRoleOrderTotal.cs - - - - 202009021705132_Merge9.cs - - - - 202009041122208_ShopIcons.cs - - - - 202009090817220_DeliveryTimeMinMaxDays.cs - - - - 202010011005387_TopicCookieType.cs - - - - 202010030939136_AttributeChoiceBehaviour.cs - - - - 202010121359446_RemoveBlogAndNewsLanguage.cs - - - - 202011091154314_V410Resources.cs - - - - 202012051645539_AddBlogAndNewsLanguage.cs - - - - 202101251149352_V411Resources.cs - - - - 202112171231491_V420Resources.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + - - + + - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - + + - - - 201705281903241_MoreIndexes.cs - - - 201706020759565_UpdateMediaPath.cs - - - 201707190940318_V302Resources.cs - - - 201707281452589_TierPriceCalcMethod.cs - - - 201708251628482_SystemTopics.cs - - - 201709141000226_V303Resources.cs - - - 201709251538312_UpdateTrustedShopsTask.cs - - - 201710102038287_CurrencyRounding.cs - - - 201710252016556_IndexOptionNames.cs - - - 201711112331162_ProductMainPictureId.cs - - - 201711222311112_MoveFsMedia.cs - - - 201711291017168_SyncStringResources.cs - - - 201712081631552_Liquid.cs - - - 201712290151517_AddressFormat.cs - - - 201802081830029_ShippingMethodMultistore.cs - - - 201802270844034_ExportAttributeMappings.cs - - - 201804060721031_Wallet.cs - - - 201804090744324_ForceSslForAllPages.cs - - - 201804200835273_V310Resources.cs - - - 201804252356096_TopicSlugs.cs - - - 201805250724399_V315Resources.cs - - - 201806051221399_RefundReturnRequests.cs - - - 201806231547270_ScheduleTaskHistory.cs - - - 201807051830375_MoveCustomerFields.cs - - - 201807122120062_TopicAcl.cs - - - 201807191020207_OrderItemDeliveryTime.cs - - - 201807201157391_DownloadVersions.cs - - - 201807311708428_ProductPreviewPicture.cs - - - 201808051818238_Merge4.cs - - - 201809171309522_NewsletterSubscriptionLanguage.cs - - - 201809261026134_ForumGroupAcl.cs - - - 201810011954195_ForumPostVote.cs - - - 201810231214068_DataExchangeEnhancements.cs - - - 201811061745204_IsSystemProductIndex.cs - - - 201811082148279_LocalizedPropertyKeyGroupIndex.cs - - - 201811161142587_TaskHistoryErrorLength.cs - - - 201811202204501_ProductIndexSeekExport.cs - - - 201902211855242_TopicHtmlIdAndBodyCss.cs - - - 201904110735029_Menus.cs - - - 201905020948354_WidgetTopics.cs - - - 201905101159134_V320Resources.cs - - - 201905271110370_V321Resources.cs - - - 201906252008551_QuantityUnitNamePlural.cs - - - 201907032251575_CategoryExternalLink.cs - - - 201907250103367_RuleSystem.cs - - - 201907221803421_GranularPermissions.cs - - - 201908050758298_MoveFurtherCustomerFields.cs - - - 201908150749388_V322Resources.cs - - - 201908211821559_Merge5.cs - - - 201908211825244_ProductTagPublished.cs - - - 201908261226350_MenuItemMultistore.cs - - - 201909291043284_BlogAndNewsItemPictures.cs - - - 201910021805242_RemoveOldPermissions.cs - - - 201910162004581_Merge6.cs - - - 201911090805330_ProductVisibility.cs - - - 201911120909434_Merge7.cs - - - 201911141820264_ScheduleTaskPriority.cs - - - 201912051209105_MessageTemplateEmailAddress.cs - - - 201912111821362_AddNewPermissions.cs - - - 202001141118171_SpecificationAttributeColorAndPicture.cs - - - 202001221054109_ManufacturerBottomDescription.cs - - - 202001301039020_DiscountRuleSets.cs - - - 202002172101120_PictureMediaRename.cs - - - 202002180228163_PictureMediaRename1.cs - - - 202002280005340_MediaManager.cs - - - 202002191252074_RemoveDiscountRequirements.cs - - - 202002211011108_GenericMessageTemplate.cs - - - 202002241354543_ProductCondition.cs - - - 202002251510114_ManufacturerSubjectToAcl.cs - - - 202002271206204_ShipmentTrackingUrl.cs - - - 202003022018038_Merge8.cs - - - 202003052100521_CustomerRoleMappings.cs - - - 202003112359492_MediaManager2.cs - - - 202003251118391_CategoryRuleSets.cs - - - 202003171812584_CookieManager.cs - - - 202003311314082_CookieManagerCountries.cs - - - 202004301922188_RemoveCustomerCustomerRoles.cs - - - 202005111006305_CampaignSubjectToAcl.cs - - - 202005201826512_MediaManager3.cs - - - 202006250801086_V400Resources.cs - - - 202007160058551_MediaFileIndexReorg.cs - - - 202007241131557_V401Resources.cs - - - 202007291847004_NewPropertiesAndIndexes.cs - - - 202007301117363_AddCustomerRoleOrderAmount.cs - - - 202008181949580_RenamedCustomerRoleOrderTotal.cs - - - 202009021705132_Merge9.cs - - - 202009041122208_ShopIcons.cs - - - 202009090817220_DeliveryTimeMinMaxDays.cs - - - 202010011005387_TopicCookieType.cs - - - 202010030939136_AttributeChoiceBehaviour.cs - - - 202010121359446_RemoveBlogAndNewsLanguage.cs - - - 202011091154314_V410Resources.cs - - - 202012051645539_AddBlogAndNewsLanguage.cs - - - 202101251149352_V411Resources.cs - - - 202112171231491_V420Resources.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/src/Libraries/SmartStore.Services/SmartStore.Services.csproj b/src/Libraries/SmartStore.Services/SmartStore.Services.csproj index 377945466a..2be45210cf 100644 --- a/src/Libraries/SmartStore.Services/SmartStore.Services.csproj +++ b/src/Libraries/SmartStore.Services/SmartStore.Services.csproj @@ -1,845 +1,41 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {210541AD-F659-47DA-8763-16F36C5CD2F4} - Library - Properties + net8.0 SmartStore.Services SmartStore.Services - v4.7.2 - 512 - - - - - - - - - - ..\..\ - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - latest - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - latest - - - true - bin\EFMigrations\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - latest - - - true - bin\PluginDev\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset + false latest + disable - - - ..\..\packages\AngleSharp.0.9.11\lib\net45\AngleSharp.dll - - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - - - ..\..\packages\Autofac.Mvc5.5.0.0\lib\net461\Autofac.Integration.Mvc.dll - - - ..\..\packages\CronExpressionDescriptor.2.15.0\lib\netstandard2.0\CronExpressionDescriptor.dll - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - True - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\packages\EPPlus.4.5.3.1\lib\net40\EPPlus.dll - - - ..\..\packages\ImageProcessor.2.8.0\lib\net452\ImageProcessor.dll - - - ..\..\packages\ImageProcessor.Plugins.WebP.1.3.0\lib\net452\ImageProcessor.Plugins.WebP.dll - - - ..\..\packages\LumenWorksCsvReader.4.0.0\lib\net461\LumenWorks.Framework.IO.dll - - - ..\..\packages\MaxMind.Db.2.6.1\lib\net45\MaxMind.Db.dll - - - ..\..\packages\MaxMind.GeoIP2.3.2.0\lib\net45\MaxMind.GeoIP2.dll - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - - True - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\..\packages\Microsoft.Web.Xdt.3.0.0\lib\net40\Microsoft.Web.XmlTransform.dll - - - ..\..\packages\ncrontab.3.3.0\lib\net35\NCrontab.dll - True - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\..\packages\NReco.PdfGenerator.1.2.0\lib\net45\NReco.PdfGenerator.dll - - - ..\..\packages\NuGet.Core.2.14.0\lib\net40-Client\NuGet.Core.dll - - - ..\..\packages\PreMailer.Net.2.0.1\lib\net45\PreMailer.Net.dll - - - - - - - - - - - - ..\..\packages\System.Linq.Dynamic.Core.1.2.1\lib\net46\System.Linq.Dynamic.Core.dll - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - - - ..\..\packages\UAParser.3.1.44\lib\net45\UAParser.dll - - - - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Settings.settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Reference.map - - - - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - - - {ccd7f2c9-6a2c-4cf0-8e89-076b8fc0f144} - SmartStore.Data - - - - - - - - Designer - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - Reference.map - - - MSDiscoCodeGenerator - Reference.cs - - - - - Dynamic - Web References\EuropeCheckVatService\ - https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl - - - - - Settings - SmartStore_Services_EuropeCheckVatService_checkVatService - - - - - - - - MSBuild:UpdateDesignTimeXaml - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Plugins/SmartStore.AmazonPay/SmartStore.AmazonPay.csproj b/src/Plugins/SmartStore.AmazonPay/SmartStore.AmazonPay.csproj index 90e38591eb..373ac4166e 100644 --- a/src/Plugins/SmartStore.AmazonPay/SmartStore.AmazonPay.csproj +++ b/src/Plugins/SmartStore.AmazonPay/SmartStore.AmazonPay.csproj @@ -18,7 +18,7 @@ Properties SmartStore.AmazonPay SmartStore.AmazonPay - v4.7.2 + net8.0 512 @@ -29,7 +29,6 @@ ..\..\ - true true @@ -278,8 +277,6 @@ - - diff --git a/src/Plugins/SmartStore.Clickatell/SmartStore.Clickatell.csproj b/src/Plugins/SmartStore.Clickatell/SmartStore.Clickatell.csproj index a7ccb144e0..19db3b8530 100644 --- a/src/Plugins/SmartStore.Clickatell/SmartStore.Clickatell.csproj +++ b/src/Plugins/SmartStore.Clickatell/SmartStore.Clickatell.csproj @@ -20,7 +20,7 @@ Properties SmartStore.Clickatell SmartStore.Clickatell - v4.7.2 + net8.0 512 @@ -32,7 +32,6 @@ ..\..\ - true 4.0 @@ -201,10 +200,7 @@ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - diff --git a/src/Plugins/SmartStore.DevTools/SmartStore.DevTools.csproj b/src/Plugins/SmartStore.DevTools/SmartStore.DevTools.csproj index 4a2abff1a9..e70fd04164 100644 --- a/src/Plugins/SmartStore.DevTools/SmartStore.DevTools.csproj +++ b/src/Plugins/SmartStore.DevTools/SmartStore.DevTools.csproj @@ -1,357 +1,31 @@ - - - - - - False - - - False - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {542B9C12-E2A1-49BB-9134-0E3484F9D669} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties + net8.0 SmartStore.DevTools SmartStore.DevTools - v4.7.2 - 512 - - ..\..\ - true - true - - - 4.0 - true - - - - - - - - - - true - full - false - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.DevTools\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.DevTools\ - TRACE - prompt - 4 - false - - - true - bin\EFMigrations\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset + false + latest + disable + true + - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - False - - - ..\..\packages\Autofac.Mvc5.5.0.0\lib\net461\Autofac.Integration.Mvc.dll - False - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - False - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - False - - - ..\..\packages\FluentValidation.7.4.0\lib\net45\FluentValidation.dll - False - - - ..\..\packages\FluentValidation.Mvc5.7.4.0\lib\net45\FluentValidation.Mvc.dll - False - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - False - - - ..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.Abstractions.dll - False - - - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - False - - - ..\..\packages\MiniProfiler.4.2.1\lib\net461\MiniProfiler.dll - True - - - ..\..\packages\MiniProfiler.EF6.4.2.1\lib\net461\MiniProfiler.EF6.dll - True - - - ..\..\packages\MiniProfiler.Shared.4.2.1\lib\net461\MiniProfiler.Shared.dll - True - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - - ..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - False - - - - - - ..\..\packages\System.Diagnostics.DiagnosticSource.6.0.0\lib\net461\System.Diagnostics.DiagnosticSource.dll - False - - - ..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - False - - - - ..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - False - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - False - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - False - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - False - - - + + - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - - - {ccd7f2c9-6a2c-4cf0-8e89-076b8fc0f144} - SmartStore.Data - - - {210541AD-F659-47DA-8763-16F36C5CD2F4} - SmartStore.Services - - - {75fd4163-333c-4dd5-854d-2ef294e45d94} - SmartStore.Web.Framework - - - {4f1f649c-1020-45be-a487-f416d9297ff3} - SmartStore.Web - False - + + + + - - PreserveNewest - + + - - - - Designer - Always - - - Designer - Always - - - PreserveNewest - - - PreserveNewest - - - Designer - PreserveNewest - - - PreserveNewest - - - Designer - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - bin\ - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Aktivieren Sie die Wiederherstellung von NuGet-Paketen, um die fehlende Datei herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - - - - - - - - - False - True - 63704 - / - http://localhost:52742/ - False - True - http://www.smartstore.net - False - - - - - - del "$(TargetDir)MiniProfiler.pdb" /q /s -del "$(TargetDir)MiniProfiler.EntityFramework6.pdb" /q /s - - - \ No newline at end of file + diff --git a/src/Plugins/SmartStore.FacebookAuth/SmartStore.FacebookAuth.csproj b/src/Plugins/SmartStore.FacebookAuth/SmartStore.FacebookAuth.csproj index 7696d4a5f8..0971c7cb65 100644 --- a/src/Plugins/SmartStore.FacebookAuth/SmartStore.FacebookAuth.csproj +++ b/src/Plugins/SmartStore.FacebookAuth/SmartStore.FacebookAuth.csproj @@ -20,7 +20,7 @@ Properties SmartStore.FacebookAuth SmartStore.FacebookAuth - v4.7.2 + net8.0 512 @@ -32,7 +32,6 @@ ..\..\ - true 4.0 @@ -261,10 +260,7 @@ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - diff --git a/src/Plugins/SmartStore.GoogleAnalytics/SmartStore.GoogleAnalytics.csproj b/src/Plugins/SmartStore.GoogleAnalytics/SmartStore.GoogleAnalytics.csproj index 0c2de95d4b..c3438d6dc7 100644 --- a/src/Plugins/SmartStore.GoogleAnalytics/SmartStore.GoogleAnalytics.csproj +++ b/src/Plugins/SmartStore.GoogleAnalytics/SmartStore.GoogleAnalytics.csproj @@ -20,7 +20,7 @@ Properties SmartStore.GoogleAnalytics SmartStore.GoogleAnalytics - v4.7.2 + net8.0 512 @@ -32,7 +32,6 @@ ..\..\ - true 4.0 @@ -195,10 +194,7 @@ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - diff --git a/src/Plugins/SmartStore.GoogleMerchantCenter/SmartStore.GoogleMerchantCenter.csproj b/src/Plugins/SmartStore.GoogleMerchantCenter/SmartStore.GoogleMerchantCenter.csproj index b6ee05227a..ff2e6407fb 100644 --- a/src/Plugins/SmartStore.GoogleMerchantCenter/SmartStore.GoogleMerchantCenter.csproj +++ b/src/Plugins/SmartStore.GoogleMerchantCenter/SmartStore.GoogleMerchantCenter.csproj @@ -20,7 +20,7 @@ Properties SmartStore.GoogleMerchantCenter SmartStore.GoogleMerchantCenter - v4.7.2 + net8.0 512 @@ -32,7 +32,6 @@ ..\..\ - true 4.0 @@ -309,10 +308,7 @@ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - diff --git a/src/Plugins/SmartStore.OfflinePayment/SmartStore.OfflinePayment.csproj b/src/Plugins/SmartStore.OfflinePayment/SmartStore.OfflinePayment.csproj index b392fe891f..b2b39be204 100644 --- a/src/Plugins/SmartStore.OfflinePayment/SmartStore.OfflinePayment.csproj +++ b/src/Plugins/SmartStore.OfflinePayment/SmartStore.OfflinePayment.csproj @@ -1,271 +1,31 @@ - - - - - - False - - - False - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {692E9D31-1393-47BF-B372-63F671052F89} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties + net8.0 SmartStore.OfflinePayment SmartStore.OfflinePayment - v4.7.2 - 512 - - - - - - - - - - ..\..\ - true - - - 4.0 - true - - - - - - - - - - - - true - full - false - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.OfflinePayment\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.OfflinePayment\ - TRACE - prompt - 4 - false - - - true - bin\EFMigrations\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset + false + latest + disable + true + - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - False - - - ..\..\packages\FluentValidation.7.4.0\lib\net45\FluentValidation.dll - False - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - False - - - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - False - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - False - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - False - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - False - - - + + - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - - - - - - - - - + + + - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - - - {210541AD-F659-47DA-8763-16F36C5CD2F4} - SmartStore.Services - - - {75fd4163-333c-4dd5-854d-2ef294e45d94} - SmartStore.Web.Framework - + + + + - - Always - - - PreserveNewest - - - Designer - Always - - - Designer - Always - + + - - - PreserveNewest - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - - - False - True - 51143 - / - http://localhost:56865/ - False - True - http://www.smartstore.net - False - - - - - - \ No newline at end of file + diff --git a/src/Plugins/SmartStore.PayPal/SmartStore.PayPal.csproj b/src/Plugins/SmartStore.PayPal/SmartStore.PayPal.csproj index ee1b597454..63b88f4cd0 100644 --- a/src/Plugins/SmartStore.PayPal/SmartStore.PayPal.csproj +++ b/src/Plugins/SmartStore.PayPal/SmartStore.PayPal.csproj @@ -20,11 +20,10 @@ Properties SmartStore.PayPal SmartStore.PayPal - v4.7.2 + net8.0 512 ..\..\ - true 4.0 @@ -542,10 +541,7 @@ bin\ - - - diff --git a/src/Plugins/SmartStore.Shipping/SmartStore.Shipping.csproj b/src/Plugins/SmartStore.Shipping/SmartStore.Shipping.csproj index 77449e7c90..06afca6c8c 100644 --- a/src/Plugins/SmartStore.Shipping/SmartStore.Shipping.csproj +++ b/src/Plugins/SmartStore.Shipping/SmartStore.Shipping.csproj @@ -1,275 +1,32 @@ - - - - - - False - - - False - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {ACC1E122-B2C8-4441-BDED-D4A77763331A} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties + net8.0 SmartStore.Shipping SmartStore.Shipping - v4.7.2 - 512 - - - - - - - - - - ..\..\ - true - - - 4.0 - true - - - - - - - - - - - - true - full - false - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.Shipping\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.Shipping\ - TRACE - prompt - 4 - false - - - true - ..\..\Presentation\SmartStore.Web\bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset + false + latest + disable + true + - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - False - - - ..\..\packages\Autofac.Mvc5.5.0.0\lib\net461\Autofac.Integration.Mvc.dll - False - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - False - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - False - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - False - - - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - False - - - - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - False - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - False - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - False - - - - - ..\..\..\lib\Telerik\Telerik.Web.Mvc.dll - False - + + - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - 201403072202413_Initial.cs - - - - - - - - - - - - - - - + + + - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - - - {210541AD-F659-47DA-8763-16F36C5CD2F4} - SmartStore.Services - - - {ccd7f2c9-6a2c-4cf0-8e89-076b8fc0f144} - SmartStore.Data - - - {75fd4163-333c-4dd5-854d-2ef294e45d94} - SmartStore.Web.Framework - + + + + + - - 201403072202413_Initial.cs - - - PreserveNewest - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + - - - PreserveNewest - - - Designer - PreserveNewest - - - Designer - PreserveNewest - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - - - False - True - 51377 - / - http://localhost:53076/ - False - True - http://www.smartstore.net - False - - - - - - \ No newline at end of file + diff --git a/src/Plugins/SmartStore.ShippingByWeight/SmartStore.ShippingByWeight.csproj b/src/Plugins/SmartStore.ShippingByWeight/SmartStore.ShippingByWeight.csproj index f0c9004047..29334a1a0d 100644 --- a/src/Plugins/SmartStore.ShippingByWeight/SmartStore.ShippingByWeight.csproj +++ b/src/Plugins/SmartStore.ShippingByWeight/SmartStore.ShippingByWeight.csproj @@ -20,7 +20,7 @@ Properties SmartStore.ShippingByWeight SmartStore.ShippingByWeight - v4.7.2 + net8.0 512 @@ -32,7 +32,6 @@ ..\..\ - true 4.0 @@ -260,10 +259,7 @@ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - diff --git a/src/Plugins/SmartStore.Tax/SmartStore.Tax.csproj b/src/Plugins/SmartStore.Tax/SmartStore.Tax.csproj index 4f0f0c8a61..1779ec7448 100644 --- a/src/Plugins/SmartStore.Tax/SmartStore.Tax.csproj +++ b/src/Plugins/SmartStore.Tax/SmartStore.Tax.csproj @@ -1,277 +1,32 @@ - - - - - - False - - - False - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {94D1BEEB-64A3-4EB6-9017-D66AFAF4F2B2} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties + net8.0 SmartStore.Tax SmartStore.Tax - v4.7.2 - 512 - - - - - - - - - - ..\..\ - true - - - 4.0 - true - - - - - - - - - + false + latest + disable + true - - true - full - false - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.Tax\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - ..\..\Presentation\SmartStore.Web\Plugins\SmartStore.Tax\ - TRACE - prompt - 4 - false - - - true - ..\..\Presentation\SmartStore.Web\bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - False - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - False - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - False - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - False - - - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - False - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - False - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - False - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - False - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - False - - - - - False - ..\..\..\lib\Telerik\Telerik.Web.Mvc.dll - False - - - - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - 201403112350417_Initial.cs - - - - - - - - - - - - - - - - - - + - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - - - {ccd7f2c9-6a2c-4cf0-8e89-076b8fc0f144} - SmartStore.Data - - - {210541AD-F659-47DA-8763-16F36C5CD2F4} - SmartStore.Services - - - {75fd4163-333c-4dd5-854d-2ef294e45d94} - SmartStore.Web.Framework - + + - - PreserveNewest - - - Designer - Always - - - Designer - Always - + + + - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + + + + - - 201403112350417_Initial.cs - + + - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - - - False - True - 51143 - / - http://localhost:56865/ - False - True - http://www.smartstore.net - False - - - - - - \ No newline at end of file + diff --git a/src/Plugins/SmartStore.WebApi/SmartStore.WebApi.csproj b/src/Plugins/SmartStore.WebApi/SmartStore.WebApi.csproj index 0c5eab97ec..6e60fbefba 100644 --- a/src/Plugins/SmartStore.WebApi/SmartStore.WebApi.csproj +++ b/src/Plugins/SmartStore.WebApi/SmartStore.WebApi.csproj @@ -27,7 +27,7 @@ Properties SmartStore.WebApi SmartStore.WebApi - v4.7.2 + net8.0 512 @@ -38,7 +38,6 @@ ..\..\ - true 4.0 @@ -381,10 +380,7 @@ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - diff --git a/src/Presentation/SmartStore.Web.Framework/SmartStore.Web.Framework.csproj b/src/Presentation/SmartStore.Web.Framework/SmartStore.Web.Framework.csproj index 3af5f9ff89..26b2ae3970 100644 --- a/src/Presentation/SmartStore.Web.Framework/SmartStore.Web.Framework.csproj +++ b/src/Presentation/SmartStore.Web.Framework/SmartStore.Web.Framework.csproj @@ -1,521 +1,37 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {75FD4163-333C-4DD5-854D-2EF294E45D94} - Library - Properties + net8.0 SmartStore.Web.Framework SmartStore.Web.Framework - v4.7.2 - 512 - - - - - - - - - - ..\..\ - true - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - bin\EFMigrations\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\PluginDev\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset + false + latest + disable + - - ..\..\packages\AdvancedStringBuilder.0.1.0\lib\net45\AdvancedStringBuilder.dll - - - False - ..\..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll - - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - - - ..\..\packages\Autofac.Mvc5.5.0.0\lib\net461\Autofac.Integration.Mvc.dll - - - ..\..\packages\Autofac.WebApi2.5.0.0\lib\net461\Autofac.Integration.WebApi.dll - - - ..\..\packages\AutoprefixerHost.1.1.10\lib\net45\AutoprefixerHost.dll - - - ..\..\packages\BundleTransformer.Autoprefixer.1.12.1\lib\net40\BundleTransformer.Autoprefixer.dll - - - ..\..\packages\BundleTransformer.Core.1.10.0\lib\net40\BundleTransformer.Core.dll - - - ..\..\packages\BundleTransformer.SassAndScss.1.12.1\lib\net40\BundleTransformer.SassAndScss.dll - - - ..\..\packages\CommonServiceLocator.2.0.5\lib\net47\CommonServiceLocator.dll - - - ..\..\packages\DotLiquid.2.0.254\lib\net45\DotLiquid.dll - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - True - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\packages\FluentValidation.7.4.0\lib\net45\FluentValidation.dll - - - ..\..\packages\JavaScriptEngineSwitcher.Core.3.3.0\lib\net45\JavaScriptEngineSwitcher.Core.dll - - - ..\..\packages\LibSassHost.1.2.6\lib\net471\LibSassHost.dll - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - ..\..\packages\Microsoft.OData.Core.6.15.0\lib\portable-net45+win+wpa81\Microsoft.OData.Core.dll - - - ..\..\packages\Microsoft.OData.Edm.6.15.0\lib\portable-net45+win+wpa81\Microsoft.OData.Edm.dll - - - ..\..\packages\Microsoft.Spatial.6.15.0\lib\portable-net45+win+wpa81\Microsoft.Spatial.dll - - - True - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - - ..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll - - - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - - ..\..\packages\Microsoft.AspNet.Cors.5.2.7\lib\net45\System.Web.Cors.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.Cors.5.2.7\lib\net45\System.Web.Http.Cors.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - ..\..\packages\Microsoft.AspNet.OData.5.10.0\lib\net45\System.Web.OData.dll - - - False - ..\..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - - - - False - ..\..\..\lib\Telerik\Telerik.Web.Mvc.dll - - - False - ..\..\packages\WebGrease.1.6.0\lib\WebGrease.dll - + + - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - Designer - - + + + - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - - - {210541ad-f659-47da-8763-16f36c5cd2f4} - SmartStore.Services - - - {ccd7f2c9-6a2c-4cf0-8e89-076b8fc0f144} - SmartStore.Data - + + - - - - - \ No newline at end of file + diff --git a/src/Presentation/SmartStore.Web/Administration/SmartStore.Admin.csproj b/src/Presentation/SmartStore.Web/Administration/SmartStore.Admin.csproj index 27cf819bdf..067917330e 100644 --- a/src/Presentation/SmartStore.Web/Administration/SmartStore.Admin.csproj +++ b/src/Presentation/SmartStore.Web/Administration/SmartStore.Admin.csproj @@ -1,1390 +1,29 @@ - - - + - Debug - AnyCPU - - - 2.0 - {152C761A-DD2E-4C1F-AF89-DFB2547A3BCA} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties + net8.0 SmartStore.Admin SmartStore.Admin - v4.7.2 - false - true - - - - - - - - - - - - - 4.0 - - - - - - ..\..\..\ - true - true - 1e5b888b - - + false + latest + disable - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - ..\bin\ - TRACE - prompt - 4 - false - - - - False - ..\..\..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll - False - - - ..\..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - - - ..\..\..\packages\Autofac.Mvc5.5.0.0\lib\net461\Autofac.Integration.Mvc.dll - - - ..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - True - - - ..\..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\..\packages\FluentValidation.7.4.0\lib\net45\FluentValidation.dll - - - ..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - False - ..\..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - False - - - False - ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\..\..\packages\Microsoft.Web.Xdt.3.0.0\lib\net40\Microsoft.Web.XmlTransform.dll - - - ..\..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\..\..\packages\NuGet.Core.2.14.0\lib\net40-Client\NuGet.Core.dll - - - False - ..\..\..\..\lib\SmartStore.Licensing\SmartStore.Licensing.dll - True - - - - - - - - ..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll - - - ..\..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - - - - - - ..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - - - - - - - - ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - ..\..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - False - ..\..\..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll - False - - - ..\..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - - ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - ..\..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - - - - ..\..\..\..\lib\Telerik\Telerik.Web.Mvc.dll - False - - - False - ..\..\..\packages\WebGrease.1.6.0\lib\WebGrease.dll - False - - - - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - - - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - False - - - {CCD7F2C9-6A2C-4CF0-8E89-076B8FC0F144} - SmartStore.Data - False - - - {210541ad-f659-47da-8763-16f36c5cd2f4} - SmartStore.Services - False - - - {75fd4163-333c-4dd5-854d-2ef294e45d94} - SmartStore.Web.Framework - False - - - - - - - - - - - - - - - - - Designer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + - + + + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - 0 - - - - - - - - - - - - - False - True - 43797 - / - - - False - True - http://www.smartstore.net - False - - - - - - - - - - - \ No newline at end of file + diff --git a/src/Presentation/SmartStore.Web/SmartStore.Web.csproj b/src/Presentation/SmartStore.Web/SmartStore.Web.csproj index c96f601e5a..7b974f672c 100644 --- a/src/Presentation/SmartStore.Web/SmartStore.Web.csproj +++ b/src/Presentation/SmartStore.Web/SmartStore.Web.csproj @@ -1,2170 +1,37 @@ - - - - - - - - + - Debug - AnyCPU - - - 2.0 - {4F1F649C-1020-45BE-A487-F416D9297FF3} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties + net8.0 SmartStore.Web SmartStore.Web - v4.7.2 - false - true - - - - - - - - - - - - - 4.0 - - ..\..\ - true - - - - - - - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - latest - false - AnyCPU - AllFilesInProjectFolder - - - pdbonly - true - bin\ - TRACE - prompt - 4 + false latest - false - AllFilesInProjectFolder - false - false - AnyCPU + disable + - - ..\..\packages\AdvancedStringBuilder.0.1.0\lib\net45\AdvancedStringBuilder.dll - - - False - ..\..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll - - - ..\..\packages\Autofac.5.2.0\lib\net461\Autofac.dll - - - ..\..\packages\Autofac.Mvc5.5.0.0\lib\net461\Autofac.Integration.Mvc.dll - - - ..\..\packages\AutoprefixerHost.1.1.10\lib\net45\AutoprefixerHost.dll - - - ..\..\packages\BundleTransformer.Autoprefixer.1.12.1\lib\net40\BundleTransformer.Autoprefixer.dll - - - ..\..\packages\BundleTransformer.Core.1.10.0\lib\net40\BundleTransformer.Core.dll - - - ..\..\packages\BundleTransformer.JsMin.1.12.6\lib\net40\BundleTransformer.JsMin.dll - - - ..\..\packages\BundleTransformer.NUglify.1.12.16\lib\net40\BundleTransformer.NUglify.dll - - - ..\..\packages\BundleTransformer.SassAndScss.1.12.1\lib\net40\BundleTransformer.SassAndScss.dll - - - ..\..\packages\JavaScriptEngineSwitcher.V8.3.5.5\lib\net45\ClearScript.dll - - - ..\..\packages\DouglasCrockford.JsMin.2.1.0\lib\net45\DouglasCrockford.JsMin.dll - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll - True - - - ..\..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - True - - - ..\..\packages\EntityFramework.SqlServerCompact.6.4.4\lib\net45\EntityFramework.SqlServerCompact.dll - True - - - ..\..\packages\FluentValidation.7.4.0\lib\net45\FluentValidation.dll - - - ..\..\packages\FluentValidation.Mvc5.7.4.0\lib\net45\FluentValidation.Mvc.dll - - - ..\..\packages\JavaScriptEngineSwitcher.Core.3.3.0\lib\net45\JavaScriptEngineSwitcher.Core.dll - - - ..\..\packages\JavaScriptEngineSwitcher.Msie.3.4.3\lib\net45\JavaScriptEngineSwitcher.Msie.dll - - - ..\..\packages\JavaScriptEngineSwitcher.V8.3.5.5\lib\net45\JavaScriptEngineSwitcher.V8.dll - - - ..\..\packages\LibSassHost.1.2.6\lib\net471\LibSassHost.dll - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - - - ..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - - True - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\..\packages\MsieJavaScriptEngine.3.0.7\lib\net45\MsieJavaScriptEngine.dll - - - ..\..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\..\packages\NUglify.1.6.4\lib\net40\NUglify.dll - - - ..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - - ..\..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - - - - - True - ..\..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll - - - ..\..\packages\System.Diagnostics.DiagnosticSource.6.0.0\lib\net461\System.Diagnostics.DiagnosticSource.dll - - - - ..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - - - - ..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll - - - - - - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - - - ..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - False - ..\..\packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - - - - False - ..\..\..\lib\Telerik\Telerik.Web.Mvc.dll - True - - - False - ..\..\packages\WebGrease.1.6.0\lib\WebGrease.dll - - - - - - Properties\AssemblySharedInfo.cs - - - Properties\AssemblyVersionInfo.cs - - - True - True - EditorLocalization.de.resx - - - True - True - EditorLocalization.resx - - - True - True - GridLocalization.de.resx - - - True - True - GridLocalization.resx - - - True - True - MvcLocalization.resx - - - True - True - MvcLocalization.de.resx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Global.asax - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - Designer - - - - - Designer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ResXFileCodeGenerator - MvcLocalization.de.Designer.cs - Designer - - - Designer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - Designer - - - - - Designer - - - Designer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - Web.config - Designer - - - Web.config - Designer - - - - - - True - True - .\output - True - True - Nested - False - - - Designer - - - - Designer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Web.config - - - Web.config - - - - - - - - - {6bda8332-939f-45b7-a25e-7a797260ae59} - SmartStore.Core - - - {ccd7f2c9-6a2c-4cf0-8e89-076b8fc0f144} - SmartStore.Data - - - {210541ad-f659-47da-8763-16f36c5cd2f4} - SmartStore.Services - - - {75fd4163-333c-4dd5-854d-2ef294e45d94} - SmartStore.Web.Framework - - - - - - Designer - + + + + + + + + + - - Designer - + + + + - - GlobalResourceProxyGenerator - EditorLocalization.de.designer.cs - - - GlobalResourceProxyGenerator - EditorLocalization.designer.cs - - - GlobalResourceProxyGenerator - GridLocalization.de.designer.cs - Designer - - - GlobalResourceProxyGenerator - GridLocalization.designer.cs - Designer - + + + - - GlobalResourceProxyGenerator - MvcLocalization.Designer.cs - + + - - - Config\log4net.config - False - $(TransformWebConfigIntermediateLocation)\original - Config\log4net.$(Configuration).config - $(TransformWebConfigIntermediateLocation)\original - $(TransformWebConfigIntermediateLocation)\original\%(DestinationRelativePath) - $(TransformWebConfigIntermediateLocation)\transformed\%(DestinationRelativePath) - $(_PackageTempDir)\%(DestinationRelativePath) - Designer - - - log4net.config - - - log4net.config - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - false - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - true - bin\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - True - - - - - - - - **\*.cs; - **\*.orig; - **\*.bak; - **\*.log; - **\*.csproj; - **\*.csproj.user; - **\*.DotSettings.user; - **\packages.config; - **\*.Debug.config; - **\*.Release.config; - **\*.PluginDev.config; - **\*.EFMigrations.config; - **\obj\**; - **\bin\*.xml; - App_Data\Licenses.lic; - App_Data\Settings.txt; - App_Data\InstalledPlugins.txt; - App_Data\SmartStore.Db.sdf; - Plugins\*\bin\**; - Themes\*\Content\compiled\**; - - - x64; - x86; - roslyn; - bin\da; bin\fi; bin\ja; bin\ko; bin\mk; bin\nl; bin\pt; bin\no; bin\pl; bin\pl; bin\ru-ru; bin\sv; bin\tr; bin\uk; bin\zh-CHS; bin\zh-Hans; bin\zh-Hant; - Exchange; - Media; - Properties; - App_Data\_Backup; - App_Data\_temp; - App_Data\Tenants; - App_Data\Migrations; - App_Data\Logs; - bin\HostRestart; - Administration\bin; - Content\Images\Thumbs; - - - - - - - Project - false - - - - - - - - - - - - - - - - - - - - $(ProjectDir)bin\roslyn\ - - - - - - - - $(ProjectDir)Content\placeholder.txt - - - - - - - - - - - - - - Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - - - - - - - \ No newline at end of file + diff --git a/src/Tests/SmartStore.Core.Tests/SmartStore.Core.Tests.csproj b/src/Tests/SmartStore.Core.Tests/SmartStore.Core.Tests.csproj index 2570481131..85724df10e 100644 --- a/src/Tests/SmartStore.Core.Tests/SmartStore.Core.Tests.csproj +++ b/src/Tests/SmartStore.Core.Tests/SmartStore.Core.Tests.csproj @@ -10,7 +10,7 @@ Properties SmartStore.Core.Tests SmartStore.Core.Tests - v4.7.2 + net8.0 512 @@ -22,7 +22,6 @@ ..\..\ - true true @@ -155,7 +154,6 @@ -