abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十二)
abp(net core)+easyui+efcore实现仓储管理系统目录
abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一)
abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二)
abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三)
abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四)
abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九)
abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)
上接(abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)),在这一篇文章中我们创建服务接口与服务实现类,并创建控制器类。
二、定义应用服务接口需要用到的分页类
为了在进行查询时使用, PagedSupplierResultRequestDto被用来将模块数据传递到基础设施层.
1. 在Visual Studio 2017的“解决方案资源管理器”中,右键单击“ABP.TPLMS.Application”项目,在弹出菜单中选择“添加” > “新建文件夹”,并重命名为“Suppliers”
2. 使用鼠标右键单击我们刚才创建的“Suppliers”文件夹,在弹出菜单中选择“添加” > “新建文件夹”,并重命名为“Dto”。
3.右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 PagedSupplierResultRequestDto,然后选择“添加”。代码如下。
using Abp.Application.Services.Dto;
using System;
using System.Collections.Generic;
using System.Text; namespace ABP.TPLMS.Supplier.Dto
{
public class PagedSupplierResultRequestDto : PagedResultRequestDto
{
public string Keyword { get; set; }
}
}
4.右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 SupplierDto,然后选择“添加”。代码如下。
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using ABP.TPLMS.Entitys;
using System;
using System.Collections.Generic;
using System.Text; namespace ABP.TPLMS.Suppliers.Dto
{ [AutoMapFrom(typeof(Supplier))]
public class SupplierDto : EntityDto<int>
{ public string Address { get; set; } public string Name { get; set; }
public string Email { get; set; } public string Code { get; set; }
public int Sex { get; set; } public string LinkName { get; set; } public int Status { get; set; }
public string Tel { get; set; }
public string Mobile { get; set; } public DateTime CreationTime { get; set; }
}
}
5.右键单击“Dto”文件夹,然后选择“添加” > “类”。 将类命名为 CreateUpdateSupplierDto,然后选择“添加”。代码如下。
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using ABP.TPLMS.Entitys;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text; namespace ABP.TPLMS.Suppliers.Dto
{ [AutoMapTo(typeof(Supplier))]
public class CreateUpdateSupplierDto : EntityDto<int>
{ public const int MaxLength = ;
[StringLength(MaxLength)]
public string Address { get; set; } [Required]
[StringLength(MaxLength)]
public string Name { get; set; } [Required]
[StringLength(MaxLength)]
public string Email { get; set; } [Required]
[StringLength()]
public string Code { get; set; }
public int Sex { get; set; } [StringLength(MaxLength)]
public string LinkName { get; set; }
public int Status { get; set; } [Required]
[StringLength(MaxLength)]
public string Tel { get; set; } [StringLength(MaxLength)]
public string Mobile { get; set; }
}
}
三、定义ISupplierAppService接口
6. 在Visual Studio 2017的“解决方案资源管理器”中,鼠标右键单击“Suppliers”文件夹,然后选择“添加” > “新建项”,在弹出对话框中选择“接口”。为应用服务定义一个名为 ISupplierAppService 的接口。代码如下。
using Abp.Application.Services;
using ABP.TPLMS.Suppliers.Dto;
using System;
using System.Collections.Generic;
using System.Text; namespace ABP.TPLMS.Suppliers
{
public interface ISupplierAppService : IAsyncCrudAppService<//定义了CRUD方法
SupplierDto, //用来展示供应商
int, //Supplier实体的主键
PagedSupplierResultRequestDto, //获取供应商的时候用于分页
CreateUpdateSupplierDto, //用于创建供应商
CreateUpdateSupplierDto> //用于更新供应商
{
}
}
四、实现ISupplierAppService
7.在Visual Studio 2017的“解决方案资源管理器”中,右键单击“Suppliers”文件夹,然后选择“添加” > “新建项”,在弹出对话框中选择“类”。为应用服务定义一个名为 SupplierAppService 的服务类。代码如下。
using Abp.Application.Services;
using Abp.Domain.Repositories;
using ABP.TPLMS.Entitys;
using ABP.TPLMS.Suppliers.Dto;
using System;
using System.Collections.Generic;
using System.Text; namespace ABP.TPLMS.Suppliers
{ public class SupplierAppService :AsyncCrudAppService<Supplier, SupplierDto, int, PagedSupplierResultRequestDto,
CreateUpdateSupplierDto, CreateUpdateSupplierDto>,ISupplierAppService { public SupplierAppService(IRepository<Supplier, int> repository)
: base(repository)
{ } public override Task<SupplierDto> Create(CreateUpdateSupplierDto input)
{
var sin = input;
return base.Create(input);
}
}
}
五 创建SupplierController继承自TPLMSControllerBase
1. 在Visual Studio 2017的“解决方案资源管理器”中,右键单击在领域层“ABP.TPLMS.Web.Mvc”项目中的Controller目录。 选择“添加” > “新建项…”。如下图。

2. 在弹出对话框“添加新项-ABP.TPLMS.Web.Mvc”中选择“控制器类”,然后在名称输入框中输入“SupplierController”,然后点击“添加”按钮。如下图。

3.在SupplierController.cs文件中输入如下代码,通过构造函数注入对应用服务的依赖。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Abp.Application.Services.Dto;
using Abp.AspNetCore.Mvc.Authorization;
using Abp.Runtime.Validation;
using ABP.TPLMS.Controllers;
using ABP.TPLMS.Suppliers;
using ABP.TPLMS.Suppliers.Dto;
using ABP.TPLMS.Web.Models.Supplier;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; namespace ABP.TPLMS.Web.Controllers
{ [AbpMvcAuthorize]
public class SupplierController : TPLMSControllerBase
{
const int MaxNum= ;
// GET: /<controller>/
public async Task<IActionResult> Index()
{ var module = (await _supplierAppService.GetAll(new PagedSupplierResultRequestDto { MaxResultCount = MaxNum })).Items;
// Paging not implemented yet
SupplierDto cuModule = module.First();
var model = new SupplierListViewModel
{ Supplier = cuModule,
Suppliers=module };
return View(model);
} private readonly ISupplierAppService _supplierAppService; public SupplierController(ISupplierAppService supplierAppService)
{
_supplierAppService = supplierAppService; }
public async Task<ActionResult> EditSupplierModal(int moduleId) {
var module = await _supplierAppService.Get(new EntityDto<int>(moduleId));
CreateUpdateSupplierDto cuSupplier = AutoMapper.Mapper.Map<CreateUpdateSupplierDto>(module);
var model = new EditSupplierModalViewModel
{
Supplier = cuSupplier };
return View("_EditSupplierModal", model);
}
}
}
abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十二)的更多相关文章
- abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十四)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十五)
core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+e ...
- abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十三)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之六(四十二)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之三(五十二)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统--ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十一)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之四(四十)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之八(四十四)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之一(四十九)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
随机推荐
- NoSQL数据库兴起
前言 近几年NoSQL数据库兴起,各种新的产品层出不穷,在此学习下NoSQL的基本理论,并认识下常见的NoSQL数据库. 一 NoSQL数据库兴起的原因 随着大数据技术兴起和Web2.0时代的到来.传 ...
- 使用SQL行转列函数pivot遇到的问题
背景:对投票的结果按照单位进行汇总统计,数据库中表记录的各个账号对各个选项的投票记录.马上想到一个解决方案,先根据单位和选项进行Group By,然后再行转列得出单位对各个选项的投票情况. with ...
- python基本数据类型之数字类型和其相关运算
数字(number) Python3 支持 int.float.bool.complex(复数). 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long. ...
- 并发编程之美,带你深入理解java多线程原理
1.什么是多线程? 多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率.线程是在同一时间需要完成多项任务的时候被实现的. 2.了解多线程 了解多线程之前我们先搞清楚几个重要的概念! 如 ...
- Java学习笔记之---static
Java学习笔记之---static static不能修饰类,局部变量 (一)静态成员的特征 static+属性 静态属性 无论实例化出来多少个对象,都会共用同一块静态空间,类对象共享 静态成员从第 ...
- 包教包会之Open Live Writer设置代码样式
Open Live Writer(以下简称OLW),作为一个在本地写博文,然后发布到各个博客网站的客户端,在使用上个人觉得还是比较好用的.但是其对IT博文中代码部分的内容样式支持不是很友好.下面是本人 ...
- Bzoj 1040 [ZJOI2008]骑士 题解
1040: [ZJOI2008]骑士 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5368 Solved: 2044[Submit][Status ...
- 关于css样式加载的问题
今天我在学习jQuery的addClass操作时遇到了一个小问题,想来跟大家分享一下,避免初学者踩坑. 我的需求是制作一个表格,并让它隔行换色,在此基础上再加上鼠标悬浮变色的效果.(主要训练jQuer ...
- Mysql常用语法及入门开篇(一)
数据:信息,记录.阅读: 数据库:数据的仓库,存储许多的数据(信息).按照数据结构来组件.存储和管理数据的,建立在计算机存储设备上的仓库. DBMS: database management Sy ...
- 个人永久性免费-Excel催化剂功能第67波-父子结构表转换添加辅助信息之子父关系篇
Excel作为一款数据领域的万物互联工具,连接一切外部的多种多样的数据源.将数据带到Excel的环境中,再进行数据处理.转换.统计分析等工作,是众多表哥表姐们每天都在经历的事情.能最快速将其他来源数据 ...