在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → SimplCommerce:基于.NET Core的简易跨平台模块化电商系统

SimplCommerce:基于.NET Core的简易跨平台模块化电商系统

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:18.88M
  • 下载次数:0
  • 浏览次数:70
  • 发布时间:2024-02-07
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
SimplCommerce是一个采用.NET Core技术构建的简易、跨平台、模块化电子商务系统。它具有高级架构设计,支持多平台部署,包括Windows、Linux和MacOS。

主要技术和框架:
  • ASP.NET MVC Core 6.0
  • Entity Framework Core 6.0
  • ASP.NET Identity Core 6.0
  • Angular 1.6.3
  • MediatR 7.0.0 用于领域事件

如何运行:
对于使用Visual Studio 2022和SQL Server的用户:
  1. 更新SimplCommerce.WebHost中appsettings.json的连接字符串。
  2. 构建整个解决方案。
  3. 在解决方案资源管理器中,确保选择SimplCommerce.WebHost作为启动项目。
  4. 打开包管理器控制台窗口,确保SimplCommerce.WebHost被选为默认项目。然后输入'Update-Database'并按'Enter'键,此操作将创建数据库架构。
  5. 在Visual Studio中,按'Control F5'。
对于Mac/Linux用户,如果使用PostgreSQL:
  1. 更新SimplCommerce.WebHost中appsettings.json的连接字符串。
  2. 运行simpl-build.sh文件,输入命令'sudo ./simpl-build.sh'。
  3. 在终端中,导航到'src/SimplCommerce.WebHost'并输入'dotnet run',然后按'Enter'键。

通过访问/Admin页面并使用内置账号admin@simplcommerce.com, 1qazZAQ!可以进入后台管理界面。


【实例截图】
【核心代码】
文件清单
└── SimplCommerce-7fb6d40774ca90fde707453b5878c5838f9bc4ca
    ├── CODE_OF_CONDUCT.md
    ├── CONTRIBUTING.md
    ├── Delete-BIN-OBJ-Folders.bat
    ├── Dockerfile
    ├── Dockerfile-sqlite
    ├── License.txt
    ├── README.md
    ├── SECURITY.md
    ├── Settings.StyleCop
    ├── SimplCommerce.sln
    ├── StaticData-RO.sql
    ├── aws-beanstalk
    │   ├── Dockerfile
    │   ├── ebapp
    │   │   └── Dockerrun.aws.json
    │   └── simplcommerce-eb.zip
    ├── azure-pipelines.yml
    ├── build
    │   ├── SimplCommerce.Build.sln
    │   ├── SimplCommerce.MSBuildTasks
    │   │   ├── CopyModuleTask.cs
    │   │   ├── Module.cs
    │   │   ├── ModuleManifest.cs
    │   │   └── SimplCommerce.MSBuildTasks.csproj
    │   ├── net46
    │   │   ├── Microsoft.Build.Framework.dll
    │   │   ├── Microsoft.Build.Utilities.Core.dll
    │   │   ├── Microsoft.VisualStudio.Setup.Configuration.Interop.dll
    │   │   ├── SimplCommerce.MSBuildTasks.dll
    │   │   ├── System.Collections.Immutable.dll
    │   │   └── System.Runtime.InteropServices.RuntimeInformation.dll
    │   └── netcoreapp2.0
    │       ├── SimplCommerce.MSBuildTasks.deps.json
    │       └── SimplCommerce.MSBuildTasks.dll
    ├── docker-entrypoint.sh
    ├── global.json
    ├── jshint.option.xml
    ├── miscellaneous
    │   ├── Icon.png
    │   ├── Icon.psd
    │   └── Logo_SimplCommerce.psd
    ├── modular-architecture.png
    ├── run-tests.ps1
    ├── run-tests.sh
    ├── simpl-build.sh
    ├── src
    │   ├── Database
    │   │   ├── Countries.sql
    │   │   ├── MySql
    │   │   │   └── StaticData-GB.sql
    │   │   ├── StaticData-BR-Address.sql
    │   │   ├── StaticData-BR.sql
    │   │   ├── StaticData-CN.sql
    │   │   ├── StaticData-DE.sql
    │   │   ├── StaticData-DefaultLocalization.sql
    │   │   ├── StaticData-ES.sql
    │   │   ├── StaticData-FR.sql
    │   │   ├── StaticData-GB.sql
    │   │   ├── StaticData-IR.sql
    │   │   ├── StaticData-KR.sql
    │   │   ├── StaticData-RU.sql
    │   │   ├── StaticData-TN.sql
    │   │   ├── StaticData-TR.sql
    │   │   ├── StaticData-UA.sql
    │   │   ├── StaticData-US.sql
    │   │   └── StaticData-VN.sql
    │   ├── Modules
    │   │   ├── Directory.Build.props
    │   │   ├── SimplCommerce.Module.ActivityLog
    │   │   │   ├── Areas
    │   │   │   │   └── ActivityLog
    │   │   │   │       └── Controllers
    │   │   │   │           └── MostViewedEntityController.cs
    │   │   │   ├── Data
    │   │   │   │   ├── ActivityLogCustomModelBuilder.cs
    │   │   │   │   ├── ActivityRepository.cs
    │   │   │   │   └── IActivityTypeRepository.cs
    │   │   │   ├── Events
    │   │   │   │   └── EntityViewedHandler.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Activity.cs
    │   │   │   │   ├── ActivityType.cs
    │   │   │   │   └── MostViewEntityDto.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.ActivityLog.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── activitylog-service.js
    │   │   │           ├── activitylog.module.js
    │   │   │           ├── most-viewed-products.directive.html
    │   │   │           └── most-viewed-products.directive.js
    │   │   ├── SimplCommerce.Module.Catalog
    │   │   │   ├── Areas
    │   │   │   │   └── Catalog
    │   │   │   │       ├── Components
    │   │   │   │       │   ├── CategoryBreadcrumbViewComponent.cs
    │   │   │   │       │   ├── CategoryMenuViewComponent.cs
    │   │   │   │       │   ├── CategoryWidgetViewComponent.cs
    │   │   │   │       │   ├── ProductWidgetViewComponent.cs
    │   │   │   │       │   └── SimpleProductWidgetViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── BrandApiController.cs
    │   │   │   │       │   ├── BrandController.cs
    │   │   │   │       │   ├── CategoryApiController.cs
    │   │   │   │       │   ├── CategoryController.cs
    │   │   │   │       │   ├── CategoryTranslationApiController.cs
    │   │   │   │       │   ├── CategoryWidgetApiController.cs
    │   │   │   │       │   ├── ProductApiController.cs
    │   │   │   │       │   ├── ProductAttributeApiController.cs
    │   │   │   │       │   ├── ProductAttributeGroupApiController.cs
    │   │   │   │       │   ├── ProductCloneApiController.cs
    │   │   │   │       │   ├── ProductController.cs
    │   │   │   │       │   ├── ProductOptionApiController.cs
    │   │   │   │       │   ├── ProductPriceApiController.cs
    │   │   │   │       │   ├── ProductTemplateApiController.cs
    │   │   │   │       │   ├── ProductTranslationApiController.cs
    │   │   │   │       │   ├── ProductWidgetApiController.cs
    │   │   │   │       │   └── SimpleProductWidgetApiController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── BrandForm.cs
    │   │   │   │       │   ├── BrandVm.cs
    │   │   │   │       │   ├── CategoryForm.cs
    │   │   │   │       │   ├── CategoryListItem.cs
    │   │   │   │       │   ├── CategoryMenuItem.cs
    │   │   │   │       │   ├── CategoryThumbnail.cs
    │   │   │   │       │   ├── CategoryTranslationForm.cs
    │   │   │   │       │   ├── CategoryWidgetComponentVm.cs
    │   │   │   │       │   ├── CategoryWidgetForm.cs
    │   │   │   │       │   ├── CategoryWidgetSettings.cs
    │   │   │   │       │   ├── FilterBrand.cs
    │   │   │   │       │   ├── FilterCategory.cs
    │   │   │   │       │   ├── FilterOption.cs
    │   │   │   │       │   ├── FilterPrice.cs
    │   │   │   │       │   ├── ProductAttributeFormVm.cs
    │   │   │   │       │   ├── ProductAttributeGroupFormVm.cs
    │   │   │   │       │   ├── ProductAttributeVm.cs
    │   │   │   │       │   ├── ProductCategoryForm.cs
    │   │   │   │       │   ├── ProductCloneFormVm.cs
    │   │   │   │       │   ├── ProductDetail.cs
    │   │   │   │       │   ├── ProductDetailAttribute.cs
    │   │   │   │       │   ├── ProductDetailCategory.cs
    │   │   │   │       │   ├── ProductDetailOption.cs
    │   │   │   │       │   ├── ProductDetailVariation.cs
    │   │   │   │       │   ├── ProductDetailVariationOption.cs
    │   │   │   │       │   ├── ProductForm.cs
    │   │   │   │       │   ├── ProductLinkVm.cs
    │   │   │   │       │   ├── ProductListItem.cs
    │   │   │   │       │   ├── ProductMediaVm.cs
    │   │   │   │       │   ├── ProductOptionCombinationVm.cs
    │   │   │   │       │   ├── ProductOptionDisplay.cs
    │   │   │   │       │   ├── ProductOptionFormVm.cs
    │   │   │   │       │   ├── ProductOptionValueVm.cs
    │   │   │   │       │   ├── ProductOptionVm.cs
    │   │   │   │       │   ├── ProductPriceItemForm.cs
    │   │   │   │       │   ├── ProductTemplateFrom.cs
    │   │   │   │       │   ├── ProductThumbnail.cs
    │   │   │   │       │   ├── ProductTranslationForm.cs
    │   │   │   │       │   ├── ProductVariationVm.cs
    │   │   │   │       │   ├── ProductVm.cs
    │   │   │   │       │   ├── ProductWidgetComponentVm.cs
    │   │   │   │       │   ├── ProductWidgetForm.cs
    │   │   │   │       │   ├── ProductWidgetOrderBy.cs
    │   │   │   │       │   ├── ProductWidgetSetting.cs
    │   │   │   │       │   ├── ProductsByBrand.cs
    │   │   │   │       │   ├── ProductsByCategory.cs
    │   │   │   │       │   ├── SearchOption.cs
    │   │   │   │       │   ├── SimpleProductWidgetComponentVm.cs
    │   │   │   │       │   ├── SimpleProductWidgetForm.cs
    │   │   │   │       │   └── SimpleProductWidgetSetting.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Brand
    │   │   │   │           │   └── BrandDetail.cshtml
    │   │   │   │           ├── Category
    │   │   │   │           │   └── CategoryDetail.cshtml
    │   │   │   │           ├── Product
    │   │   │   │           │   ├── ProductDetail.cshtml
    │   │   │   │           │   └── ProductOverview.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   ├── Components
    │   │   │   │           │   │   ├── CategoryBreadcrumb
    │   │   │   │           │   │   │   └── Default.cshtml
    │   │   │   │           │   │   ├── CategoryMenu
    │   │   │   │           │   │   │   └── Default.cshtml
    │   │   │   │           │   │   ├── CategoryWidget
    │   │   │   │           │   │   │   └── Default.cshtml
    │   │   │   │           │   │   ├── ProductWidget
    │   │   │   │           │   │   │   └── Default.cshtml
    │   │   │   │           │   │   └── SimpleProductWidget
    │   │   │   │           │   │       └── Default.cshtml
    │   │   │   │           │   └── _ProductThumbnail.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   ├── CatalogCustomModelBuilder.cs
    │   │   │   │   ├── IProductTemplateProductAttributeRepository.cs
    │   │   │   │   └── ProductTemplateProductAttributeRepository.cs
    │   │   │   ├── Events
    │   │   │   │   └── ReviewSummaryChangedHandler.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Brand.cs
    │   │   │   │   ├── CalculatedProductPrice.cs
    │   │   │   │   ├── Category.cs
    │   │   │   │   ├── Product.cs
    │   │   │   │   ├── ProductAttribute.cs
    │   │   │   │   ├── ProductAttributeGroup.cs
    │   │   │   │   ├── ProductAttributeValue.cs
    │   │   │   │   ├── ProductCategory.cs
    │   │   │   │   ├── ProductLink.cs
    │   │   │   │   ├── ProductLinkType.cs
    │   │   │   │   ├── ProductMedia.cs
    │   │   │   │   ├── ProductOption.cs
    │   │   │   │   ├── ProductOptionCombination.cs
    │   │   │   │   ├── ProductOptionValue.cs
    │   │   │   │   ├── ProductPriceHistory.cs
    │   │   │   │   ├── ProductTemplate.cs
    │   │   │   │   └── ProductTemplateProductAttribute.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── BrandService.cs
    │   │   │   │   ├── CategoryService.cs
    │   │   │   │   ├── IBrandService.cs
    │   │   │   │   ├── ICategoryService.cs
    │   │   │   │   ├── IProductPricingService.cs
    │   │   │   │   ├── IProductService.cs
    │   │   │   │   ├── ProductPricingService.cs
    │   │   │   │   └── ProductService.cs
    │   │   │   ├── SimplCommerce.Module.Catalog.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       ├── admin
    │   │   │       │   ├── brand
    │   │   │       │   │   ├── brand-form.html
    │   │   │       │   │   ├── brand-form.js
    │   │   │       │   │   ├── brand-list.html
    │   │   │       │   │   ├── brand-list.js
    │   │   │       │   │   └── brand-service.js
    │   │   │       │   ├── catalog.module.js
    │   │   │       │   ├── category
    │   │   │       │   │   ├── category-form.html
    │   │   │       │   │   ├── category-form.js
    │   │   │       │   │   ├── category-list.html
    │   │   │       │   │   ├── category-list.js
    │   │   │       │   │   ├── category-service.js
    │   │   │       │   │   ├── category-translation-form.html
    │   │   │       │   │   └── category-translation-form.js
    │   │   │       │   ├── category-widget
    │   │   │       │   │   ├── category-widget-form.html
    │   │   │       │   │   ├── category-widget-form.js
    │   │   │       │   │   └── category-widget-service.js
    │   │   │       │   ├── product
    │   │   │       │   │   ├── product-form.html
    │   │   │       │   │   ├── product-form.js
    │   │   │       │   │   ├── product-list.html
    │   │   │       │   │   ├── product-list.js
    │   │   │       │   │   ├── product-option-display-directive.html
    │   │   │       │   │   ├── product-option-display-directive.js
    │   │   │       │   │   ├── product-selection-directive.html
    │   │   │       │   │   ├── product-selection-directive.js
    │   │   │       │   │   ├── product-service.js
    │   │   │       │   │   ├── product-translation-form.html
    │   │   │       │   │   └── product-translation-form.js
    │   │   │       │   ├── product-attribute
    │   │   │       │   │   ├── product-attribute-form.html
    │   │   │       │   │   ├── product-attribute-form.js
    │   │   │       │   │   ├── product-attribute-list.html
    │   │   │       │   │   ├── product-attribute-list.js
    │   │   │       │   │   └── product-attribute-service.js
    │   │   │       │   ├── product-attribute-group
    │   │   │       │   │   ├── product-attribute-group-form.html
    │   │   │       │   │   ├── product-attribute-group-form.js
    │   │   │       │   │   ├── product-attribute-group-list.html
    │   │   │       │   │   ├── product-attribute-group-list.js
    │   │   │       │   │   └── product-attribute-group-service.js
    │   │   │       │   ├── product-clone
    │   │   │       │   │   ├── product-clone-form.html
    │   │   │       │   │   ├── product-clone-form.js
    │   │   │       │   │   └── product-clone-service.js
    │   │   │       │   ├── product-option
    │   │   │       │   │   ├── product-option-form.html
    │   │   │       │   │   ├── product-option-form.js
    │   │   │       │   │   ├── product-option-list.html
    │   │   │       │   │   ├── product-option-list.js
    │   │   │       │   │   └── product-option-service.js
    │   │   │       │   ├── product-price
    │   │   │       │   │   ├── product-price-form.html
    │   │   │       │   │   ├── product-price-form.js
    │   │   │       │   │   └── product-price-service.js
    │   │   │       │   ├── product-template
    │   │   │       │   │   ├── product-template-form.html
    │   │   │       │   │   ├── product-template-form.js
    │   │   │       │   │   ├── product-template-list.html
    │   │   │       │   │   ├── product-template-list.js
    │   │   │       │   │   └── product-template-service.js
    │   │   │       │   ├── product-widget
    │   │   │       │   │   ├── product-widget-form.html
    │   │   │       │   │   ├── product-widget-form.js
    │   │   │       │   │   └── product-widget-service.js
    │   │   │       │   └── simple-product-widget
    │   │   │       │       ├── simple-product-widget-form.html
    │   │   │       │       ├── simple-product-widget-form.js
    │   │   │       │       └── simple-product-widget-service.js
    │   │   │       ├── product-detail.css
    │   │   │       ├── product-detail.js
    │   │   │       ├── product-filter.js
    │   │   │       └── product-overview.js
    │   │   ├── SimplCommerce.Module.Checkouts
    │   │   │   ├── Areas
    │   │   │   │   └── Checkouts
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── CheckoutController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── AddressFormVm.cs
    │   │   │   │       │   ├── CartItemToCheckoutVm.cs
    │   │   │   │       │   ├── CheckoutFormVm.cs
    │   │   │   │       │   ├── CheckoutItemVm.cs
    │   │   │   │       │   ├── CheckoutItemWithTaxVm.cs
    │   │   │   │       │   ├── CheckoutTaxAndShippingPriceVm.cs
    │   │   │   │       │   ├── CheckoutVm.cs
    │   │   │   │       │   ├── DeliveryInformationVm.cs
    │   │   │   │       │   ├── ShippingAddressVm.cs
    │   │   │   │       │   └── TaxAndShippingPriceRequestVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Checkout
    │   │   │   │           │   ├── Error.cshtml
    │   │   │   │           │   ├── Shipping.cshtml
    │   │   │   │           │   └── Success.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Models
    │   │   │   │   ├── Checkout.cs
    │   │   │   │   └── CheckoutItem.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── CheckoutService.cs
    │   │   │   │   └── ICheckoutService.cs
    │   │   │   ├── SimplCommerce.Module.Checkouts.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.Cms
    │   │   │   ├── Areas
    │   │   │   │   └── Cms
    │   │   │   │       ├── Components
    │   │   │   │       │   ├── CarouselWidgetViewComponent.cs
    │   │   │   │       │   ├── MenuViewComponent.cs
    │   │   │   │       │   └── SpaceBarWidgetViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CarouselWidgetApiController.cs
    │   │   │   │       │   ├── HtmlWidgetApiController.cs
    │   │   │   │       │   ├── MenuApiController.cs
    │   │   │   │       │   ├── PageApiController.cs
    │   │   │   │       │   ├── PageController.cs
    │   │   │   │       │   ├── PageTranslationApiController.cs
    │   │   │   │       │   └── SpaceBarWidgetApiContorller.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── CarouselWidgetForm.cs
    │   │   │   │       │   ├── CarouselWidgetItemForm.cs
    │   │   │   │       │   ├── CarouselWidgetViewComponentItemVm.cs
    │   │   │   │       │   ├── CarouselWidgetViewComponentVm.cs
    │   │   │   │       │   ├── HtmlWidgetForm.cs
    │   │   │   │       │   ├── MenuForm.cs
    │   │   │   │       │   ├── MenuItemForm.cs
    │   │   │   │       │   ├── MenuItemVm.cs
    │   │   │   │       │   ├── PageForm.cs
    │   │   │   │       │   ├── PageTranslationForm.cs
    │   │   │   │       │   ├── PageVm.cs
    │   │   │   │       │   ├── SpaceBarWidgetComponentVm.cs
    │   │   │   │       │   ├── SpaceBarWidgetForm.cs
    │   │   │   │       │   └── SpaceBarWidgetSetting.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Page
    │   │   │   │           │   └── PageDetail.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       ├── CarouselWidget
    │   │   │   │           │       │   └── Default.cshtml
    │   │   │   │           │       ├── Menu
    │   │   │   │           │       │   └── Default.cshtml
    │   │   │   │           │       └── SpaceBarWidget
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── CmsCustomModelBuilder.cs
    │   │   │   ├── Events
    │   │   │   │   └── EntityDeletingHandler.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Menu.cs
    │   │   │   │   ├── MenuItem.cs
    │   │   │   │   └── Page.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── IPageService.cs
    │   │   │   │   └── PageService.cs
    │   │   │   ├── SimplCommerce.Module.Cms.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── carousel-widget
    │   │   │           │   ├── carousel-widget-form.html
    │   │   │           │   ├── carousel-widget-form.js
    │   │   │           │   └── carousel-widget-service.js
    │   │   │           ├── cms.module.js
    │   │   │           ├── html-widget
    │   │   │           │   ├── html-widget-form.html
    │   │   │           │   ├── html-widget-form.js
    │   │   │           │   └── html-widget-service.js
    │   │   │           ├── menu
    │   │   │           │   ├── menu-form-create.html
    │   │   │           │   ├── menu-form-create.js
    │   │   │           │   ├── menu-form.html
    │   │   │           │   ├── menu-form.js
    │   │   │           │   ├── menu-list.html
    │   │   │           │   ├── menu-list.js
    │   │   │           │   └── menu-service.js
    │   │   │           ├── page
    │   │   │           │   ├── page-form.html
    │   │   │           │   ├── page-form.js
    │   │   │           │   ├── page-list.html
    │   │   │           │   ├── page-list.js
    │   │   │           │   ├── page-service.js
    │   │   │           │   ├── page-translation-form.html
    │   │   │           │   └── page-translation-form.js
    │   │   │           └── spacebar-widget
    │   │   │               ├── spacebar-widget-form.html
    │   │   │               ├── spacebar-widget-form.js
    │   │   │               └── spacebar-widget-service.js
    │   │   ├── SimplCommerce.Module.Comments
    │   │   │   ├── Areas
    │   │   │   │   └── Comments
    │   │   │   │       ├── Components
    │   │   │   │       │   └── CommentViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CommentApiController.cs
    │   │   │   │       │   └── CommentController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── CommentForm.cs
    │   │   │   │       │   ├── CommentItem.cs
    │   │   │   │       │   └── CommentVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── Comment
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   ├── CommentModelBuilder.cs
    │   │   │   │   ├── CommentRepository.cs
    │   │   │   │   └── ICommentRepository.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Comment.cs
    │   │   │   │   ├── CommentListItemDto.cs
    │   │   │   │   └── CommentStatus.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.Comments.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       ├── admin
    │   │   │       │   ├── comment
    │   │   │       │   │   ├── comment-list.html
    │   │   │       │   │   ├── comment-list.js
    │   │   │       │   │   └── comment-service.js
    │   │   │       │   └── comments.module.js
    │   │   │       ├── comment-service.js
    │   │   │       ├── comment.css
    │   │   │       └── comment.js
    │   │   ├── SimplCommerce.Module.Contacts
    │   │   │   ├── Areas
    │   │   │   │   └── Contacts
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── ContactApiController.cs
    │   │   │   │       │   ├── ContactAreaApiController.cs
    │   │   │   │       │   ├── ContactAreaTranslationApiController.cs
    │   │   │   │       │   └── ContactController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── CompanyInformation.cs
    │   │   │   │       │   ├── ContactAreaForm.cs
    │   │   │   │       │   ├── ContactAreaTranslationForm.cs
    │   │   │   │       │   ├── ContactAreaVm.cs
    │   │   │   │       │   ├── ContactForm.cs
    │   │   │   │       │   └── ContactVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Contact
    │   │   │   │           │   ├── Index.cshtml
    │   │   │   │           │   └── SubmitContactResult.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── ContactCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Contact.cs
    │   │   │   │   └── ContactArea.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.Contacts.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       ├── admin
    │   │   │       │   ├── contact-area
    │   │   │       │   │   ├── contact-area-form.html
    │   │   │       │   │   ├── contact-area-form.js
    │   │   │       │   │   ├── contact-area-list.html
    │   │   │       │   │   ├── contact-area-list.js
    │   │   │       │   │   ├── contact-area-service.js
    │   │   │       │   │   ├── contact-area-translation-form.html
    │   │   │       │   │   └── contact-area-translation-form.js
    │   │   │       │   ├── contacts
    │   │   │       │   │   ├── contact-list.html
    │   │   │       │   │   ├── contact-list.js
    │   │   │       │   │   ├── contact-service.js
    │   │   │       │   │   ├── contact.html
    │   │   │       │   │   └── contact.js
    │   │   │       │   └── contacts.module.js
    │   │   │       └── init-google-map.js
    │   │   ├── SimplCommerce.Module.Core
    │   │   │   ├── Areas
    │   │   │   │   └── Core
    │   │   │   │       ├── Components
    │   │   │   │       │   └── DefaultShippingAddressViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── AccountController.cs
    │   │   │   │       │   ├── AppSettingApiController.cs
    │   │   │   │       │   ├── CommonApiController.cs
    │   │   │   │       │   ├── CountryApiController.cs
    │   │   │   │       │   ├── CustomerGroupApiController.cs
    │   │   │   │       │   ├── DashboardController.cs
    │   │   │   │       │   ├── DistrictApiController.cs
    │   │   │   │       │   ├── EntityApiController.cs
    │   │   │   │       │   ├── EntityTypeApiController.cs
    │   │   │   │       │   ├── HomeAdminController.cs
    │   │   │   │       │   ├── HomeController.cs
    │   │   │   │       │   ├── ManageController.cs
    │   │   │   │       │   ├── RoleApiController.cs
    │   │   │   │       │   ├── StateOrProvinceApiController.cs
    │   │   │   │       │   ├── ThemeApiController.cs
    │   │   │   │       │   ├── UserAddressController.cs
    │   │   │   │       │   ├── UserApiController.cs
    │   │   │   │       │   ├── WidgetApiController.cs
    │   │   │   │       │   ├── WidgetInstanceApiController.cs
    │   │   │   │       │   └── WidgetZoneApiController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── Account
    │   │   │   │       │   │   ├── ExternalLoginConfirmationViewModel.cs
    │   │   │   │       │   │   ├── ForgotPasswordViewModel.cs
    │   │   │   │       │   │   ├── LoginViewModel.cs
    │   │   │   │       │   │   ├── RegisterViewModel.cs
    │   │   │   │       │   │   ├── ResetPasswordViewModel.cs
    │   │   │   │       │   │   ├── SendCodeViewModel.cs
    │   │   │   │       │   │   └── VerifyCodeViewModel.cs
    │   │   │   │       │   ├── AppSettingVm.cs
    │   │   │   │       │   ├── BreadcrumbViewModel.cs
    │   │   │   │       │   ├── CountryForm.cs
    │   │   │   │       │   ├── CustomerGroupForm.cs
    │   │   │   │       │   ├── HomeViewModel.cs
    │   │   │   │       │   ├── Manage
    │   │   │   │       │   │   ├── AddPhoneNumberViewModel.cs
    │   │   │   │       │   │   ├── ChangePasswordViewModel.cs
    │   │   │   │       │   │   ├── ConfigureTwoFactorViewModel.cs
    │   │   │   │       │   │   ├── DefaultAddressViewComponentVm.cs
    │   │   │   │       │   │   ├── FactorViewModel.cs
    │   │   │   │       │   │   ├── IndexViewModel.cs
    │   │   │   │       │   │   ├── ManageLoginsViewModel.cs
    │   │   │   │       │   │   ├── RemoveLoginViewModel.cs
    │   │   │   │       │   │   ├── SetPasswordViewModel.cs
    │   │   │   │       │   │   ├── UserInfoVm.cs
    │   │   │   │       │   │   ├── UserSettingViewModel.cs
    │   │   │   │       │   │   └── VerifyPhoneNumberViewModel.cs
    │   │   │   │       │   ├── MediaViewModel.cs
    │   │   │   │       │   ├── ProjectDetailsVm.cs
    │   │   │   │       │   ├── ProjectItemVm.cs
    │   │   │   │       │   ├── StateOrProvinceForm.cs
    │   │   │   │       │   ├── ThemeListItem.cs
    │   │   │   │       │   ├── UserAddressFormViewModel.cs
    │   │   │   │       │   ├── UserAddressListItem.cs
    │   │   │   │       │   ├── UserForm.cs
    │   │   │   │       │   ├── UserSearchOption.cs
    │   │   │   │       │   ├── WidgetFormBase.cs
    │   │   │   │       │   └── WidgetInstanceViewModel.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Account
    │   │   │   │           │   ├── AccessDenied.cshtml
    │   │   │   │           │   ├── ConfirmEmail.cshtml
    │   │   │   │           │   ├── ExternalLoginConfirmation.cshtml
    │   │   │   │           │   ├── ExternalLoginFailure.cshtml
    │   │   │   │           │   ├── ForgotPassword.cshtml
    │   │   │   │           │   ├── ForgotPasswordConfirmation.cshtml
    │   │   │   │           │   ├── Lockout.cshtml
    │   │   │   │           │   ├── Login.cshtml
    │   │   │   │           │   ├── Register.cshtml
    │   │   │   │           │   ├── ResetPassword.cshtml
    │   │   │   │           │   ├── ResetPasswordConfirmation.cshtml
    │   │   │   │           │   ├── SendCode.cshtml
    │   │   │   │           │   └── VerifyCode.cshtml
    │   │   │   │           ├── Dashboard
    │   │   │   │           │   └── HomeTemplate.cshtml
    │   │   │   │           ├── EmailTemplate
    │   │   │   │           │   └── AccountRegisteredConfirmationEmailModel.cshtml
    │   │   │   │           ├── Home
    │   │   │   │           │   └── Index.cshtml
    │   │   │   │           ├── HomeAdmin
    │   │   │   │           │   └── Index.cshtml
    │   │   │   │           ├── Manage
    │   │   │   │           │   ├── ChangePassword.cshtml
    │   │   │   │           │   ├── Index.cshtml
    │   │   │   │           │   ├── ManageLogins.cshtml
    │   │   │   │           │   ├── SetPassword.cshtml
    │   │   │   │           │   ├── UserInfo.cshtml
    │   │   │   │           │   └── UserSettings.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   ├── Components
    │   │   │   │           │   │   └── DefaultShippingAddress
    │   │   │   │           │   │       └── Default.cshtml
    │   │   │   │           │   └── _WidgetInstances.cshtml
    │   │   │   │           ├── UserAddress
    │   │   │   │           │   ├── Create.cshtml
    │   │   │   │           │   ├── Edit.cshtml
    │   │   │   │           │   ├── List.cshtml
    │   │   │   │           │   └── _AddressForm.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   ├── CoreCustomModelBuilder.cs
    │   │   │   │   ├── CoreSeedData.cs
    │   │   │   │   ├── Repository.cs
    │   │   │   │   ├── RepositoryWithTypedId.cs
    │   │   │   │   └── SimplDbContext.cs
    │   │   │   ├── Events
    │   │   │   │   ├── EntityDeleting.cs
    │   │   │   │   ├── EntityViewed.cs
    │   │   │   │   ├── ReviewSummaryChanged.cs
    │   │   │   │   └── UserSignedIn.cs
    │   │   │   ├── Extensions
    │   │   │   │   ├── EFConfigProvider.cs
    │   │   │   │   ├── EFConfigSource.cs
    │   │   │   │   ├── EFConfigurationDbContext.cs
    │   │   │   │   ├── EFConfigurationProviderExtension.cs
    │   │   │   │   ├── IWorkContext.cs
    │   │   │   │   ├── LocalizedStringExtensions.cs
    │   │   │   │   ├── Settings
    │   │   │   │   │   ├── SettingDefinition.cs
    │   │   │   │   │   ├── SettingDefinitionExtensions.cs
    │   │   │   │   │   └── SettingDefinitionProvider.cs
    │   │   │   │   ├── SimplRoleStore.cs
    │   │   │   │   ├── SimplSignInManager.cs
    │   │   │   │   ├── SimplUserStore.cs
    │   │   │   │   ├── SlugRouteValueTransformer.cs
    │   │   │   │   ├── TagHelpers
    │   │   │   │   │   └── AppendVersionTagHelper.cs
    │   │   │   │   └── WorkContext.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Address.cs
    │   │   │   │   ├── AddressType.cs
    │   │   │   │   ├── AppSetting.cs
    │   │   │   │   ├── Content.cs
    │   │   │   │   ├── Country.cs
    │   │   │   │   ├── CustomerGroup.cs
    │   │   │   │   ├── CustomerGroupUser.cs
    │   │   │   │   ├── District.cs
    │   │   │   │   ├── Entity.cs
    │   │   │   │   ├── EntityType.cs
    │   │   │   │   ├── Media.cs
    │   │   │   │   ├── MediaType.cs
    │   │   │   │   ├── Role.cs
    │   │   │   │   ├── SimplConstants.cs
    │   │   │   │   ├── StateOrProvince.cs
    │   │   │   │   ├── ThemeManifest.cs
    │   │   │   │   ├── User.cs
    │   │   │   │   ├── UserAddress.cs
    │   │   │   │   ├── UserRole.cs
    │   │   │   │   ├── Vendor.cs
    │   │   │   │   ├── Widget.cs
    │   │   │   │   ├── WidgetInstance.cs
    │   │   │   │   ├── WidgetZone.cs
    │   │   │   │   └── WidgetZoneIds.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── CurrencyService.cs
    │   │   │   │   ├── EntityService.cs
    │   │   │   │   ├── IContentLocalizationService.cs
    │   │   │   │   ├── ICurrencyService.cs
    │   │   │   │   ├── IEmailSender.cs
    │   │   │   │   ├── IEntityService.cs
    │   │   │   │   ├── IMediaService.cs
    │   │   │   │   ├── IPdfConverter.cs
    │   │   │   │   ├── ISettingService.cs
    │   │   │   │   ├── ISmsSender.cs
    │   │   │   │   ├── IStorageService.cs
    │   │   │   │   ├── IThemeService.cs
    │   │   │   │   ├── IWidgetInstanceService.cs
    │   │   │   │   ├── MediaService.cs
    │   │   │   │   ├── SettingService.cs
    │   │   │   │   ├── SmsSender.cs
    │   │   │   │   ├── ThemeService.cs
    │   │   │   │   └── WidgetInstanceService.cs
    │   │   │   ├── SimplCommerce.Module.Core.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       ├── Logo_SimplCommerce.png
    │   │   │       ├── admin
    │   │   │       │   ├── admin-app-config.js
    │   │   │       │   ├── admin-core.css
    │   │   │       │   ├── common
    │   │   │       │   │   ├── common.js
    │   │   │       │   │   ├── exception.js
    │   │   │       │   │   ├── logger.js
    │   │   │       │   │   ├── simplUtil.js
    │   │   │       │   │   ├── slugify.js
    │   │   │       │   │   ├── st-date-range.html
    │   │   │       │   │   ├── st-date-range.js
    │   │   │       │   │   ├── summernote-service.js
    │   │   │       │   │   └── translation-service.js
    │   │   │       │   ├── configuration
    │   │   │       │   │   ├── configuration-service.js
    │   │   │       │   │   ├── configuration.html
    │   │   │       │   │   └── configuration.js
    │   │   │       │   ├── core.module.js
    │   │   │       │   ├── countries
    │   │   │       │   │   ├── country-form.html
    │   │   │       │   │   ├── country-form.js
    │   │   │       │   │   ├── country-list.html
    │   │   │       │   │   ├── country-list.js
    │   │   │       │   │   └── country-service.js
    │   │   │       │   ├── customergroups
    │   │   │       │   │   ├── customergroup-form.html
    │   │   │       │   │   ├── customergroup-form.js
    │   │   │       │   │   ├── customergroup-list.html
    │   │   │       │   │   ├── customergroup-list.js
    │   │   │       │   │   └── customergroup-service.js
    │   │   │       │   ├── dashboard
    │   │   │       │   │   └── dashboard.module.js
    │   │   │       │   ├── stateprovince
    │   │   │       │   │   ├── state-province-form.html
    │   │   │       │   │   ├── state-province-form.js
    │   │   │       │   │   ├── state-province-list.html
    │   │   │       │   │   ├── state-province-list.js
    │   │   │       │   │   └── state-province-service.js
    │   │   │       │   ├── themes
    │   │   │       │   │   ├── online-theme-list.html
    │   │   │       │   │   ├── online-theme-list.js
    │   │   │       │   │   ├── theme-details.html
    │   │   │       │   │   ├── theme-details.js
    │   │   │       │   │   ├── theme-list.html
    │   │   │       │   │   ├── theme-list.js
    │   │   │       │   │   └── theme-service.js
    │   │   │       │   ├── user
    │   │   │       │   │   ├── user-form.html
    │   │   │       │   │   ├── user-form.js
    │   │   │       │   │   ├── user-list.html
    │   │   │       │   │   ├── user-list.js
    │   │   │       │   │   └── user-service.js
    │   │   │       │   └── widget
    │   │   │       │       ├── widget-instance-list.html
    │   │   │       │       ├── widget-instance-list.js
    │   │   │       │       └── widget-service.js
    │   │   │       ├── main.js
    │   │   │       ├── site.css
    │   │   │       ├── site.min.css
    │   │   │       └── user-address.js
    │   │   ├── SimplCommerce.Module.DinkToPdf
    │   │   │   ├── DinkToPdfConverter.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.DinkToPdf.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.EmailSenderSendgrid
    │   │   │   ├── EmailSender.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.EmailSenderSendgrid.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.EmailSenderSmtp
    │   │   │   ├── Data
    │   │   │   │   └── EmailSenderSmptCustomModelBuilder.cs
    │   │   │   ├── EmailConfig.cs
    │   │   │   ├── EmailSender.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.EmailSenderSmtp.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.HangfireJobs
    │   │   │   ├── About.md
    │   │   │   ├── Extensions
    │   │   │   │   ├── BackgroundJobManagerExtensions.cs
    │   │   │   │   ├── HangfireConfigureExtensions.cs
    │   │   │   │   ├── HangfireJobsRegisterExtensions.cs
    │   │   │   │   └── HangfireServiceCollectionExtensions.cs
    │   │   │   ├── Internal
    │   │   │   │   ├── BackgroundJobArgsHelper.cs
    │   │   │   │   ├── BackgroundJobCollection.cs
    │   │   │   │   ├── BackgroundJobDescriptor.cs
    │   │   │   │   ├── HangfireConfigureOptions.cs
    │   │   │   │   └── HangfireDashboardAuthorizationFilter.cs
    │   │   │   ├── Models
    │   │   │   │   ├── BackgroundJob.cs
    │   │   │   │   ├── CommonCrons.cs
    │   │   │   │   ├── IBackgroundJob.cs
    │   │   │   │   └── ScheduledJob.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── BackgroundJobManager.cs
    │   │   │   │   └── IBackgroundJobManager.cs
    │   │   │   ├── SimplCommerce.Module.HangfireJobs.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.Inventory
    │   │   │   ├── Areas
    │   │   │   │   └── Inventory
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── StockApiController.cs
    │   │   │   │       │   ├── WarehouseApiController.cs
    │   │   │   │       │   └── WarehouseProductApiController.cs
    │   │   │   │       └── ViewModels
    │   │   │   │           ├── MangeWarehouseProductItemVm.cs
    │   │   │   │           ├── StockVm.cs
    │   │   │   │           └── WarehouseVm.cs
    │   │   │   ├── Data
    │   │   │   │   └── InventoryCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Stock.cs
    │   │   │   │   ├── StockHistory.cs
    │   │   │   │   └── Warehouse.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── IStockService.cs
    │   │   │   │   ├── StockService.cs
    │   │   │   │   └── StockUpdateRequest.cs
    │   │   │   ├── SimplCommerce.Module.Inventory.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── inventory.module.js
    │   │   │           ├── stock
    │   │   │           │   ├── stock-form.html
    │   │   │           │   ├── stock-form.js
    │   │   │           │   ├── stock-history.html
    │   │   │           │   ├── stock-history.js
    │   │   │           │   └── stock-service.js
    │   │   │           └── warehouse
    │   │   │               ├── manage-products-form.html
    │   │   │               ├── manage-products-form.js
    │   │   │               ├── warehouse-form.html
    │   │   │               ├── warehouse-form.js
    │   │   │               ├── warehouse-list.html
    │   │   │               ├── warehouse-list.js
    │   │   │               └── warehouse-service.js
    │   │   ├── SimplCommerce.Module.Localization
    │   │   │   ├── Areas
    │   │   │   │   └── Localization
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── LocalizationApiController.cs
    │   │   │   │       │   └── LocalizationController.cs
    │   │   │   │       └── ViewModel
    │   │   │   │           └── ResourceItemVm.cs
    │   │   │   ├── Data
    │   │   │   │   └── LocalizationCustomModelBuilder.cs
    │   │   │   ├── EFStringLocalizer.cs
    │   │   │   ├── EFStringLocalizerFactory.cs
    │   │   │   ├── EFStringLocalizerOfT.cs
    │   │   │   ├── EfRequestCultureProvider.cs
    │   │   │   ├── Events
    │   │   │   │   └── UserSignedInHandler.cs
    │   │   │   ├── Extensions
    │   │   │   │   ├── CultureInfoExtensions.cs
    │   │   │   │   └── LocalizationServiceCollectionExtensions.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   └── ContentLocalizationService.cs
    │   │   │   ├── SimplCommerce.Module.Localization.csproj
    │   │   │   ├── TagHelpers
    │   │   │   │   └── LanguageDirectionTagHelperComponent.cs
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── localization
    │   │   │           │   ├── localization-form.html
    │   │   │           │   ├── localization-form.js
    │   │   │           │   └── localization-service.js
    │   │   │           └── localization.module.js
    │   │   ├── SimplCommerce.Module.News
    │   │   │   ├── Areas
    │   │   │   │   └── News
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── NewsCategoryApiController.cs
    │   │   │   │       │   ├── NewsCategoryController.cs
    │   │   │   │       │   ├── NewsItemApiController.cs
    │   │   │   │       │   └── NewsItemController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── NewsCategoryForm.cs
    │   │   │   │       │   ├── NewsCategoryVm.cs
    │   │   │   │       │   ├── NewsItemForm.cs
    │   │   │   │       │   ├── NewsItemThumbnail.cs
    │   │   │   │       │   ├── NewsItemVm.cs
    │   │   │   │       │   └── NewsVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── NewsCategory
    │   │   │   │           │   └── NewsCategoryDetail.cshtml
    │   │   │   │           ├── NewsItem
    │   │   │   │           │   ├── NewsHome.cshtml
    │   │   │   │           │   └── NewsItemDetail.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── _NewsThumbnail.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── NewsCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   ├── NewsCategory.cs
    │   │   │   │   ├── NewsItem.cs
    │   │   │   │   └── NewsItemCategory.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── INewsCategoryService.cs
    │   │   │   │   ├── INewsItemService.cs
    │   │   │   │   ├── NewsCategoryService.cs
    │   │   │   │   └── NewsItemService.cs
    │   │   │   ├── SimplCommerce.Module.News.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── news-categories
    │   │   │           │   ├── news-category-form.html
    │   │   │           │   ├── news-category-form.js
    │   │   │           │   ├── news-category-list.html
    │   │   │           │   ├── news-category-list.js
    │   │   │           │   └── news-category-service.js
    │   │   │           ├── news-items
    │   │   │           │   ├── news-item-form.html
    │   │   │           │   ├── news-item-form.js
    │   │   │           │   ├── news-item-list.html
    │   │   │           │   ├── news-item-list.js
    │   │   │           │   └── news-item-service.js
    │   │   │           └── news.module.js
    │   │   ├── SimplCommerce.Module.Notifications
    │   │   │   ├── Areas
    │   │   │   │   └── Notifications
    │   │   │   │       ├── Components
    │   │   │   │       │   └── TestRealTimeNotificationFormViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── NotificationsController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   └── TestNotificationVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Notifications
    │   │   │   │           │   └── Index.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── TestRealTimeNotificationForm
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   ├── INotificationRepository.cs
    │   │   │   │   ├── NotificationRepository.cs
    │   │   │   │   └── NotificationsCustomModelBuilder.cs
    │   │   │   ├── Events
    │   │   │   │   └── UserSignedInHandler.cs
    │   │   │   ├── Helpers
    │   │   │   │   └── EntityHelper.cs
    │   │   │   ├── Jobs
    │   │   │   │   ├── NotificationDistributionJob.cs
    │   │   │   │   └── NotificationDistributionJobArgs.cs
    │   │   │   ├── Models
    │   │   │   │   ├── EntityIdentifier.cs
    │   │   │   │   ├── MessageNotificationData.cs
    │   │   │   │   ├── NotificationData.cs
    │   │   │   │   ├── NotificationDefinition.cs
    │   │   │   │   ├── NotificationDetail.cs
    │   │   │   │   ├── NotificationDetailDto.cs
    │   │   │   │   ├── NotificationDetailExtensions.cs
    │   │   │   │   ├── NotificationScheme.cs
    │   │   │   │   ├── NotificationSeverity.cs
    │   │   │   │   ├── NotificationSubscription.cs
    │   │   │   │   ├── NotificationSubscriptionDto.cs
    │   │   │   │   ├── NotificationSubscriptionExtensions.cs
    │   │   │   │   ├── UserNotification.cs
    │   │   │   │   ├── UserNotificationDto.cs
    │   │   │   │   ├── UserNotificationExtensions.cs
    │   │   │   │   ├── UserNotificationState.cs
    │   │   │   │   ├── UserNotificationWithNotificationDetail.cs
    │   │   │   │   └── UserNotificationWithNotificationDetailExtensions.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── NotificationDefinitions.cs
    │   │   │   ├── Notifiers
    │   │   │   │   ├── ITestNotifier.cs
    │   │   │   │   └── TestNotifier.cs
    │   │   │   ├── Services
    │   │   │   │   ├── INotificationDefinitionManager.cs
    │   │   │   │   ├── INotificationDistributer.cs
    │   │   │   │   ├── INotificationPublisher.cs
    │   │   │   │   ├── INotificationSubscriptionManager.cs
    │   │   │   │   ├── IRealTimeNotifier.cs
    │   │   │   │   ├── IUserNotificationManager.cs
    │   │   │   │   ├── NotificationDefinitionManager.cs
    │   │   │   │   ├── NotificationDefinitionManagerExtensions.cs
    │   │   │   │   ├── NotificationDistributer.cs
    │   │   │   │   ├── NotificationExtensions.cs
    │   │   │   │   ├── NotificationPublisher.cs
    │   │   │   │   ├── NotificationSubscriptionManager.cs
    │   │   │   │   ├── SignalRRealTimeNotifier.cs
    │   │   │   │   └── UserNotificationManager.cs
    │   │   │   ├── SettingDefinitions.cs
    │   │   │   ├── SimplCommerce.Module.Notifications.csproj
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── notifications.signalr.js
    │   │   ├── SimplCommerce.Module.Orders
    │   │   │   ├── Areas
    │   │   │   │   └── Orders
    │   │   │   │       ├── Components
    │   │   │   │       │   └── OrderSummaryViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CheckoutApiController.cs
    │   │   │   │       │   ├── InvoiceApiController.cs
    │   │   │   │       │   ├── OrderApiController.cs
    │   │   │   │       │   ├── OrderController.cs
    │   │   │   │       │   └── OrderHistoryApiController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── AddressFormVm.cs
    │   │   │   │       │   ├── CartItemVm.cs
    │   │   │   │       │   ├── OrderDetailVm.cs
    │   │   │   │       │   ├── OrderExportVm.cs
    │   │   │   │       │   ├── OrderHistoryListItem.cs
    │   │   │   │       │   ├── OrderHistoryProductVm.cs
    │   │   │   │       │   ├── OrderItemVm.cs
    │   │   │   │       │   ├── OrderLineExportVm.cs
    │   │   │   │       │   ├── OrderStatusForm.cs
    │   │   │   │       │   └── OrderTaxAndShippingPriceVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── EmailTemplates
    │   │   │   │           │   └── OrderEmailToCustomer.cshtml
    │   │   │   │           ├── Order
    │   │   │   │           │   ├── OrderDetails.cshtml
    │   │   │   │           │   └── OrderHistoryList.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   ├── Components
    │   │   │   │           │   │   └── OrderSummary
    │   │   │   │           │   │       └── Default.cshtml
    │   │   │   │           │   └── InvoicePdf.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── OrderCustomModelBuilder.cs
    │   │   │   ├── Events
    │   │   │   │   ├── AfterOrderCreated.cs
    │   │   │   │   ├── AfterOrderCreatedSendEmailHanlder.cs
    │   │   │   │   ├── OrderChanged.cs
    │   │   │   │   ├── OrderChangedCreateOrderHistoryHandler.cs
    │   │   │   │   ├── OrderCreated.cs
    │   │   │   │   ├── OrderCreatedClearCartHandler.cs
    │   │   │   │   ├── OrderCreatedCreateOrderHistoryHandler.cs
    │   │   │   │   └── OrderDetailGot.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Order.cs
    │   │   │   │   ├── OrderAddress.cs
    │   │   │   │   ├── OrderHistory.cs
    │   │   │   │   ├── OrderItem.cs
    │   │   │   │   └── OrderStatus.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── IOrderEmailService.cs
    │   │   │   │   ├── IOrderService.cs
    │   │   │   │   ├── OrderCancellationBackgroundService.cs
    │   │   │   │   ├── OrderEmailService.cs
    │   │   │   │   └── OrderService.cs
    │   │   │   ├── SimplCommerce.Module.Orders.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       ├── admin
    │   │   │       │   ├── order
    │   │   │       │   │   ├── order-create.html
    │   │   │       │   │   ├── order-create.js
    │   │   │       │   │   ├── order-detail.html
    │   │   │       │   │   ├── order-detail.js
    │   │   │       │   │   ├── order-list.html
    │   │   │       │   │   ├── order-list.js
    │   │   │       │   │   ├── order-service.js
    │   │   │       │   │   ├── order-widget.directive.html
    │   │   │       │   │   └── order-widget.directive.js
    │   │   │       │   └── orders.module.js
    │   │   │       └── checkout.js
    │   │   ├── SimplCommerce.Module.PaymentBraintree
    │   │   │   ├── Areas
    │   │   │   │   └── PaymentBraintree
    │   │   │   │       ├── Components
    │   │   │   │       │   └── BraintreeLandingViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── BraintreeApiController.cs
    │   │   │   │       │   └── BraintreeController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── BraintreeCheckoutForm.cs
    │   │   │   │       │   └── BraintreeConfigForm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── BraintreeLanding
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentBraintreeCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── PaymentProviderHelper.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── BraintreeConfiguration.cs
    │   │   │   │   └── IBraintreeConfiguration.cs
    │   │   │   ├── SimplCommerce.Module.PaymentBraintree.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── braintree
    │   │   │           │   ├── braintree-config-form.html
    │   │   │           │   ├── braintree-config-form.js
    │   │   │           │   └── braintree-service.js
    │   │   │           └── paymentbraintree.module.js
    │   │   ├── SimplCommerce.Module.PaymentCashfree
    │   │   │   ├── Areas
    │   │   │   │   └── PaymentCashfree
    │   │   │   │       ├── Components
    │   │   │   │       │   └── CashfreeLandingViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CashfreeApiController.cs
    │   │   │   │       │   └── CashfreeController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── CashfreeCheckoutForm.cs
    │   │   │   │       │   ├── CashfreeConfigForm.cs
    │   │   │   │       │   └── CashfreeResponse.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── CashfreeLanding
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentCashfreeCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── PaymentProviderHelper.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.PaymentCashfree.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── cashfree
    │   │   │           │   ├── cashfree-config-form.html
    │   │   │           │   ├── cashfree-config-form.js
    │   │   │           │   └── cashfree-service.js
    │   │   │           └── paymentCashfree.module.js
    │   │   ├── SimplCommerce.Module.PaymentCoD
    │   │   │   ├── Areas
    │   │   │   │   └── PaymentCoD
    │   │   │   │       ├── Components
    │   │   │   │       │   └── CoDLandingViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CoDApiController.cs
    │   │   │   │       │   └── CoDController.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── CoDLanding
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentCoDCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   ├── CoDSetting.cs
    │   │   │   │   └── PaymentProviderHelper.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.PaymentCoD.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── config
    │   │   │           │   ├── cod-service.js
    │   │   │           │   ├── config-form.html
    │   │   │           │   └── config-form.js
    │   │   │           └── paymentCoD.module.js
    │   │   ├── SimplCommerce.Module.PaymentMomo
    │   │   │   ├── Areas
    │   │   │   │   └── PaymentMomo
    │   │   │   │       ├── Components
    │   │   │   │       │   └── MomoLandingViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── MomoPaymentApiController.cs
    │   │   │   │       │   └── MomoPaymentController.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── MomoLanding
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentMomoCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── PaymentProviderHelper.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── MomoSecurityHelper.cs
    │   │   │   ├── SimplCommerce.Module.PaymentMomo.csproj
    │   │   │   ├── ViewModels
    │   │   │   │   ├── MomoCheckoutForm.cs
    │   │   │   │   ├── MomoPaymentConfigForm.cs
    │   │   │   │   ├── PaymentSubmitRequest.cs
    │   │   │   │   ├── PaymentSubmitResponse.cs
    │   │   │   │   ├── PaymentSubmitResult.cs
    │   │   │   │   ├── StatusRequest.cs
    │   │   │   │   └── StatusResponse.cs
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── momo
    │   │   │           │   ├── momo-config-form.html
    │   │   │           │   ├── momo-config-form.js
    │   │   │           │   └── momo-service.js
    │   │   │           └── paymentMomo.module.js
    │   │   ├── SimplCommerce.Module.PaymentNganLuong
    │   │   │   ├── Areas
    │   │   │   │   └── PaymentNganLuong
    │   │   │   │       ├── Components
    │   │   │   │       │   └── NganLuongLandingViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── NganLuongApiController.cs
    │   │   │   │       │   └── NganLuongController.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── NganLuong
    │   │   │   │           │   └── PaymentMethods.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── NganLuongLanding
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentNganLuongCustomerModelBuilder.cs
    │   │   │   ├── ErrorMessages.cs
    │   │   │   ├── Models
    │   │   │   │   └── PaymentProviderHelper.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SecurityHelper.cs
    │   │   │   ├── SimplCommerce.Module.PaymentNganLuong.csproj
    │   │   │   ├── ViewModels
    │   │   │   │   ├── NganLuongConfigForm.cs
    │   │   │   │   ├── PaymentStatusRequest.cs
    │   │   │   │   ├── PaymentStatusResponse.cs
    │   │   │   │   ├── PaymentSubmitRequest.cs
    │   │   │   │   ├── PaymentSubmitResponse.cs
    │   │   │   │   └── PaymentSubmitReturn.cs
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── ngan-luong
    │   │   │           │   ├── ngan-luong-config-form.html
    │   │   │           │   ├── ngan-luong-config-form.js
    │   │   │           │   └── ngan-luong-service.js
    │   │   │           └── paymentNganLuong.module.js
    │   │   ├── SimplCommerce.Module.PaymentPaypalExpress
    │   │   │   ├── Areas
    │   │   │   │   └── PaymentPaypalExpress
    │   │   │   │       ├── Components
    │   │   │   │       │   └── PaypalExpressLandingViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── PaypalExpressApiController.cs
    │   │   │   │       │   └── PaypalExpressController.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── PaypalExpressLanding
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentPaypalExpressCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── PaymentProviderHelper.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.PaymentPaypalExpress.csproj
    │   │   │   ├── ViewModels
    │   │   │   │   ├── ExperienceProfile.cs
    │   │   │   │   ├── PaymentCreateRequest.cs
    │   │   │   │   ├── PaymentExecuteRequest.cs
    │   │   │   │   ├── PaymentExecuteVm.cs
    │   │   │   │   ├── PaypalExpressCheckoutForm.cs
    │   │   │   │   └── PaypalExpressConfigForm.cs
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── config
    │   │   │           │   ├── config-form.html
    │   │   │           │   ├── config-form.js
    │   │   │           │   └── paypalExpress-service.js
    │   │   │           └── paypalExpress.module.js
    │   │   ├── SimplCommerce.Module.PaymentStripe
    │   │   │   ├── Areas
    │   │   │   │   └── PaymentStripe
    │   │   │   │       ├── Components
    │   │   │   │       │   └── StripeLandingViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── StripeApiController.cs
    │   │   │   │       │   └── StripeController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── StripeCheckoutForm.cs
    │   │   │   │       │   └── StripeConfigForm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── StripeLanding
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentStripeCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── PaymentProviderHelper.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.PaymentStripe.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── paymentStripe.module.js
    │   │   │           └── stripe
    │   │   │               ├── stripe-config-form.html
    │   │   │               ├── stripe-config-form.js
    │   │   │               └── stripe-service.js
    │   │   ├── SimplCommerce.Module.Payments
    │   │   │   ├── Areas
    │   │   │   │   └── Payments
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CheckoutController.cs
    │   │   │   │       │   ├── PaymentApiController.cs
    │   │   │   │       │   └── PaymentProviderApiController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── CheckoutPaymentForm.cs
    │   │   │   │       │   └── PaymentProviderVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Checkout
    │   │   │   │           │   └── Payment.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   └── PaymentsCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Payment.cs
    │   │   │   │   ├── PaymentProvider.cs
    │   │   │   │   └── PaymentStatus.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.Payments.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── payment
    │   │   │           │   ├── payment-list-by-order.directive.html
    │   │   │           │   ├── payment-list-by-order.directive.js
    │   │   │           │   └── payment-service.js
    │   │   │           ├── payments.module.js
    │   │   │           └── provider
    │   │   │               ├── payment-provider-list.html
    │   │   │               ├── payment-provider-list.js
    │   │   │               └── payment-provider-service.js
    │   │   ├── SimplCommerce.Module.Pricing
    │   │   │   ├── Areas
    │   │   │   │   └── Pricing
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CartRuleApiController.cs
    │   │   │   │       │   └── CartRuleUsageApiController.cs
    │   │   │   │       └── ViewModels
    │   │   │   │           ├── CartRuleForm.cs
    │   │   │   │           └── CartRuleProductVm.cs
    │   │   │   ├── Data
    │   │   │   │   └── PricingCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   ├── CartRule.cs
    │   │   │   │   ├── CartRuleCategory.cs
    │   │   │   │   ├── CartRuleCustomerGroup.cs
    │   │   │   │   ├── CartRuleProduct.cs
    │   │   │   │   ├── CartRuleUsage.cs
    │   │   │   │   ├── CatalogRule.cs
    │   │   │   │   ├── CatalogRuleCustomerGroup.cs
    │   │   │   │   └── Coupon.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── CartInfoForCoupon.cs
    │   │   │   │   ├── CartItemForCoupon.cs
    │   │   │   │   ├── CouponService.cs
    │   │   │   │   ├── CouponValidationResult.cs
    │   │   │   │   ├── DiscountableProduct.cs
    │   │   │   │   ├── DiscountedProduct.cs
    │   │   │   │   └── ICouponService.cs
    │   │   │   ├── SimplCommerce.Module.Pricing.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── cart-rule
    │   │   │           │   ├── cart-rule-form.html
    │   │   │           │   ├── cart-rule-form.js
    │   │   │           │   ├── cart-rule-list.html
    │   │   │           │   ├── cart-rule-list.js
    │   │   │           │   └── cart-rule-service.js
    │   │   │           ├── cart-rule-usage
    │   │   │           │   ├── cart-rule-usage-list.html
    │   │   │           │   ├── cart-rule-usage-list.js
    │   │   │           │   └── cart-rule-usage-service.js
    │   │   │           └── pricing.module.js
    │   │   ├── SimplCommerce.Module.ProductComparison
    │   │   │   ├── Areas
    │   │   │   │   └── ProductComparison
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── ComparingProductController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── AddToComparisonModel.cs
    │   │   │   │       │   ├── AddToComparisonResult.cs
    │   │   │   │       │   ├── AttributeValueVm.cs
    │   │   │   │       │   ├── AttributeVm.cs
    │   │   │   │       │   ├── ComparingProductVm.cs
    │   │   │   │       │   └── ProductComparisonVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── ComparingProduct
    │   │   │   │           │   ├── AddToComparisonResult.cshtml
    │   │   │   │           │   └── Index.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Events
    │   │   │   │   └── UserSignedInHandler.cs
    │   │   │   ├── Models
    │   │   │   │   └── ComparingProduct.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── ComparingProductService.cs
    │   │   │   │   ├── IComparingProductService.cs
    │   │   │   │   └── TooManyComparingProductException.cs
    │   │   │   ├── SimplCommerce.Module.ProductComparison.csproj
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── product-comparison.js
    │   │   ├── SimplCommerce.Module.ProductRecentlyViewed
    │   │   │   ├── Areas
    │   │   │   │   └── ProductRecentlyViewed
    │   │   │   │       ├── Components
    │   │   │   │       │   ├── ProductRecentlyViewedViewComponent.cs
    │   │   │   │       │   └── RecentlyViewedWidgetViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── RecentlyViewedWidgetController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── RecentlyViewedWidgetForm.cs
    │   │   │   │       │   └── RecentlyViewedWidgetViewComponentVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       ├── ProductRecentlyViewed
    │   │   │   │           │       │   └── Default.cshtml
    │   │   │   │           │       └── RecentlyViewedWidget
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           └── _ViewImports.cshtml
    │   │   │   ├── Data
    │   │   │   │   ├── IRecentlyViewedProductRepository.cs
    │   │   │   │   ├── ProductRecentlyViewedCustomModelBuilder.cs
    │   │   │   │   └── RecentlyViewedProductRepository.cs
    │   │   │   ├── Events
    │   │   │   │   └── EntityViewedHandler.cs
    │   │   │   ├── Models
    │   │   │   │   └── RecentlyViewedProduct.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.ProductRecentlyViewed.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── productrecentlyviewed.module.js
    │   │   │           └── recently-viewed-widget
    │   │   │               ├── recently-viewed-widget-form.html
    │   │   │               ├── recently-viewed-widget-form.js
    │   │   │               └── recently-viewed-widget-service.js
    │   │   ├── SimplCommerce.Module.Reviews
    │   │   │   ├── Areas
    │   │   │   │   └── Reviews
    │   │   │   │       ├── Components
    │   │   │   │       │   └── ReviewViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── ReplyApiController.cs
    │   │   │   │       │   ├── ReplyController.cs
    │   │   │   │       │   ├── ReviewApiController.cs
    │   │   │   │       │   └── ReviewController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── Reply.cs
    │   │   │   │       │   ├── ReplyForm.cs
    │   │   │   │       │   ├── ReviewForm.cs
    │   │   │   │       │   ├── ReviewItem.cs
    │   │   │   │       │   └── ReviewVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Reply
    │   │   │   │           │   ├── _ReplyForm.cshtml
    │   │   │   │           │   └── _ReplyFormSuccess.cshtml
    │   │   │   │           ├── Review
    │   │   │   │           │   ├── List.cshtml
    │   │   │   │           │   ├── _ReviewForm.cshtml
    │   │   │   │           │   └── _ReviewFormSuccess.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── Review
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Data
    │   │   │   │   ├── IReplyRepository.cs
    │   │   │   │   ├── IReviewRepository.cs
    │   │   │   │   ├── ReplyRepository.cs
    │   │   │   │   └── ReviewRepository.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Reply.cs
    │   │   │   │   ├── ReplyListItemDto.cs
    │   │   │   │   ├── ReplyStatus.cs
    │   │   │   │   ├── Review.cs
    │   │   │   │   ├── ReviewListItemDto.cs
    │   │   │   │   └── ReviewStatus.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.Reviews.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       ├── admin
    │   │   │       │   ├── review
    │   │   │       │   │   ├── review-list.html
    │   │   │       │   │   ├── review-list.js
    │   │   │       │   │   ├── review-reply-list.html
    │   │   │       │   │   ├── review-reply-list.js
    │   │   │       │   │   ├── review-reply-service.js
    │   │   │       │   │   ├── review-reply-widget.directive.html
    │   │   │       │   │   ├── review-reply-widget.directive.js
    │   │   │       │   │   ├── review-service.js
    │   │   │       │   │   ├── review-widget.directive.html
    │   │   │       │   │   └── review-widget.directive.js
    │   │   │       │   └── reviews.module.js
    │   │   │       ├── list.css
    │   │   │       └── list.js
    │   │   ├── SimplCommerce.Module.SampleData
    │   │   │   ├── Areas
    │   │   │   │   └── SampleData
    │   │   │   │       ├── Components
    │   │   │   │       │   └── SampleDataFormViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── SampleDataController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   └── SampleDataOption.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── SampleDataForm
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           └── _ViewImports.cshtml
    │   │   │   ├── Data
    │   │   │   │   ├── ISqlRepository.cs
    │   │   │   │   └── SqlRepository.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SampleContent
    │   │   │   │   ├── Fashion
    │   │   │   │   │   ├── Images
    │   │   │   │   │   │   ├── 0089c72c-2fbe-48c3-a33f-718ae1eafd8b.jpg
    │   │   │   │   │   │   ├── 0199b7af-4d14-4858-a902-62ca8c5e9b6d.jpg
    │   │   │   │   │   │   ├── 057afd18-8973-4078-9fd2-7eb0b52d8e72.jpg
    │   │   │   │   │   │   ├── 117ed074-628a-4db7-abbb-4a335adb3504.jpg
    │   │   │   │   │   │   ├── 1201ba32-984a-48eb-b86a-23d4c8f76d5b.jpg
    │   │   │   │   │   │   ├── 1761ffd9-2c53-4a6b-856f-e2f4039d0247.jpg
    │   │   │   │   │   │   ├── 1a79b958-50bc-48d8-b3e5-826222949d28.jpg
    │   │   │   │   │   │   ├── 1aead9b6-73a8-45c1-a463-7655e9a9b478.jpg
    │   │   │   │   │   │   ├── 1b896b5e-f6bf-41ca-89ee-025c6be9e08c.jpg
    │   │   │   │   │   │   ├── 1d9d5101-7e0b-4c29-88fe-e54891647672.jpg
    │   │   │   │   │   │   ├── 2db2ffbb-46d5-4f3c-8dc0-614e83162a1c.jpg
    │   │   │   │   │   │   ├── 2f856ed8-323e-4c26-99d1-cd4ec07f9979.jpg
    │   │   │   │   │   │   ├── 37dc2d94-dbac-4112-afbc-2fc88ddca753.jpg
    │   │   │   │   │   │   ├── 461a2564-b657-46bb-bcb5-f7deaeb2a0a9.jpg
    │   │   │   │   │   │   ├── 4d24a1fd-a362-47e4-9060-011d415398b9.jpg
    │   │   │   │   │   │   ├── 532fc844-2c11-494e-a68b-af0be2b9a87f.jpg
    │   │   │   │   │   │   ├── 5cf020c2-72b5-407d-836a-ef1a316b741c.jpg
    │   │   │   │   │   │   ├── 74552a46-4309-43e1-ad4e-79cd9e778722.jpg
    │   │   │   │   │   │   ├── 78f1840e-7a50-49de-9dad-9127ec290dfd.jpg
    │   │   │   │   │   │   ├── 83c21bb9-2f0d-446a-bb0c-3b19e6d922aa.jpg
    │   │   │   │   │   │   ├── 88604574-f0a3-4982-9b0d-f8a7558dd3ba.jpg
    │   │   │   │   │   │   ├── 911207ad-5b45-423f-9575-2185c85261c0.jpg
    │   │   │   │   │   │   ├── a5904343-189d-469b-a93b-d553c109b781.jpg
    │   │   │   │   │   │   ├── aa5f06ca-9aa9-42b2-a1bc-161d6cf3f174.jpg
    │   │   │   │   │   │   ├── b94d02b8-6d3a-4919-b144-c121387a272d.jpg
    │   │   │   │   │   │   ├── bc68637c-420f-4951-9130-b9fca36484e6.jpg
    │   │   │   │   │   │   ├── bf16c55d-747e-4238-b444-06c3fe0463b2.jpg
    │   │   │   │   │   │   ├── bf6461d5-0a9b-4a19-9516-5ca3b5b9da9e.jpg
    │   │   │   │   │   │   ├── c27ee7c7-deb3-4697-a6b6-3358d72b556f.jpg
    │   │   │   │   │   │   ├── c8756541-d192-48e2-b822-2bf616fb876e.jpg
    │   │   │   │   │   │   ├── daa3af7c-452c-4c0f-9c61-aeccf001e825.jpg
    │   │   │   │   │   │   ├── dd14f5e8-2e76-4f60-9f58-19652dcb80c5.jpg
    │   │   │   │   │   │   ├── de4bdb93-ab9d-4515-b19b-bb55aa4703b3.jpg
    │   │   │   │   │   │   ├── df3590c2-a6a0-4813-96db-4a07e6c7f460.jpg
    │   │   │   │   │   │   ├── e0a99874-20a8-43b8-9199-b109bb2c3ae5.jpg
    │   │   │   │   │   │   ├── ee4b30bf-fd13-47a7-b893-0e6e6b1aed05.jpg
    │   │   │   │   │   │   ├── fb26a4f2-0a36-41dd-b0e8-a6c0554d31f8.jpg
    │   │   │   │   │   │   └── fd623151-fc8a-464b-8c19-b1350d785bce.jpg
    │   │   │   │   │   ├── ResetToSampleData.sql
    │   │   │   │   │   ├── ResetToSampleData_MySql.sql
    │   │   │   │   │   ├── ResetToSampleData_Postgres.sql
    │   │   │   │   │   └── ResetToSampleData_SQLite.sql
    │   │   │   │   └── Phones
    │   │   │   │       ├── Images
    │   │   │   │       │   ├── 25d3da45-b57b-40b6-8f41-2fc5170cb6b7.jpg
    │   │   │   │       │   ├── 282e5cd3-b664-43dc-ba06-d7e91721c560.jpg
    │   │   │   │       │   ├── 284b77c8-2ba8-43e1-826d-7c79c5cf4489.jpg
    │   │   │   │       │   ├── 3a3f587c-9c70-4e68-b480-20829a9f3e95.jpg
    │   │   │   │       │   ├── 4495b930-a901-44e2-9275-935f7e8ec53c.jpg
    │   │   │   │       │   ├── 5887a479-bb96-436f-8414-fa188cdc2aac.jpg
    │   │   │   │       │   ├── 68c7ff8f-014e-46c8-8daa-f35c646cc10a.jpg
    │   │   │   │       │   ├── 77f5c8cd-2052-4f4c-ac49-70cda3e2eb3c.jpg
    │   │   │   │       │   ├── 7d868097-58a5-43f8-a882-6d7872345fe7.jpg
    │   │   │   │       │   ├── 7da07700-9a17-498b-ba58-526559343878.jpg
    │   │   │   │       │   ├── 81b606ea-0bb0-4cea-a9d7-6406175df9bb.jpg
    │   │   │   │       │   ├── 89374e88-b14c-4d38-b5cd-eacdc5ce3015.jpg
    │   │   │   │       │   ├── 9874f0f5-46dc-495d-8c61-2c515577aa05.jpg
    │   │   │   │       │   ├── a88b4a09-5824-4398-ac08-101d9061f927.jpg
    │   │   │   │       │   ├── bb1243c9-63d5-4518-bbd5-cb3e35ade294.jpg
    │   │   │   │       │   ├── bffb6f2c-8a3f-4fdd-817d-09a9f18cd190.jpg
    │   │   │   │       │   ├── c015d99d-6c3b-4337-9ba7-26822d75a8e2.jpg
    │   │   │   │       │   ├── d013921e-5f11-4472-b5ff-7f78d5987a69.jpg
    │   │   │   │       │   ├── d539b558-15ea-4317-9a5b-62e4db9a45f5.jpg
    │   │   │   │       │   ├── d74fd909-6fe0-4bc3-bf61-86d12dc98a2e.jpg
    │   │   │   │       │   ├── e32c3caa-f7bc-4a3c-b970-f62c503b85bc.jpg
    │   │   │   │       │   ├── e543ed8e-5feb-4a39-8860-51d94a00ee31.jpg
    │   │   │   │       │   ├── ea0af866-a650-4909-877d-00eabbf3d8fd.jpg
    │   │   │   │       │   ├── f9a76a94-6e1a-4489-bf7d-3dc6a68a0785.jpg
    │   │   │   │       │   ├── fdfd1daf-ec7a-4c6e-83dd-a862eae735db.jpg
    │   │   │   │       │   ├── fefe68b9-aee8-4e7d-a49a-17f805555591.jpg
    │   │   │   │       │   └── ffc255b3-07c8-4ee5-94e9-d472c6af3f07.jpg
    │   │   │   │       ├── ResetToSampleData.sql
    │   │   │   │       ├── ResetToSampleData_MySql.sql
    │   │   │   │       ├── ResetToSampleData_Postgres.sql
    │   │   │   │       └── ResetToSampleData_SQLite.sql
    │   │   │   ├── Services
    │   │   │   │   ├── ISampleDataService.cs
    │   │   │   │   └── SampleDataService.cs
    │   │   │   ├── SimplCommerce.Module.SampleData.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.Search
    │   │   │   ├── Areas
    │   │   │   │   └── Search
    │   │   │   │       ├── Components
    │   │   │   │       │   └── SearchFormViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── SearchApiController.cs
    │   │   │   │       │   └── SearchController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── SearchForm.cs
    │   │   │   │       │   └── SearchResult.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Search
    │   │   │   │           │   └── Index.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── SearchForm
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Models
    │   │   │   │   └── Query.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.Search.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── most-search-keywords.directive.html
    │   │   │           ├── most-search-keywords.directive.js
    │   │   │           ├── search-service.js
    │   │   │           └── search.module.js
    │   │   ├── SimplCommerce.Module.Shipments
    │   │   │   ├── Areas
    │   │   │   │   └── Shipments
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── ShipmentApiController.cs
    │   │   │   │       └── ViewModels
    │   │   │   │           └── ShipmentForm.cs
    │   │   │   ├── Data
    │   │   │   │   └── ShipmentCustomModelBuilder.cs
    │   │   │   ├── Events
    │   │   │   │   └── OrderDetailGotHandler.cs
    │   │   │   ├── Models
    │   │   │   │   ├── Shipment.cs
    │   │   │   │   ├── ShipmentItem.cs
    │   │   │   │   └── ShipmentStatus.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── IShipmentService.cs
    │   │   │   │   ├── ShipmentItemVm.cs
    │   │   │   │   └── ShipmentService.cs
    │   │   │   ├── SimplCommerce.Module.Shipments.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── shipment
    │   │   │           │   ├── shipment-details.html
    │   │   │           │   ├── shipment-details.js
    │   │   │           │   ├── shipment-form.html
    │   │   │           │   ├── shipment-form.js
    │   │   │           │   ├── shipment-list-by-order.directive.html
    │   │   │           │   ├── shipment-list-by-order.directive.js
    │   │   │           │   ├── shipment-list.html
    │   │   │           │   ├── shipment-list.js
    │   │   │           │   └── shipment-service.js
    │   │   │           └── shipment.module.js
    │   │   ├── SimplCommerce.Module.Shipping
    │   │   │   ├── Areas
    │   │   │   │   └── Shipping
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── ShippingProviderApiController.cs
    │   │   │   │       └── ViewModels
    │   │   │   │           └── ShippingAddressVm.cs
    │   │   │   ├── Data
    │   │   │   │   └── ShippingCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── ShippingProvider.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.Shipping.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── provider
    │   │   │           │   ├── shipping-provider-list.html
    │   │   │           │   ├── shipping-provider-list.js
    │   │   │           │   └── shipping-provider-service.js
    │   │   │           └── shipping.module.js
    │   │   ├── SimplCommerce.Module.ShippingFree
    │   │   │   ├── Data
    │   │   │   │   └── ShippingFreeCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── FreeShippingSetting.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   └── FreeShippingServiceProvider.cs
    │   │   │   ├── SimplCommerce.Module.ShippingFree.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.ShippingPrices
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── GetShippingPriceRequest.cs
    │   │   │   │   ├── GetShippingPriceResponse.cs
    │   │   │   │   ├── IShippingPriceService.cs
    │   │   │   │   ├── IShippingPriceServiceProvider.cs
    │   │   │   │   ├── ShippingItem.cs
    │   │   │   │   ├── ShippingPrice.cs
    │   │   │   │   └── ShippingPriceService.cs
    │   │   │   ├── SimplCommerce.Module.ShippingPrices.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.ShippingTableRate
    │   │   │   ├── Areas
    │   │   │   │   └── ShippingTableRate
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── PriceAndDestinationApiController.cs
    │   │   │   │       └── ViewModels
    │   │   │   │           └── PriceAndDestinationForm.cs
    │   │   │   ├── Data
    │   │   │   │   └── ShippingTableRateCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   └── PriceAndDestination.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   └── TableRateShippingServiceProvider.cs
    │   │   │   ├── SimplCommerce.Module.ShippingTableRate.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── shipping-tablerate.module.js
    │   │   │           └── tablerate
    │   │   │               ├── shipping-tablerate-form.html
    │   │   │               ├── shipping-tablerate-form.js
    │   │   │               └── shipping-tablerate-service.js
    │   │   ├── SimplCommerce.Module.ShoppingCart
    │   │   │   ├── Areas
    │   │   │   │   └── ShoppingCart
    │   │   │   │       ├── Components
    │   │   │   │       │   └── CartBadgeViewComponent.cs
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── CartApiController.cs
    │   │   │   │       │   └── CartController.cs
    │   │   │   │       ├── ViewModels
    │   │   │   │       │   ├── AddToCartModel.cs
    │   │   │   │       │   ├── AddToCartResultVm.cs
    │   │   │   │       │   ├── ApplyCouponForm.cs
    │   │   │   │       │   ├── CartItemVm.cs
    │   │   │   │       │   ├── CartQuantityUpdate.cs
    │   │   │   │       │   ├── CartVm.cs
    │   │   │   │       │   ├── ProductVariationOption.cs
    │   │   │   │       │   └── ProductVariationOptionVm.cs
    │   │   │   │       └── Views
    │   │   │   │           ├── Cart
    │   │   │   │           │   ├── AddToCartResult.cshtml
    │   │   │   │           │   └── Index.cshtml
    │   │   │   │           ├── Shared
    │   │   │   │           │   └── Components
    │   │   │   │           │       └── CartBadge
    │   │   │   │           │           └── Default.cshtml
    │   │   │   │           ├── _ViewImports.cshtml
    │   │   │   │           └── _ViewStart.cshtml
    │   │   │   ├── Events
    │   │   │   │   └── UserSignedInHandler.cs
    │   │   │   ├── Models
    │   │   │   │   └── CartItem.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── AddToCartResult.cs
    │   │   │   │   ├── CartService.cs
    │   │   │   │   └── ICartService.cs
    │   │   │   ├── SimplCommerce.Module.ShoppingCart.csproj
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       ├── add-to-cart.js
    │   │   │       ├── shoppingcart-list.js
    │   │   │       └── shoppingcart-service.js
    │   │   ├── SimplCommerce.Module.SignalR
    │   │   │   ├── Hubs
    │   │   │   │   ├── CommonHub.cs
    │   │   │   │   ├── HubBase.cs
    │   │   │   │   └── OnlineClientHubBase.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── RealTime
    │   │   │   │   ├── IOnlineClient.cs
    │   │   │   │   ├── IOnlineClientManager.cs
    │   │   │   │   ├── OnlineClient.cs
    │   │   │   │   ├── OnlineClientEventArgs.cs
    │   │   │   │   ├── OnlineClientManager.cs
    │   │   │   │   └── OnlineUserEventArgs.cs
    │   │   │   ├── SimplCommerce.Module.SignalR.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.StorageAmazonS3
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── S3StorageService.cs
    │   │   │   ├── SimplCommerce.Module.StorageAmazonS3.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.StorageAzureBlob
    │   │   │   ├── AzureBlobStorageService.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.StorageAzureBlob.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.StorageLocal
    │   │   │   ├── LocalStorageService.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── SimplCommerce.Module.StorageLocal.csproj
    │   │   │   └── module.json
    │   │   ├── SimplCommerce.Module.Tax
    │   │   │   ├── Areas
    │   │   │   │   └── Tax
    │   │   │   │       ├── Controllers
    │   │   │   │       │   ├── TaxClassApiController.cs
    │   │   │   │       │   └── TaxRateApiController.cs
    │   │   │   │       └── ViewModels
    │   │   │   │           ├── TaxClassForm.cs
    │   │   │   │           ├── TaxRateForm.cs
    │   │   │   │           ├── TaxRateImport.cs
    │   │   │   │           └── TaxRateImportForm.cs
    │   │   │   ├── Data
    │   │   │   │   └── TaxCustomModelBuilder.cs
    │   │   │   ├── Models
    │   │   │   │   ├── TaxClass.cs
    │   │   │   │   └── TaxRate.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── ITaxService.cs
    │   │   │   │   └── TaxService.cs
    │   │   │   ├── SimplCommerce.Module.Tax.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── tax-class
    │   │   │           │   ├── tax-class-form.html
    │   │   │           │   ├── tax-class-form.js
    │   │   │           │   ├── tax-class-list.html
    │   │   │           │   ├── tax-class-list.js
    │   │   │           │   └── tax-class-service.js
    │   │   │           ├── tax-rate
    │   │   │           │   ├── tax-rate-form.html
    │   │   │           │   ├── tax-rate-form.js
    │   │   │           │   ├── tax-rate-import.html
    │   │   │           │   ├── tax-rate-import.js
    │   │   │           │   ├── tax-rate-list.html
    │   │   │           │   ├── tax-rate-list.js
    │   │   │           │   └── tax-rate-service.js
    │   │   │           └── tax.module.js
    │   │   ├── SimplCommerce.Module.Vendors
    │   │   │   ├── Areas
    │   │   │   │   └── Vendors
    │   │   │   │       ├── Controllers
    │   │   │   │       │   └── VendorApiController.cs
    │   │   │   │       └── ViewModels
    │   │   │   │           ├── VendorForm.cs
    │   │   │   │           └── VendorManager.cs
    │   │   │   ├── ModuleInitializer.cs
    │   │   │   ├── Services
    │   │   │   │   ├── IVendorService.cs
    │   │   │   │   └── VendorService.cs
    │   │   │   ├── SimplCommerce.Module.Vendors.csproj
    │   │   │   ├── bundleconfig.json
    │   │   │   ├── module.json
    │   │   │   └── wwwroot
    │   │   │       └── admin
    │   │   │           ├── vendors
    │   │   │           │   ├── vendor-form.html
    │   │   │           │   ├── vendor-form.js
    │   │   │           │   ├── vendor-list.html
    │   │   │           │   ├── vendor-list.js
    │   │   │           │   └── vendor-service.js
    │   │   │           └── vendors.module.js
    │   │   └── SimplCommerce.Module.WishList
    │   │       ├── Areas
    │   │       │   └── WishList
    │   │       │       ├── Controllers
    │   │       │       │   └── WishListController.cs
    │   │       │       ├── ViewModels
    │   │       │       │   ├── AddToWishList.cs
    │   │       │       │   ├── AddToWishListResult.cs
    │   │       │       │   ├── ShareWishListForm.cs
    │   │       │       │   ├── UpdateWishListItem.cs
    │   │       │       │   ├── WishListItemVm.cs
    │   │       │       │   └── WishListVm.cs
    │   │       │       └── Views
    │   │       │           ├── WishList
    │   │       │           │   ├── AddToWishListResult.cshtml
    │   │       │           │   ├── PrivateList.cshtml
    │   │       │           │   ├── PublicList.cshtml
    │   │       │           │   ├── Share.cshtml
    │   │       │           │   └── UpdateItemResult.cshtml
    │   │       │           ├── _ViewImports.cshtml
    │   │       │           └── _ViewStart.cshtml
    │   │       ├── Models
    │   │       │   ├── WishList.cs
    │   │       │   └── WishListItem.cs
    │   │       ├── ModuleInitializer.cs
    │   │       ├── Services
    │   │       │   ├── IWishListService.cs
    │   │       │   └── WishListService.cs
    │   │       ├── SimplCommerce.Module.WishList.csproj
    │   │       ├── module.json
    │   │       └── wwwroot
    │   │           ├── private-list.css
    │   │           ├── public-list.css
    │   │           └── wishlist.js
    │   ├── SimplCommerce.Infrastructure
    │   │   ├── Data
    │   │   │   ├── ICustomModelBuilder.cs
    │   │   │   ├── IRepository.cs
    │   │   │   └── IRepositoryWithTypedId.cs
    │   │   ├── Extensions
    │   │   │   ├── DictionaryExtensions.cs
    │   │   │   ├── HttpClientExtensions.cs
    │   │   │   ├── JsonExtensions.cs
    │   │   │   └── QueryableExtensions.cs
    │   │   ├── GlobalConfiguration.cs
    │   │   ├── Helpers
    │   │   │   ├── CsvConverter.cs
    │   │   │   ├── CurrencyHelper.cs
    │   │   │   ├── EnumHelper.cs
    │   │   │   ├── ReflectionHelper.cs
    │   │   │   ├── StringHelper.cs
    │   │   │   └── TypeHelper.cs
    │   │   ├── Localization
    │   │   │   ├── Culture.cs
    │   │   │   ├── LanguageDirection.cs
    │   │   │   ├── LocalizedContentProperty.cs
    │   │   │   └── Resource.cs
    │   │   ├── Models
    │   │   │   ├── EntityBase.cs
    │   │   │   ├── EntityBaseWithTypedId.cs
    │   │   │   ├── ExtendableObjectExtensions.cs
    │   │   │   ├── IEntityWithTypedId.cs
    │   │   │   ├── IExtendableObject.cs
    │   │   │   └── ValidatableObject.cs
    │   │   ├── Modules
    │   │   │   ├── IModuleConfigurationManager.cs
    │   │   │   ├── IModuleInitializer.cs
    │   │   │   ├── MissingModuleManifestException.cs
    │   │   │   ├── ModuleConfigurationManager.cs
    │   │   │   └── ModuleInfo.cs
    │   │   ├── Result.cs
    │   │   ├── ResultOfT.cs
    │   │   ├── SimplCommerce.Infrastructure.csproj
    │   │   ├── Tasks
    │   │   │   └── Scheduling
    │   │   │       ├── IScheduledTask.cs
    │   │   │       ├── SchedulerBackgroundService.cs
    │   │   │       ├── SchedulerTaskWrapper.cs
    │   │   │       └── SchedulerTasksExtensions.cs
    │   │   ├── ValidationException.cs
    │   │   └── Web
    │   │       ├── CookieOnlyAutoValidateAntiforgeryTokenAuthorizationFilter.cs
    │   │       ├── HttpRequestExtentions.cs
    │   │       ├── IRazorViewRenderer.cs
    │   │       ├── ModelBinders
    │   │       │   ├── InvariantDecimalModelBinder.cs
    │   │       │   └── InvariantDecimalModelBinderProvider.cs
    │   │       ├── RazorViewToStringRenderer.cs
    │   │       ├── SmartTable
    │   │       │   ├── Pagination.cs
    │   │       │   ├── Search.cs
    │   │       │   ├── SmartTableExtension.cs
    │   │       │   ├── SmartTableParam.cs
    │   │       │   ├── SmartTableResult.cs
    │   │       │   └── Sort.cs
    │   │       ├── ThemeableViewLocationExpander.cs
    │   │       └── ViewComponentExtensions.cs
    │   └── SimplCommerce.WebHost
    │       ├── Extensions
    │       │   ├── ApplicationBuilderExtensions.cs
    │       │   └── ServiceCollectionExtensions.cs
    │       ├── IdentityServer
    │       │   ├── IdentityServerConfig.cs
    │       │   └── SimplProfileService.cs
    │       ├── MigrationSimplDbContextFactory.cs
    │       ├── Migrations
    │       │   ├── 20230930154048_InitDb.Designer.cs
    │       │   ├── 20230930154048_InitDb.cs
    │       │   └── SimplDbContextModelSnapshot.cs
    │       ├── Modules
    │       ├── Program.cs
    │       ├── Properties
    │       │   └── launchSettings.json
    │       ├── SimplCommerce.WebHost.csproj
    │       ├── Temps
    │       ├── Themes
    │       │   ├── CozaStore
    │       │   │   ├── Areas
    │       │   │   │   ├── Catalog
    │       │   │   │   │   └── Views
    │       │   │   │   │       ├── Category
    │       │   │   │   │       │   └── CategoryDetail.cshtml
    │       │   │   │   │       ├── Product
    │       │   │   │   │       │   └── ProductDetail.cshtml
    │       │   │   │   │       ├── Shared
    │       │   │   │   │       │   ├── Components
    │       │   │   │   │       │   │   ├── CategoryBreadcrumb
    │       │   │   │   │       │   │   │   └── Default.cshtml
    │       │   │   │   │       │   │   ├── CategoryMenu
    │       │   │   │   │       │   │   │   └── Default.cshtml
    │       │   │   │   │       │   │   ├── CategoryWidget
    │       │   │   │   │       │   │   │   └── Default.cshtml
    │       │   │   │   │       │   │   ├── ProductWidget
    │       │   │   │   │       │   │   │   └── Default.cshtml
    │       │   │   │   │       │   │   └── SimpleProductWidget
    │       │   │   │   │       │   │       └── Default.cshtml
    │       │   │   │   │       │   └── _ProductThumbnail.cshtml
    │       │   │   │   │       ├── _ViewImports.cshtml
    │       │   │   │   │       └── _ViewStart.cshtml
    │       │   │   │   ├── Cms
    │       │   │   │   │   └── Views
    │       │   │   │   │       ├── Shared
    │       │   │   │   │       │   └── Components
    │       │   │   │   │       │       ├── CarouselWidget
    │       │   │   │   │       │       │   └── Default.cshtml
    │       │   │   │   │       │       └── Menu
    │       │   │   │   │       │           └── Default.cshtml
    │       │   │   │   │       └── _ViewImports.cshtml
    │       │   │   │   ├── Core
    │       │   │   │   │   └── Views
    │       │   │   │   │       ├── Home
    │       │   │   │   │       │   └── Index.cshtml
    │       │   │   │   │       ├── _ViewImports.cshtml
    │       │   │   │   │       └── _ViewStart.cshtml
    │       │   │   │   ├── ProductRecentlyViewed
    │       │   │   │   │   └── Views
    │       │   │   │   │       ├── Shared
    │       │   │   │   │       │   └── Components
    │       │   │   │   │       │       └── ProductRecentlyViewed
    │       │   │   │   │       │           └── Default.cshtml
    │       │   │   │   │       └── _ViewImports.cshtml
    │       │   │   │   ├── Search
    │       │   │   │   │   └── Views
    │       │   │   │   │       ├── Shared
    │       │   │   │   │       │   └── Components
    │       │   │   │   │       │       └── SearchForm
    │       │   │   │   │       │           └── Default.cshtml
    │       │   │   │   │       └── _ViewImports.cshtml
    │       │   │   │   └── ShoppingCart
    │       │   │   │       └── Views
    │       │   │   │           ├── Shared
    │       │   │   │           │   └── Components
    │       │   │   │           │       └── CartBadge
    │       │   │   │           │           └── Default.cshtml
    │       │   │   │           └── _ViewImports.cshtml
    │       │   │   ├── Views
    │       │   │   │   ├── Shared
    │       │   │   │   │   ├── _Layout.cshtml
    │       │   │   │   │   ├── _LoginPartial.cshtml
    │       │   │   │   │   └── _SelectLanguagePartial.cshtml
    │       │   │   │   └── _ViewImports.cshtml
    │       │   │   └── theme.json
    │       │   └── SampleTheme
    │       │       ├── Areas
    │       │       │   ├── Catalog
    │       │       │   │   └── Views
    │       │       │   │       ├── Shared
    │       │       │   │       │   └── _ProductThumbnail.cshtml
    │       │       │   │       └── _ViewImports.cshtml
    │       │       │   └── Core
    │       │       │       └── Views
    │       │       │           ├── Home
    │       │       │           │   └── Index.cshtml
    │       │       │           ├── _ViewImports.cshtml
    │       │       │           └── _ViewStart.cshtml
    │       │       ├── Views
    │       │       │   ├── Shared
    │       │       │   │   └── _Layout.cshtml
    │       │       │   ├── _ViewImports.cshtml
    │       │       │   └── _ViewStart.cshtml
    │       │       └── theme.json
    │       ├── Views
    │       │   ├── Shared
    │       │   │   ├── 404.cshtml
    │       │   │   ├── Error.cshtml
    │       │   │   ├── _AccountMenu.cshtml
    │       │   │   ├── _AnalyticsScript.cshtml
    │       │   │   ├── _CookieConsentPartial.cshtml
    │       │   │   ├── _Layout.cshtml
    │       │   │   ├── _LoginPartial.cshtml
    │       │   │   ├── _SelectLanguagePartial.cshtml
    │       │   │   └── _ValidationScriptsPartial.cshtml
    │       │   └── _ViewImports.cshtml
    │       ├── appsettings.Development.json
    │       ├── appsettings.docker.json
    │       ├── appsettings.json
    │       ├── bundleconfig.json
    │       ├── bundleconfig.json.bindings
    │       ├── libman.json
    │       ├── modules.json
    │       ├── tempkey.rsa
    │       └── wwwroot
    │           ├── favicon.ico
    │           ├── lib
    │           │   ├── angular
    │           │   │   ├── angular.js
    │           │   │   └── angular.min.js
    │           │   ├── angular-animate
    │           │   │   ├── angular-animate.js
    │           │   │   ├── angular-animate.min.js
    │           │   │   └── angular-animate.min.js.map
    │           │   ├── angular-aria
    │           │   │   ├── angular-aria.js
    │           │   │   ├── angular-aria.min.js
    │           │   │   └── angular-aria.min.js.map
    │           │   ├── angular-bootstrap
    │           │   │   ├── ui-bootstrap-csp.css
    │           │   │   ├── ui-bootstrap-tpls.js
    │           │   │   ├── ui-bootstrap-tpls.min.js
    │           │   │   ├── ui-bootstrap.js
    │           │   │   └── ui-bootstrap.min.js
    │           │   ├── angular-bootstrap-colorpicker
    │           │   │   ├── css
    │           │   │   │   ├── colorpicker.css
    │           │   │   │   └── colorpicker.min.css
    │           │   │   ├── img
    │           │   │   │   ├── alpha.png
    │           │   │   │   ├── hue.png
    │           │   │   │   └── saturation.png
    │           │   │   └── js
    │           │   │       ├── bootstrap-colorpicker-module.js
    │           │   │       └── bootstrap-colorpicker-module.min.js
    │           │   ├── angular-material
    │           │   │   ├── angular-material-mocks.js
    │           │   │   ├── angular-material.css
    │           │   │   ├── angular-material.js
    │           │   │   ├── angular-material.min.css
    │           │   │   └── angular-material.min.js
    │           │   ├── angular-messages
    │           │   │   ├── angular-messages.js
    │           │   │   ├── angular-messages.min.js
    │           │   │   └── angular-messages.min.js.map
    │           │   ├── angular-smart-table
    │           │   │   ├── dist
    │           │   │   │   ├── smart-table.js
    │           │   │   │   ├── smart-table.min.js
    │           │   │   │   └── smart-table.min.js.map
    │           │   │   ├── smart-table.js
    │           │   │   └── smart-table.min.js
    │           │   ├── angular-summernote
    │           │   │   ├── angular-summernote.js
    │           │   │   └── angular-summernote.min.js
    │           │   ├── angular-ui-router
    │           │   │   ├── angular-ui-router.js
    │           │   │   └── angular-ui-router.min.js
    │           │   ├── angular-ui-tree
    │           │   │   ├── angular-ui-tree.css
    │           │   │   ├── angular-ui-tree.js
    │           │   │   ├── angular-ui-tree.min.css
    │           │   │   └── angular-ui-tree.min.js
    │           │   ├── bootbox
    │           │   │   ├── bootbox.js
    │           │   │   └── bootbox.min.js
    │           │   ├── bootstrap
    │           │   │   └── dist
    │           │   │       ├── css
    │           │   │       │   ├── bootstrap-theme.css
    │           │   │       │   ├── bootstrap-theme.css.map
    │           │   │       │   ├── bootstrap-theme.min.css
    │           │   │       │   ├── bootstrap-theme.min.css.map
    │           │   │       │   ├── bootstrap.css
    │           │   │       │   ├── bootstrap.css.map
    │           │   │       │   ├── bootstrap.min.css
    │           │   │       │   └── bootstrap.min.css.map
    │           │   │       ├── fonts
    │           │   │       │   ├── glyphicons-halflings-regular.eot
    │           │   │       │   ├── glyphicons-halflings-regular.svg
    │           │   │       │   ├── glyphicons-halflings-regular.ttf
    │           │   │       │   ├── glyphicons-halflings-regular.woff
    │           │   │       │   └── glyphicons-halflings-regular.woff2
    │           │   │       └── js
    │           │   │           ├── bootstrap.js
    │           │   │           └── bootstrap.min.js
    │           │   ├── bootstrap-star-rating
    │           │   │   ├── css
    │           │   │   │   ├── star-rating.css
    │           │   │   │   └── star-rating.min.css
    │           │   │   ├── img
    │           │   │   │   └── loading.gif
    │           │   │   └── js
    │           │   │       ├── locales
    │           │   │       │   ├── LANG.js
    │           │   │       │   ├── ar.js
    │           │   │       │   ├── de.js
    │           │   │       │   ├── es.js
    │           │   │       │   ├── fa.js
    │           │   │       │   ├── fr.js
    │           │   │       │   ├── it.js
    │           │   │       │   ├── ko.js
    │           │   │       │   ├── pl.js
    │           │   │       │   ├── pt-BR.js
    │           │   │       │   ├── ro.js
    │           │   │       │   ├── ru.js
    │           │   │       │   ├── tr.js
    │           │   │       │   ├── ua.js
    │           │   │       │   ├── vi-vn.js
    │           │   │       │   └── zh.js
    │           │   │       ├── star-rating.js
    │           │   │       └── star-rating.min.js
    │           │   ├── bootstrap-ui-datetime-picker
    │           │   │   ├── datetime-picker.js
    │           │   │   ├── datetime-picker.min.js
    │           │   │   └── datetime-picker.tpls.js
    │           │   ├── bootstrap4
    │           │   │   ├── css
    │           │   │   │   ├── bootstrap-grid.css
    │           │   │   │   ├── bootstrap-grid.css.map
    │           │   │   │   ├── bootstrap-grid.min.css
    │           │   │   │   ├── bootstrap-grid.min.css.map
    │           │   │   │   ├── bootstrap-reboot.css
    │           │   │   │   ├── bootstrap-reboot.css.map
    │           │   │   │   ├── bootstrap-reboot.min.css
    │           │   │   │   ├── bootstrap-reboot.min.css.map
    │           │   │   │   ├── bootstrap.css
    │           │   │   │   ├── bootstrap.css.map
    │           │   │   │   ├── bootstrap.min.css
    │           │   │   │   └── bootstrap.min.css.map
    │           │   │   └── js
    │           │   │       ├── bootstrap.bundle.js
    │           │   │       ├── bootstrap.bundle.js.map
    │           │   │       ├── bootstrap.bundle.min.js
    │           │   │       ├── bootstrap.bundle.min.js.map
    │           │   │       ├── bootstrap.js
    │           │   │       ├── bootstrap.js.map
    │           │   │       ├── bootstrap.min.js
    │           │   │       └── bootstrap.min.js.map
    │           │   ├── flags
    │           │   │   ├── blank.gif
    │           │   │   ├── flags.css
    │           │   │   ├── flags.min.css
    │           │   │   └── flags.png
    │           │   ├── font-awesome
    │           │   │   ├── css
    │           │   │   │   ├── font-awesome.css
    │           │   │   │   └── font-awesome.min.css
    │           │   │   └── fonts
    │           │   │       ├── FontAwesome.otf
    │           │   │       ├── fontawesome-webfont.eot
    │           │   │       ├── fontawesome-webfont.svg
    │           │   │       ├── fontawesome-webfont.ttf
    │           │   │       ├── fontawesome-webfont.woff
    │           │   │       └── fontawesome-webfont.woff2
    │           │   ├── i18n
    │           │   │   ├── angular-locale_ar-tn.js
    │           │   │   ├── angular-locale_ar.js
    │           │   │   ├── angular-locale_en-us.js
    │           │   │   ├── angular-locale_en.js
    │           │   │   ├── angular-locale_fr-fr.js
    │           │   │   ├── angular-locale_fr.js
    │           │   │   ├── angular-locale_ko-kr.js
    │           │   │   ├── angular-locale_ko.js
    │           │   │   ├── angular-locale_pt-br.js
    │           │   │   ├── angular-locale_pt.js
    │           │   │   ├── angular-locale_ru-ru.js
    │           │   │   ├── angular-locale_ru.js
    │           │   │   ├── angular-locale_uk-ua.js
    │           │   │   ├── angular-locale_uk.js
    │           │   │   ├── angular-locale_vi-vn.js
    │           │   │   └── angular-locale_vi.js
    │           │   ├── jquery
    │           │   │   ├── jquery.js
    │           │   │   ├── jquery.min.js
    │           │   │   ├── jquery.min.map
    │           │   │   ├── jquery.slim.js
    │           │   │   ├── jquery.slim.min.js
    │           │   │   └── jquery.slim.min.map
    │           │   ├── jquery-validation
    │           │   │   ├── additional-methods.js
    │           │   │   ├── additional-methods.min.js
    │           │   │   ├── jquery.validate.js
    │           │   │   └── jquery.validate.min.js
    │           │   ├── jquery-validation-unobtrusive
    │           │   │   ├── jquery.validate.unobtrusive.js
    │           │   │   └── jquery.validate.unobtrusive.min.js
    │           │   ├── matchheight
    │           │   │   ├── jquery.matchHeight-min.js
    │           │   │   └── jquery.matchHeight.js
    │           │   ├── multi-dropdown-menu
    │           │   │   ├── css
    │           │   │   │   └── bootstrap-4-navbar.css
    │           │   │   └── js
    │           │   │       └── bootstrap-4-navbar.js
    │           │   ├── ng-file-upload
    │           │   │   └── dist
    │           │   │       ├── ng-file-upload.js
    │           │   │       └── ng-file-upload.min.js
    │           │   ├── nouislider
    │           │   │   └── distribute
    │           │   │       ├── nouislider.js
    │           │   │       ├── nouislider.min.css
    │           │   │       └── nouislider.min.js
    │           │   ├── pagination
    │           │   │   ├── README.md
    │           │   │   ├── dirPagination.js
    │           │   │   ├── dirPagination.spec.js
    │           │   │   ├── dirPagination.tpl.html
    │           │   │   └── testTemplate.tpl.html
    │           │   ├── signalr
    │           │   │   └── dist
    │           │   │       └── browser
    │           │   │           ├── signalr.js
    │           │   │           └── signalr.min.js
    │           │   ├── smoothproducts
    │           │   │   ├── css
    │           │   │   │   └── smoothproducts.css
    │           │   │   └── js
    │           │   │       ├── smoothproducts.js
    │           │   │       └── smoothproducts.min.js
    │           │   ├── summernote
    │           │   │   ├── font
    │           │   │   │   ├── summernote.eot
    │           │   │   │   ├── summernote.ttf
    │           │   │   │   └── summernote.woff
    │           │   │   ├── lang
    │           │   │   │   ├── summernote-ar-AR.js
    │           │   │   │   ├── summernote-ar-AR.min.js
    │           │   │   │   ├── summernote-bg-BG.js
    │           │   │   │   ├── summernote-bg-BG.min.js
    │           │   │   │   ├── summernote-ca-ES.js
    │           │   │   │   ├── summernote-ca-ES.min.js
    │           │   │   │   ├── summernote-cs-CZ.js
    │           │   │   │   ├── summernote-cs-CZ.min.js
    │           │   │   │   ├── summernote-da-DK.js
    │           │   │   │   ├── summernote-da-DK.min.js
    │           │   │   │   ├── summernote-de-DE.js
    │           │   │   │   ├── summernote-de-DE.min.js
    │           │   │   │   ├── summernote-es-ES.js
    │           │   │   │   ├── summernote-es-ES.min.js
    │           │   │   │   ├── summernote-es-EU.js
    │           │   │   │   ├── summernote-es-EU.min.js
    │           │   │   │   ├── summernote-fa-IR.js
    │           │   │   │   ├── summernote-fa-IR.min.js
    │           │   │   │   ├── summernote-fi-FI.js
    │           │   │   │   ├── summernote-fi-FI.min.js
    │           │   │   │   ├── summernote-fr-FR.js
    │           │   │   │   ├── summernote-fr-FR.min.js
    │           │   │   │   ├── summernote-gl-ES.js
    │           │   │   │   ├── summernote-gl-ES.min.js
    │           │   │   │   ├── summernote-he-IL.js
    │           │   │   │   ├── summernote-he-IL.min.js
    │           │   │   │   ├── summernote-hr-HR.js
    │           │   │   │   ├── summernote-hr-HR.min.js
    │           │   │   │   ├── summernote-hu-HU.js
    │           │   │   │   ├── summernote-hu-HU.min.js
    │           │   │   │   ├── summernote-id-ID.js
    │           │   │   │   ├── summernote-id-ID.min.js
    │           │   │   │   ├── summernote-it-IT.js
    │           │   │   │   ├── summernote-it-IT.min.js
    │           │   │   │   ├── summernote-ja-JP.js
    │           │   │   │   ├── summernote-ja-JP.min.js
    │           │   │   │   ├── summernote-ko-KR.js
    │           │   │   │   ├── summernote-ko-KR.min.js
    │           │   │   │   ├── summernote-lt-LT.js
    │           │   │   │   ├── summernote-lt-LT.min.js
    │           │   │   │   ├── summernote-lt-LV.js
    │           │   │   │   ├── summernote-lt-LV.min.js
    │           │   │   │   ├── summernote-nb-NO.js
    │           │   │   │   ├── summernote-nb-NO.min.js
    │           │   │   │   ├── summernote-nl-NL.js
    │           │   │   │   ├── summernote-nl-NL.min.js
    │           │   │   │   ├── summernote-pl-PL.js
    │           │   │   │   ├── summernote-pl-PL.min.js
    │           │   │   │   ├── summernote-pt-BR.js
    │           │   │   │   ├── summernote-pt-BR.min.js
    │           │   │   │   ├── summernote-pt-PT.js
    │           │   │   │   ├── summernote-pt-PT.min.js
    │           │   │   │   ├── summernote-ro-RO.js
    │           │   │   │   ├── summernote-ro-RO.min.js
    │           │   │   │   ├── summernote-ru-RU.js
    │           │   │   │   ├── summernote-ru-RU.min.js
    │           │   │   │   ├── summernote-sk-SK.js
    │           │   │   │   ├── summernote-sk-SK.min.js
    │           │   │   │   ├── summernote-sl-SI.js
    │           │   │   │   ├── summernote-sl-SI.min.js
    │           │   │   │   ├── summernote-sr-RS-Latin.js
    │           │   │   │   ├── summernote-sr-RS-Latin.min.js
    │           │   │   │   ├── summernote-sr-RS.js
    │           │   │   │   ├── summernote-sr-RS.min.js
    │           │   │   │   ├── summernote-sv-SE.js
    │           │   │   │   ├── summernote-sv-SE.min.js
    │           │   │   │   ├── summernote-th-TH.js
    │           │   │   │   ├── summernote-th-TH.min.js
    │           │   │   │   ├── summernote-tr-TR.js
    │           │   │   │   ├── summernote-tr-TR.min.js
    │           │   │   │   ├── summernote-uk-UA.js
    │           │   │   │   ├── summernote-uk-UA.min.js
    │           │   │   │   ├── summernote-vi-VN.js
    │           │   │   │   ├── summernote-vi-VN.min.js
    │           │   │   │   ├── summernote-zh-CN.js
    │           │   │   │   ├── summernote-zh-CN.min.js
    │           │   │   │   ├── summernote-zh-TW.js
    │           │   │   │   └── summernote-zh-TW.min.js
    │           │   │   ├── plugin
    │           │   │   │   ├── databasic
    │           │   │   │   │   ├── summernote-ext-databasic.css
    │           │   │   │   │   ├── summernote-ext-databasic.js
    │           │   │   │   │   ├── summernote-ext-databasic.min.css
    │           │   │   │   │   └── summernote-ext-databasic.min.js
    │           │   │   │   ├── hello
    │           │   │   │   │   ├── summernote-ext-hello.js
    │           │   │   │   │   └── summernote-ext-hello.min.js
    │           │   │   │   └── specialchars
    │           │   │   │       ├── summernote-ext-specialchars.js
    │           │   │   │       └── summernote-ext-specialchars.min.js
    │           │   │   ├── summernote.css
    │           │   │   ├── summernote.js
    │           │   │   └── summernote.min.js
    │           │   ├── toastr
    │           │   │   └── build
    │           │   │       ├── toastr.css
    │           │   │       ├── toastr.js.map
    │           │   │       ├── toastr.min.css
    │           │   │       └── toastr.min.js
    │           │   └── wnumb
    │           │       └── wNumb.js
    │           ├── libs.min.css
    │           ├── robots.txt
    │           ├── themes
    │           │   ├── CozaStore
    │           │   │   ├── CozaStore.png
    │           │   │   ├── css
    │           │   │   │   ├── flags.css
    │           │   │   │   ├── flags.min.css
    │           │   │   │   ├── main.css
    │           │   │   │   ├── simpl.css
    │           │   │   │   └── util.css
    │           │   │   ├── fonts
    │           │   │   │   ├── Montserrat
    │           │   │   │   │   ├── Montserrat-Black.ttf
    │           │   │   │   │   ├── Montserrat-BlackItalic.ttf
    │           │   │   │   │   ├── Montserrat-Bold.ttf
    │           │   │   │   │   ├── Montserrat-BoldItalic.ttf
    │           │   │   │   │   ├── Montserrat-ExtraBold.ttf
    │           │   │   │   │   ├── Montserrat-ExtraBoldItalic.ttf
    │           │   │   │   │   ├── Montserrat-ExtraLight.ttf
    │           │   │   │   │   ├── Montserrat-ExtraLightItalic.ttf
    │           │   │   │   │   ├── Montserrat-Italic.ttf
    │           │   │   │   │   ├── Montserrat-Light.ttf
    │           │   │   │   │   ├── Montserrat-LightItalic.ttf
    │           │   │   │   │   ├── Montserrat-Medium.ttf
    │           │   │   │   │   ├── Montserrat-MediumItalic.ttf
    │           │   │   │   │   ├── Montserrat-Regular.ttf
    │           │   │   │   │   ├── Montserrat-SemiBold.ttf
    │           │   │   │   │   ├── Montserrat-SemiBoldItalic.ttf
    │           │   │   │   │   ├── Montserrat-Thin.ttf
    │           │   │   │   │   ├── Montserrat-ThinItalic.ttf
    │           │   │   │   │   └── OFL.txt
    │           │   │   │   ├── PlayfairDisplay
    │           │   │   │   │   ├── OFL.txt
    │           │   │   │   │   ├── PlayfairDisplay-Black.ttf
    │           │   │   │   │   ├── PlayfairDisplay-BlackItalic.ttf
    │           │   │   │   │   ├── PlayfairDisplay-Bold.ttf
    │           │   │   │   │   ├── PlayfairDisplay-BoldItalic.ttf
    │           │   │   │   │   ├── PlayfairDisplay-Italic.ttf
    │           │   │   │   │   └── PlayfairDisplay-Regular.ttf
    │           │   │   │   ├── Poppins
    │           │   │   │   │   ├── Poppins-Black.ttf
    │           │   │   │   │   ├── Poppins-BlackItalic.ttf
    │           │   │   │   │   ├── Poppins-Bold.ttf
    │           │   │   │   │   ├── Poppins-BoldItalic.ttf
    │           │   │   │   │   ├── Poppins-ExtraBold.ttf
    │           │   │   │   │   ├── Poppins-ExtraBoldItalic.ttf
    │           │   │   │   │   ├── Poppins-ExtraLight.ttf
    │           │   │   │   │   ├── Poppins-ExtraLightItalic.ttf
    │           │   │   │   │   ├── Poppins-Italic.ttf
    │           │   │   │   │   ├── Poppins-Light.ttf
    │           │   │   │   │   ├── Poppins-LightItalic.ttf
    │           │   │   │   │   ├── Poppins-Medium.ttf
    │           │   │   │   │   ├── Poppins-MediumItalic.ttf
    │           │   │   │   │   ├── Poppins-Regular.ttf
    │           │   │   │   │   ├── Poppins-SemiBold.ttf
    │           │   │   │   │   ├── Poppins-SemiBoldItalic.ttf
    │           │   │   │   │   ├── Poppins-Thin.ttf
    │           │   │   │   │   └── Poppins-ThinItalic.ttf
    │           │   │   │   ├── font-awesome-4.7.0
    │           │   │   │   │   ├── HELP-US-OUT.txt
    │           │   │   │   │   ├── css
    │           │   │   │   │   │   ├── font-awesome.css
    │           │   │   │   │   │   └── font-awesome.min.css
    │           │   │   │   │   ├── fonts
    │           │   │   │   │   │   ├── FontAwesome.otf
    │           │   │   │   │   │   ├── fontawesome-webfont.eot
    │           │   │   │   │   │   ├── fontawesome-webfont.svg
    │           │   │   │   │   │   ├── fontawesome-webfont.ttf
    │           │   │   │   │   │   ├── fontawesome-webfont.woff
    │           │   │   │   │   │   └── fontawesome-webfont.woff2
    │           │   │   │   │   ├── less
    │           │   │   │   │   │   ├── animated.less
    │           │   │   │   │   │   ├── bordered-pulled.less
    │           │   │   │   │   │   ├── core.less
    │           │   │   │   │   │   ├── fixed-width.less
    │           │   │   │   │   │   ├── font-awesome.less
    │           │   │   │   │   │   ├── icons.less
    │           │   │   │   │   │   ├── larger.less
    │           │   │   │   │   │   ├── list.less
    │           │   │   │   │   │   ├── mixins.less
    │           │   │   │   │   │   ├── path.less
    │           │   │   │   │   │   ├── rotated-flipped.less
    │           │   │   │   │   │   ├── screen-reader.less
    │           │   │   │   │   │   ├── stacked.less
    │           │   │   │   │   │   └── variables.less
    │           │   │   │   │   └── scss
    │           │   │   │   │       ├── _animated.scss
    │           │   │   │   │       ├── _bordered-pulled.scss
    │           │   │   │   │       ├── _core.scss
    │           │   │   │   │       ├── _fixed-width.scss
    │           │   │   │   │       ├── _icons.scss
    │           │   │   │   │       ├── _larger.scss
    │           │   │   │   │       ├── _list.scss
    │           │   │   │   │       ├── _mixins.scss
    │           │   │   │   │       ├── _path.scss
    │           │   │   │   │       ├── _rotated-flipped.scss
    │           │   │   │   │       ├── _screen-reader.scss
    │           │   │   │   │       ├── _stacked.scss
    │           │   │   │   │       ├── _variables.scss
    │           │   │   │   │       └── font-awesome.scss
    │           │   │   │   ├── iconic
    │           │   │   │   │   ├── css
    │           │   │   │   │   │   ├── material-design-iconic-font.css
    │           │   │   │   │   │   └── material-design-iconic-font.min.css
    │           │   │   │   │   └── fonts
    │           │   │   │   │       ├── Material-Design-Iconic-Font.eot
    │           │   │   │   │       ├── Material-Design-Iconic-Font.svg
    │           │   │   │   │       ├── Material-Design-Iconic-Font.ttf
    │           │   │   │   │       ├── Material-Design-Iconic-Font.woff
    │           │   │   │   │       └── Material-Design-Iconic-Font.woff2
    │           │   │   │   └── linearicons-v1.0.0
    │           │   │   │       ├── WebFont
    │           │   │   │       │   ├── Linearicons-Free.eot
    │           │   │   │       │   ├── Linearicons-Free.svg
    │           │   │   │       │   ├── Linearicons-Free.ttf
    │           │   │   │       │   ├── Linearicons-Free.woff
    │           │   │   │       │   └── Linearicons-Free.woff2
    │           │   │   │       └── icon-font.min.css
    │           │   │   ├── images
    │           │   │   │   └── icons
    │           │   │   │       ├── blank.gif
    │           │   │   │       ├── favicon.png
    │           │   │   │       ├── flags.png
    │           │   │   │       ├── icon-close.png
    │           │   │   │       ├── icon-close2.png
    │           │   │   │       ├── icon-email.png
    │           │   │   │       ├── icon-heart-01.png
    │           │   │   │       ├── icon-heart-02.png
    │           │   │   │       ├── icon-next.png
    │           │   │   │       ├── icon-pay-01.png
    │           │   │   │       ├── icon-pay-02.png
    │           │   │   │       ├── icon-pay-03.png
    │           │   │   │       ├── icon-pay-04.png
    │           │   │   │       ├── icon-pay-05.png
    │           │   │   │       ├── icon-prev.png
    │           │   │   │       ├── logo-01.png
    │           │   │   │       ├── logo-02.png
    │           │   │   │       └── pin.png
    │           │   │   ├── js
    │           │   │   │   ├── cozastore.js
    │           │   │   │   └── slick-custom.js
    │           │   │   ├── site.min.css
    │           │   │   └── vendor
    │           │   │       ├── animate
    │           │   │       │   └── animate.css
    │           │   │       ├── animsition
    │           │   │       │   ├── css
    │           │   │       │   │   ├── animsition.css
    │           │   │       │   │   └── animsition.min.css
    │           │   │       │   └── js
    │           │   │       │       ├── animsition.js
    │           │   │       │       └── animsition.min.js
    │           │   │       ├── css-hamburgers
    │           │   │       │   ├── hamburgers.css
    │           │   │       │   └── hamburgers.min.css
    │           │   │       └── slick
    │           │   │           ├── ajax-loader.gif
    │           │   │           ├── config.rb
    │           │   │           ├── fonts
    │           │   │           │   ├── slick.eot
    │           │   │           │   ├── slick.svg
    │           │   │           │   ├── slick.ttf
    │           │   │           │   └── slick.woff
    │           │   │           ├── slick-theme.css
    │           │   │           ├── slick-theme.less
    │           │   │           ├── slick-theme.scss
    │           │   │           ├── slick.css
    │           │   │           ├── slick.js
    │           │   │           ├── slick.less
    │           │   │           ├── slick.min.js
    │           │   │           └── slick.scss
    │           │   ├── SampleTheme
    │           │   │   ├── SampleTheme.png
    │           │   │   └── site.css
    │           │   └── generic-theme.png
    │           └── user-content
    │               └── no-image.png
    └── test
        ├── SimplCommerce.Infrastructure.Tests
        │   ├── EnumHelperTests.cs
        │   ├── Extensions
        │   │   └── DictionaryExtensionsTests.cs
        │   ├── SimplCommerce.Infrastructure.Tests.csproj
        │   └── StringHelperTests.cs
        ├── SimplCommerce.Module.Cms.Tests
        │   ├── Components
        │   │   └── CarouselWidgetViewComponentTests.cs
        │   ├── Controllers
        │   │   └── PageControllerTests.cs
        │   └── SimplCommerce.Module.Cms.Tests.csproj
        ├── SimplCommerce.Module.Core.Tests
        │   ├── Components
        │   │   └── DefaultShippingAddressViewComponentTests.cs
        │   ├── Services
        │   │   └── WidgetInstanceServiceTests.cs
        │   └── SimplCommerce.Module.Core.Tests.csproj
        ├── SimplCommerce.Module.Inventory.Tests
        │   ├── SimplCommerce.Module.Inventory.Tests.csproj
        │   └── StockServiceTests.cs
        ├── SimplCommerce.Module.Pricing.Tests
        │   ├── Controllers
        │   │   ├── CartRuleApiControllerTests.cs
        │   │   └── CartRuleUsageApiControllerTests.cs
        │   ├── CouponServiceTest.cs
        │   └── SimplCommerce.Module.Pricing.Tests.csproj
        ├── SimplCommerce.Module.ProductComparison.Tests
        │   ├── Controllers
        │   │   └── ComparingProductControllerTests.cs
        │   ├── Services
        │   │   └── ComparingProductServiceTests.cs
        │   └── SimplCommerce.Module.ProductComparison.Tests.csproj
        └── SimplCommerce.Module.ShippingFree.Tests
            ├── Services
            │   └── FreeShippingServiceProviderTests.cs
            └── SimplCommerce.Module.ShippingFree.Tests.csproj

723 directories, 1961 files

标签:

实例下载地址

SimplCommerce:基于.NET Core的简易跨平台模块化电商系统

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警