118 EditorType、TaxBasedOn、TaxDisplayType、ForumSettings、TaxSettings、TaxCategory、TaxCategoryBuilder、CustomerNavigationEnum、CustomerNavigationItemModel、CustomerNavigationModel、CustomerAttributeValueModel、CustomerAttributeModel、CustomerInfoModel、CustomerNavigationViewComponent
EditorType枚举,编辑输入控件的类型,共有2种类型:文本输入控件/BBCode输入控件(以用于对帖子内容进行输入)。
TaxBasedOn枚举,该枚举定义了增值税3种税率计算方式:账单地址/配送地址/默认地址,并根据相应的税率计算出与之相应对应的税金。
TaxDisplayType枚举,该枚举用于确认订单金额中是否包含包含有税金,从而确认税金上缴操作最终对象:网店的拥有者/购买商品的用户。
ForumSettings类,通过该类及其属性成员实例,设定与论坛相关的一些默认数据值,并把这些数据值持久化存储到数据库的设置表中,管理员可以修改这些数据值,使当前程序可以根据管理员的需求进行定制。
TaxSettings类,通过该类及其属性成员实例,设定与增值税相关的一些默认数据值,并把这些数据值持久化存储到数据库的设置表中,管理员可以修改这些数据值,使当前程序可以根据管理员的需求进行定制。
TaxCategory类,通过该实体类及其属性成员,实现当前程序与数据库中增值税类别表之间的数据交互操作。
TaxCategoryBuilder类,该类通过对父类中同名方法进行覆写,为增值税类别实体类中的一些属性成员定义了相关约束规则及其级联关系,为把这些定义约束规则和级联关系,映射到增值税类别表的相应字段上,提供数据和方法支撑。
CustomerNavigationEnum枚举,通过该枚举中的枚举成员,定义了前台左侧菜单组件中所包含的所有菜单项。
CustomerNavigationItemModel纪录,通过纪录定义了前台左侧菜单组件中指定菜单项所需的数据,为菜单项的绑定及其显示提供数据支撑。
CustomerNavigationModel纪录,通过纪录定义了前台左侧菜单组件中所菜单项所需的数据,为菜单的绑定及其显示提供数据支撑。
CustomerAttributeValueModel纪录,通过纪录及其成员,为用户属性值在页面中的绑定及其显示提供数据支撑。
CustomerAttributeModel纪录,通过纪录及其成员,为用户属性在页面中的绑定及其显示提供数据支撑。
CustomerInfoModel纪录,通过纪录及其成员,为用户信息的页面的绑定及其显示提供数据支撑。
CustomerNavigationViewComponent类, 把管前台左侧菜单组件的默认本地化数据,与该组件进行绑定,即在页面展示时,(如果)显示该组件及其所默认本地化数据。
1、重构Nop.Data.Migrations.SchemaMigration.Up方法,取消下列语句前的注释:
_migrationManager.BuildTable<TaxCategory>(Create);
2、取消对Nop.Services.Installation.InstallationService.InstallSettingsAsync.ForumSettings的注释。
3、取消对Nop.Services.Installation.InstallationService.InstallSettingsAsync.TaxSettings的注释。
4、Nop.Services.Installation.InstallationService类中定义下列方法:
Nop.Services.Installation.InstallationService.InstallTaxCategoriesAsync
5、取消Nop.Services.Installation.InstallationService.InstallRequiredDataAsync方法中下列语句中的注释:
await InstallTaxCategoriesAsync();
6、重构Nop.Web.Infrastructure.RouteProvider.RegisterRoutes方法,取消对该方法中下列语句的注释。
//用户信息页面路由映射。
endpointRouteBuilder.MapControllerRoute(name: "CustomerInfo",
pattern: $"{lang}/customer/info",
defaults: new { controller = "Customer", action = "Info" });
7、重构Nop.Web.Factories.IcustomerModelFactory和Nop.Web.Factories.CustomerModelFactory,取消对下列方法的注释:
PrepareCustomCustomerAttributesAsync
PrepareCustomerInfoModelAsync
PrepareCustomerNavigationModelAsync
8、定义Nop.Web.Controllers.CustomerController.Info方法。
9、复制\Nop.Web\Views\Shared\Components\CustomerNavigation\Default.cshtm页面到示例程序。
10、复制\Nop.Web\Views\Shared\_ColumnsTwo.cshtml页面到示例程序。
11、复制\Nop.Web\Views\Customer\Info.cshtml页面到示例程序。
12、按F5执行安装页面,执行数据库的初始化安装操作,然后执行用户登录操作后,跳转到“https://localhost:44303/customer/info”,这里“我的帐户信息”页面中的前台左侧菜单组件已经在当前页面中已经被显示了出来。
对以上功能更为具体实现和注释见:。22-04-10-043_Nop_4.40.4(前台左侧菜单组件的集成)