using AutoMapper; using DMS.Application.Interfaces; using DMS.Core.Interfaces; using DMS.Core.Models; namespace DMS.Application.Services.Database; /// /// 菜单应用服务,负责处理菜单相关的业务逻辑。 /// 实现 接口。 /// public class MenuAppService : IMenuAppService { private readonly IRepositoryManager _repoManager; private readonly IMapper _mapper; /// /// 构造函数,通过依赖注入获取仓储管理器和AutoMapper实例。 /// /// 仓储管理器实例。 /// AutoMapper 实例。 public MenuAppService(IRepositoryManager repoManager, IMapper mapper) { _repoManager = repoManager; _mapper = mapper; } /// /// 异步根据ID获取菜单。 /// /// 菜单ID。 /// 菜单对象。 public async Task GetMenuByIdAsync(int id) { var menu = await _repoManager.Menus.GetByIdAsync(id); return _mapper.Map(menu); } /// /// 异步获取所有菜单列表。 /// /// 菜单列表。 public async Task> GetAllMenusAsync() { var menus = await _repoManager.Menus.GetAllAsync(); return _mapper.Map>(menus); } /// /// 异步创建一个新菜单(事务性操作)。 /// /// 要创建的菜单。 /// 新创建菜单的ID。 /// 如果创建菜单时发生错误。 public async Task AddAsync(MenuBean menu) { return await _repoManager.Menus.AddAsync(menu); } /// /// 异步更新一个已存在的菜单(事务性操作)。 /// /// 要更新的菜单。 /// 受影响的行数。 /// 如果找不到菜单或更新菜单时发生错误。 public async Task UpdateAsync(MenuBean menu) { return await _repoManager.Menus.UpdateAsync(menu); } /// /// 异步删除一个菜单(事务性操作)。 /// /// 如果删除成功则为 true,否则为 false。 /// 如果删除菜单失败。 /// 如果删除菜单时发生其他错误。 public async Task DeleteAsync(MenuBean menu) { var delRes = await _repoManager.Menus.DeleteAsync(menu); return delRes > 0; } }