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

点这里进入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 }

Class CourseDto

可写对象

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 }

CreateUpdateCourseDto

创建应用服务接口

在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 }

ICourseAppService

创建应用服务

在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 }

CourseAppService

原文地址:https://www.cnblogs.com/IT-Evan/p/ABP8.html

时间: 2024-11-10 14:40:11

ABP开发手记8 - 应用层创建应用服务的相关文章

ABP开发手记6 - 领域层创建实体

点这里进入ABP开发手记目录 创建实体 在领域层(即JD.CRS.Core)下新建文件夹Entitys //用以存放实体对象添加一个实体类Course.cs //课程信息 1 using Abp.Domain.Entities; 2 using Abp.Domain.Entities.Auditing; 3 using Abp.Timing; 4 using System; 5 using System.Collections.Generic; 6 using System.ComponentM

ABP开发手记1 - 开篇

点这里进入ABP开发手记目录 基于DDD的现代ASP.NET开发框架 - ABP ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspne

ABP开发手记3 - 解决方案

点这里进入ABP开发手记目录 创建项目 点这里进入ABP启动模板 如图操作,我们先生成一个基于.NET Core的MPA(多页面应用).点击"Create my project!"即可创建项目. 解读项目 展示层 (JD.CRS.Web.Mvc) 提供一个用户界面,实现用户交互操作. ASP.NET Core MVC(模型-视图-控制器)可以视为展示层.它可以是物理层(通过HTTP API使用应用程序)或逻辑层(直接注入和使用应用程序服务).无论哪种情况,它都可以包括 本地化,导航,对

ABP开发手记15 - 小结

点这里进入ABP开发手记目录 效果预览 至此,基于ABP的CURD(增删改查)示例已完成,效果如下 登录 首页 查询课程 新增课程 修改课程 删除课程 阶段总结 关键步骤: 领域层创建实体基础设施层更新数据库应用层创建应用服务展示层实现增删改查 循环往复此步骤即可创建多个CURD页面. 原文地址:https://www.cnblogs.com/IT-Evan/p/ABP15.html

ABP开发手记2 - 体系架构

点这里进入ABP开发手记目录 ABP分层体系架构 介绍 应用程序代码库的分层是一种广泛接受的技术,可帮助降低复杂性并提高代码可重用性.为了实现分层体系结构,ASP.NET Boilerplate遵循域驱动设计的原理. 域驱动设计层 域驱动设计(DDD)有四个基本层: 展示层:为用户提供界面.使用应用程序层来实现用户交互. 应用层:在表示层和域层之间进行中介.编排业务对象以执行特定的应用程序任务. 领域层:包括业务对象及其规则.这是应用程序的核心. 基础设施层:提供通用技术功能,这些功能主要使用第

ABP开发手记10 - 展示层实现增删改查-控制器

点这里进入ABP开发手记目录 创建视图模型 在展示层(即JD.CRS.Web.Mvc)的Controllers下新建一个控制器CourseController.cs 1 using Abp.Application.Services.Dto; 2 using Abp.AspNetCore.Mvc.Authorization; 3 using JD.CRS.Authorization; 4 using JD.CRS.Controllers; 5 using JD.CRS.Course; 6 usin

ABP开发手记9 - 展示层实现增删改查-视图模型

点这里进入ABP开发手记目录 创建视图模型 在展示层(即JD.CRS.Web.Mvc)的Models下新建文件夹Course //用以存放Course相关视图模型 在JD.CRS.Web.Mvc/Models/Course下新建两个视图模型 只读模型 CourseListViewModel.cs //用于查询Course视图模型 1 using System.Collections.Generic; 2 using JD.CRS.Course.Dto; 3 4 namespace JD.CRS.

ABP开发手记7 - 基础设施层更新数据库

点这里进入ABP开发手记目录 设置数据库 在基础设施层(即JD.CRS.EntityFrameworkCore)打开数据库环境设置 JD.CRS.EntityFrameworkCore/EntityFrameworkCore/CRSDbContext.cs添加一行 public DbSet<Course> Course { get; set; } //创建数据表Course 1 using Microsoft.EntityFrameworkCore; 2 using Abp.Zero.Enti

ABP开发手记4 - 初始化运行

点这里进入ABP开发手记目录 编译解决方案 重新生成解决方案,确保生成成功. 连接数据库 打开JD.CRS.Web.Host / appsettings.json,修改数据库连接设置ConnectionStrings. 打开JD.CRS.Web.Host / appsettings.json,做同样修改. 迁移数据库 方法一 设置JD.CRS.Web.Mvc为启始项目 打开工具 / NuGet包管理器 / 程序包管理器控制台 默认项目选择JD.CRS.EntityFrameworkCore 依次