(九)待办事项接口
待办接口
1. service层
通常我们把具体实现放在service层

apiresponse是一个通用返回类型
public class ApiResponse
{//通用返回类型
public string Message { get; set; }
public bool Status { get; set; }
public object Result { get; set; }
public ApiResponse(bool status, object result)
{//成功
this.Status = status;
this.Result = result;
}
public ApiResponse(string message, bool status = false)
{//失败
this.Status = status;
this.Message = message;
}
}
通用接口
public interface IBaseService<T>
{
//通用接口
Task<ApiResponse> GetAll();
Task<ApiResponse> GetString(int id);
Task<ApiResponse> Add(T model);
Task<ApiResponse> Update(T model);
Task<ApiResponse> Delete(int id);
}
待办service接口继承通用接口
public interface IToDoService : IBaseService<ToDo>
{
}
待办的CRUD
//待办的实现CRUD
public class ToDoService : IToDoService
{
private readonly IUnitOfWork work;
public ToDoService(IUnitOfWork work)//通过构造函数引入工作单元
{
this.work = work;
}
public async Task<ApiResponse> Add(ToDo model)
{
try
{
await work.GetRepository<ToDo>().InsertAsync(model);
if (await work.SaveChangesAsync() > 0)
{
return new ApiResponse(true, model);
}
return new ApiResponse(false, "添加数据失败");
}
catch (Exception ex)
{
return new ApiResponse(ex.Message);
}
}
public async Task<ApiResponse> Delete(int id)
{
try
{
var repository = work.GetRepository<ToDo>();
var todo = await repository.GetFirstOrDefaultAsync(predicate: x => x.Id.Equals(id));
repository.Delete(todo);
if (await work.SaveChangesAsync() > 0)
{
return new ApiResponse(true, "");
}
return new ApiResponse("删除数据失败");
}
catch (Exception ex)
{
return new ApiResponse(ex.Message);
}
}
public async Task<ApiResponse> GetAll()
{
try
{
var repository = work.GetRepository<ToDo>();
var todos = await repository.GetAllAsync();
return new ApiResponse(true, todos);
}
catch (Exception ex)
{
return new ApiResponse(ex.Message);
}
}
public async Task<ApiResponse> GetString(int id)
{
try
{
var repository = work.GetRepository<ToDo>();
var todo = await repository.GetFirstOrDefaultAsync(predicate: x => x.Id.Equals(id));
return new ApiResponse(true, todo);
}
catch (Exception ex)
{
return new ApiResponse(ex.Message);
}
}
public async Task<ApiResponse> Update(ToDo model)
{
try
{
var repository = work.GetRepository<ToDo>();
var todo = await repository.GetFirstOrDefaultAsync(predicate: x => x.Id.Equals(model.Id));
todo.Title = model.Title;
todo.Content = model.Content;
todo.Status = model.Status;
todo.UpdateDate = DateTime.Now;
repository.Update(todo);
if (await work.SaveChangesAsync() > 0)
{
return new ApiResponse(true, todo);
}
return new ApiResponse("更新数据异常");
}
catch (Exception ex)
{
return new ApiResponse(ex.Message);
}
}
}
在program中注入service

2.controller层
//待办控制器
[ApiController]
[Route("api/[controller]/[action]")]
public class ToDoController : ControllerBase
{
private readonly IToDoService service;
public ToDoController(IToDoService service)
{
this.service = service;
}
[HttpGet]
public async Task<ApiResponse> Get(int id)
{
return await service.GetString(id);
}
[HttpGet]
public async Task<ApiResponse> GetAll(int id) => await service.GetAll();
[HttpPost]
public async Task<ApiResponse> Add([FromBody] ToDo model) => await service.Add(model);
[HttpPost]
public async Task<ApiResponse> Update([FromBody] ToDo model) => await service.Update(model);
[HttpDelete]
public async Task<ApiResponse> Delete(int id) => await service.Delete(id);
}
启动测试一下


浙公网安备 33010602011771号