欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ABP开发手记8 - 应用层创建应用服务

程序员文章站 2023-08-23 12:40:49
点这里进入ABP开发手记目录 创建目录 在应用层(即JD.CRS.Application)下创建文件夹Course //用以存放Course相关应用服务 在JD.CRS.Application/Course下创建文件夹Dto //用以存放Course相关数据传输对象 创建数据传输对象 在JD.CRS ......

点这里进入abp开发手记目录 

创建目录

在应用层(即jd.crs.application)下创建文件夹course //用以存放course相关应用服务

在jd.crs.application/course下创建文件夹dto //用以存放course相关数据传输对象

创建数据传输对象

在jd.crs.application/course/dto下创建两个dto

只读对象

coursedto.cs //用于查询course对象

贴上automapfrom的特性

[automapfrom(typeof(entitys.course))]

 1 using abp.application.services.dto;
 2 using abp.automapper;
 3 using system;
 4 using system.componentmodel.dataannotations;
 5 
 6 namespace jd.crs.course.dto
 7 {
 8 
 9     [automapfrom(typeof(entitys.course))]
10     public class coursedto : entitydto<int>
11     {
12         /// <summary>
13         /// 课程编号
14         /// </summary>
15         [stringlength(50)]
16         public string code { get; set; }
17         /// <summary>
18         /// 院系编号
19         /// </summary>
20         [stringlength(50)]
21         public string departmentcode { get; set; }
22         /// <summary>
23         /// 课程名称
24         /// </summary>
25         [stringlength(150)]
26         public string name { get; set; }
27         /// <summary>
28         /// 课程积分
29         /// </summary>
30         [range(0, 5)]
31         public int credits { get; set; }
32         /// <summary>
33         /// 备注
34         /// </summary>
35         [stringlength(200)]
36         public string remarks { get; set; }
37         /// <summary>
38         /// 状态: 0 正常, 1 废弃
39         /// </summary>
40         public int? status { get; set; }
41         /// <summary>
42         /// 创建日期
43         /// </summary>
44         public datetime? createdate { get; set; }
45         /// <summary>
46         /// 创建人
47         /// </summary>
48         [stringlength(50)]
49         public string createname { get; set; }
50         /// <summary>
51         /// 修改日期
52         /// </summary>
53         public datetime? updatedate { get; set; }
54         /// <summary>
55         /// 修改人
56         /// </summary>
57         [stringlength(50)]
58         public string updatename { get; set; }
59 
60         public datetime creationtime { get; set; }
61     }
62 }

可写对象

createupdatecoursedto //用于创建/修改course对象

贴上automapto的特性

[automapto(typeof(entitys.course))]

 1 using abp.application.services.dto;
 2 using abp.automapper;
 3 using system;
 4 using system.componentmodel.dataannotations;
 5 
 6 namespace jd.crs.course.dto
 7 {
 8 
 9     [automapto(typeof(entitys.course))]
10     public class createupdatecoursedto : entitydto<int>
11     {
12         /// <summary>
13         /// 课程编号
14         /// </summary>
15         [stringlength(50)]
16         public string code { get; set; }
17         /// <summary>
18         /// 院系编号
19         /// </summary>
20         [stringlength(50)]
21         public string departmentcode { get; set; }
22         /// <summary>
23         /// 课程名称
24         /// </summary>
25         [stringlength(150)]
26         public string name { get; set; }
27         /// <summary>
28         /// 课程积分
29         /// </summary>
30         [range(0, 5)]
31         public int credits { get; set; }
32         /// <summary>
33         /// 备注
34         /// </summary>
35         [stringlength(200)]
36         public string remarks { get; set; }
37         /// <summary>
38         /// 状态: 0 正常, 1 废弃
39         /// </summary>
40         public int? status { get; set; }
41         /// <summary>
42         /// 创建日期
43         /// </summary>
44         public datetime? createdate { get; set; }
45         /// <summary>
46         /// 创建人
47         /// </summary>
48         [stringlength(50)]
49         public string createname { get; set; }
50         /// <summary>
51         /// 修改日期
52         /// </summary>
53         public datetime? updatedate { get; set; }
54         /// <summary>
55         /// 修改人
56         /// </summary>
57         [stringlength(50)]
58         public string updatename { get; set; }
59 
60         public datetime creationtime { get; set; }
61     }
62 }

创建应用服务接口

在jd.crs.application/course下新建项/接口icourseappservice.cs

 1 using abp.application.services;
 2 using abp.application.services.dto;
 3 using jd.crs.course.dto;
 4 
 5 namespace jd.crs.course
 6 {
 7     public interface icourseappservice : iasynccrudappservice<//定义了crud方法
 8              coursedto, //用来展示课程
 9              int, //course实体的主键
10              pagedresultrequestdto, //获取课程的时候用于分页
11              createupdatecoursedto, //用于创建课程
12              createupdatecoursedto> //用于更新课程
13     {
14     }
15 }

创建应用服务

在jd.crs.application/course下新建项/类courseappservice.cs 

 1 using abp.application.services;
 2 using abp.application.services.dto;
 3 using abp.domain.repositories;
 4 using jd.crs.course.dto;
 5 using system.threading.tasks;
 6 
 7 namespace jd.crs.course
 8 {
 9 
10     public class courseappservice : asynccrudappservice<entitys.course, coursedto, int, pagedresultrequestdto,
11                              createupdatecoursedto, createupdatecoursedto>, icourseappservice
12 
13     {
14 
15         public courseappservice(irepository<entitys.course, int> repository)
16             : base(repository)
17         {
18 
19         }
20 
21         public override task<coursedto> create(createupdatecoursedto input)
22         {
23             var sin = input;
24             return base.create(input);
25         }
26     }
27 }