using AutoMapper; using GroupService.Domain.IReposities; using GroupService.WebApi.Application.Dtos; using IM.Commons; namespace GroupService.WebApi.Application.Group { public class GroupService { private readonly IGroupReposity reposity; private readonly IMapper mapper; public GroupService(IGroupReposity reposity, IMapper mapper) { this.reposity = reposity; this.mapper = mapper; } public async Task> CreateAsync(GroupCreateCommand command) { var group = new Domain.Entities.Group(command.GroupMasterId, command.Name); reposity.Create(group); return Result.Success(mapper.Map(group)); } public async Task>> GetAllAsync(Guid userId) { var groups = await reposity.FindByMasterIdAsync(userId); return Result>.Success(mapper.Map>(groups)); } public async Task> GetByIdAsync(Guid groupId) { var group = await reposity.FindByIdAsync(groupId); if (group is null) { return Result.Fail(ResultCode.GROUP_NOT_FOUND); } return Result.Success(mapper.Map(group)); } } }