diff --git a/XisongSpaceBooking_BackEnd/Program.cs b/XisongSpaceBooking_BackEnd/Program.cs index b2d3eca..f252fec 100644 --- a/XisongSpaceBooking_BackEnd/Program.cs +++ b/XisongSpaceBooking_BackEnd/Program.cs @@ -2,6 +2,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.OpenApi.Models; using XisongSpaceBooking_BackEnd.Configurations; using XisongSpaceBooking_BackEnd.Repositories; +using XisongSpaceBooking_BackEnd.Services; var builder = WebApplication.CreateBuilder(args); @@ -17,6 +18,10 @@ builder.Services.AddAutoMapper(cfg => builder.Services.AddScoped(); builder.Services.AddScoped(); +// 註冊 Service 服務 +builder.Services.AddScoped(); +builder.Services.AddScoped(); + // 配置 Entity Framework 與連線池 builder.Services.AddDbContextPool(options => { diff --git a/XisongSpaceBooking_BackEnd/Services/DepartmentService.cs b/XisongSpaceBooking_BackEnd/Services/DepartmentService.cs new file mode 100644 index 0000000..0babda4 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Services/DepartmentService.cs @@ -0,0 +1,36 @@ +嚜簑sing AutoMapper; +using XisongSpaceBooking_BackEnd.Models.DTOs; +using XisongSpaceBooking_BackEnd.Repositories; + +namespace XisongSpaceBooking_BackEnd.Services +{ + /// + /// 摰斗平頛臬祕雿 + /// + public class DepartmentService : IDepartmentService + { + private readonly IDepartmentRepository _departmentRepository; + private readonly IMapper _mapper; + + /// + /// 撱箸賢 + /// + /// 摰方摮 + /// 拐辣撠 + public DepartmentService(IDepartmentRepository departmentRepository, IMapper mapper) + { + _departmentRepository = departmentRepository ?? throw new ArgumentNullException(nameof(departmentRepository)); + _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper)); + } + + /// + /// 敺摰方 + /// + /// 摰 DTO + public async Task> GetAllAsync() + { + var departments = await _departmentRepository.GetAllAsync(); + return _mapper.Map>(departments); + } + } +} diff --git a/XisongSpaceBooking_BackEnd/Services/IDepartmentService.cs b/XisongSpaceBooking_BackEnd/Services/IDepartmentService.cs new file mode 100644 index 0000000..023ee9a --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Services/IDepartmentService.cs @@ -0,0 +1,16 @@ +嚜簑sing XisongSpaceBooking_BackEnd.Models.DTOs; + +namespace XisongSpaceBooking_BackEnd.Services +{ + /// + /// 摰斗平頛臭 + /// + public interface IDepartmentService + { + /// + /// 敺摰方 + /// + /// 摰 DTO + Task> GetAllAsync(); + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Services/IRoleService.cs b/XisongSpaceBooking_BackEnd/Services/IRoleService.cs new file mode 100644 index 0000000..fa07eee --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Services/IRoleService.cs @@ -0,0 +1,16 @@ +嚜簑sing XisongSpaceBooking_BackEnd.Models.DTOs; + +namespace XisongSpaceBooking_BackEnd.Services +{ + /// + /// 頨思遢璆剖頛臭 + /// + public interface IRoleService + { + /// + /// 敺頨思遢鞈 + /// + /// 頨思遢 DTO + Task> GetAllAsync(); + } +} \ No newline at end of file diff --git a/XisongSpaceBooking_BackEnd/Services/RoleService.cs b/XisongSpaceBooking_BackEnd/Services/RoleService.cs new file mode 100644 index 0000000..cb2a626 --- /dev/null +++ b/XisongSpaceBooking_BackEnd/Services/RoleService.cs @@ -0,0 +1,36 @@ +嚜簑sing AutoMapper; +using XisongSpaceBooking_BackEnd.Models.DTOs; +using XisongSpaceBooking_BackEnd.Repositories; + +namespace XisongSpaceBooking_BackEnd.Services +{ + /// + /// 頨思遢璆剖頛臬祕雿 + /// + public class RoleService : IRoleService + { + private readonly IRoleRepository _roleRepository; + private readonly IMapper _mapper; + + /// + /// 撱箸賢 + /// + /// 頨思遢鞈摮 + /// 拐辣撠 + public RoleService(IRoleRepository roleRepository, IMapper mapper) + { + _roleRepository = roleRepository ?? throw new ArgumentNullException(nameof(roleRepository)); + _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper)); + } + + /// + /// 敺頨思遢鞈 + /// + /// 頨思遢 DTO + public async Task> GetAllAsync() + { + var roles = await _roleRepository.GetAllAsync(); + return _mapper.Map>(roles); + } + } +}