ABP开发框架前后开发系列——(6)ABP基本界面处理和省级城市行政区域管理模块开发


浏览:649 次

最近,没有关于更新ABP框架的文章。我一直在研究和包装相关接口。最后,我已经结束了,继续整理我的开发经验。上次,我在文章中介绍了字典模块的管理,以及对所有记录的定期访问、对条件查询记录的访问以及创建、更新和删除这些接口的实现。本章继续深入介绍ABP框架在实际项目中的使用。本章随机排列ABP基本界面,并显示已完成的省级城市行政区管理模块的内容。

1.ABP通用处理接口

根据ABP框架默认提供的一些接口,我们可以在服务器端封装相关的Web API接口(由于动态API的便利性,实际上只需要完成ApplicationService层)。在上一节中,我们介绍了获取条件查询记录、创建、更新和删除这些接口以及扩展自己的自定义业务接口的实现和处理。下面是字典模块的接口关系。

形象

字典管理界面列出字典类型,并以页面形式显示字典类型下的字典数据。页面显示使用页面控件进行显示。

形象

添加或编辑表单的界面如下

形象

或批量字典数据输入

形象

这个精确或模糊的查询是在app服务层中定义的。在app服务层接口类中,重写CreateFilteredQuery可以设置GetAll的查询规则,重写ApplySorting可以指定列表的排序顺序。

形象

2、ABP通用查询界面细化

上述内容概要基本上实现了传统数据的分页查询。我们可以看到,对于字典数据,分页查询条件是在DictDataPagedDto中定义的,这是我们定义的分页条件,如下面的代码所示。

///<摘要>

///用于基于条件的分页查询

///

公共类DictDataagedDto:PagedResultRequestDto

{

///<摘要>

///字典类型ID

///

公共虚拟字符串DictType_ID{get;set;}

///<摘要>

///类型名称

///

公共虚拟字符串名称{get;set;}

///<摘要>

///指定值

///

公共虚拟字符串值{get;set;}

///<摘要>

///备注

///

公共虚拟字符串备注{get;set;}

}

对于这个类文件,我们通常将相关的业务模块放在一个文件中。例如,与字典数据相关的DTO被放置在DictDataDto文件中以便于管理,如下所示。

以上是字典模块的基本介绍。事实上,当我们开发业务模块并输入数据时,我们需要采取判断步骤,例如不允许重复名称。创建新记录和更新现有记录需要进行必要的判断,以确保数据的有效性和不可重复性。

例如,对于省管理界面,我们无法运行以重复输入省的名称,因此我们需要在输入或更新数据时进行必要的存在判断。

形象

上述处理是如何实现的。

主界面实现代码如下所示。

if(字符串.IsNullOrEmpty(ID))

{

//判断存在条件

var countDto=new ProvidePagedDto(){ProvideName=this.txtProvide.Text};

bool isExist=等待ProvinceApiCaller.Instance。计数(countDto)>0

if(isExist)

{

消息DxUtil。显示提示(“省份名称已存在,请选择其他名称”);

this.txtProvince.Focus();

回来

}

其他的

{

//创建新记录

tempInfo=等待ProvinceApiCaller.Instance.Create(tempInfo);

}

}

其他的

{

//判断存在条件,排除该记录同名的情况

var countDto=新省份PagedDto(){ProvinceName=this.xtProvince.Text,ExcludeId=ID ToInt64()};

bool isExist=等待ProvinceApiCaller.Instance。计数(countDto)>0

if(isExist)

{

消息DxUtil。显示提示(“省份名称已存在,请选择其他名称”);

this.txtProvince.Focus();

回来

}

其他的

{

//更新记录

tempInfo=等待ProvinceApiCaller.Instance.Update(tempInfo);

}

}

已保存进程数据(this.btnOK,new EventArgs());

这DialogResult=System.Windows.Forms.DialogResult.OK;

我们发现这里添加了一个Count函数来判断传入的条件是先前的分页请求条件。

bool isExist=等待ProvinceApiCaller.Instance。计数(countDto)>0

让我们看看app服务层的接口实现,如下所示。

///<摘要>

///获取指定的数量

相关资讯:
APP项目开发流程

APP项目开发流程

查看
软件外包开发过程

软件外包开发过程

查看
软件外包项目开发过程

软件外包项目开发过程

查看
如何找到一家满意的软件项目外包公司

如何找到一家满意的软件项目外包公司

查看
寻找优质APP外包公司

寻找优质APP外包公司

查看