项目

CMS Kit Pro:投票系统

您必须拥有 ABP Team 或更高级别许可 才能使用 CMS Kit Pro 模块的功能。

CMS Kit 提供投票系统,允许用户创建、编辑和删除投票。以下是投票小部件的截图:

cmskit-module-poll-widget

启用投票系统

默认情况下,CMS Kit 功能处于禁用状态。因此,在使用前需要启用所需功能。您可以使用全局功能系统在开发时启用/禁用 CMS Kit 功能。或者,您可以使用 ABP 的功能系统在运行时禁用 CMS Kit 功能。

请查看 CMS Kit 模块文档的“如何安装”章节,了解如何在开发时启用/禁用 CMS Kit 功能。

用户界面

菜单项

CMS Kit 模块管理端在CMS菜单项下添加了以下项目:

投票:投票管理页面。

CmsKitProAdminMenus 类包含菜单项名称的常量定义。

页面

投票管理

您可以在解决方案的管理端对投票进行列表展示、创建、更新和删除操作。

poll-page poll-edit-question-page poll-edit-options-page

投票小部件

投票系统提供投票小部件,供用户投票并显示结果。您可以将小部件放置在页面上,如下所示:

@await Component.InvokeAsync(
    typeof(PollViewComponent),
    new
    {
        widgetName = "my-poll-1"
    })

配置选项

在使用投票系统前,您需要定义小部件。可以使用 CmsKitPollingOptions 进行配置。CmsKitPollingOptions 可在领域层的模块 ConfigureServices 方法中进行配置。

示例:

Configure<CmsKitPollingOptions>(options =>
    {
        options.AddWidget("my-poll-1");
    });

CmsKitPollingOptions 属性:

  • WidgetNames:投票系统中已定义的小部件列表。options.AddWidget 方法是向此列表添加新小部件的快捷方式。

内部结构

领域层

聚合

本模块遵循实体最佳实践与规范指南。

投票(Poll)

一个投票代表包含选项的已创建投票:

  • Poll(聚合根):代表系统中的投票,包含其选项。
  • PollOption(实体):代表系统中与投票相关的已定义选项。
用户投票记录(PollUserVote)

用户投票记录代表用户对投票的选择:

  • PollUserVote(聚合根):代表系统中的用户投票记录。

仓储

本模块遵循仓储最佳实践与规范指南。

为这些功能定义了以下自定义仓储:

  • IPollRepository
  • IPollUserVoteRepository

领域服务

本模块遵循领域服务最佳实践与规范指南。

投票管理器

PollManager 用于执行 Poll 聚合根的相关操作。

应用层

应用服务

  • PollAdminAppService(实现 IPollAdminAppService):实现管理端投票管理的用例。
  • PollPublicAppService(实现 IPollPublicAppService):实现公共网站投票的用例。

数据库提供程序

通用配置

表/集合前缀与模式

所有表/集合默认使用 Cms 前缀。如需更改表前缀或设置模式名称(如果数据库提供程序支持),可设置 CmsKitDbProperties 类的静态属性。

连接字符串

本模块使用 CmsKit 作为连接字符串名称。如果未定义此名称的连接字符串,将回退到 Default 连接字符串。

详情请参阅连接字符串文档。

Entity Framework Core

数据表
  • CmsPolls
    • CmsPollOptions
  • CmsPollUserVotes

MongoDB

集合
  • CmsPolls
  • CmsPollUserVotes

实体扩展

请查看 CMS Kit 模块文档的“实体扩展”章节,了解如何扩展 CMS Kit Pro 模块投票功能的实体。

在本文档中