Files
IM_NEW/GroupService.Domain/GroupMemberDomainService.cs
2026-05-09 17:06:30 +08:00

31 lines
1017 B
C#

using GroupService.Domain.Entities;
using GroupService.Domain.Enums;
using GroupService.Domain.IReposities;
using IM.Commons;
namespace GroupService.Domain
{
public class GroupMemberDomainService
{
private readonly IGroupMemberReposity reposity;
public GroupMemberDomainService(IGroupMemberReposity reposity)
{
this.reposity = reposity;
}
public async Task<Result<GroupMember>> CreateAsync(
Guid userId, Guid groupId, string nickName, string? avatar, GroupMemberRole role = GroupMemberRole.Normal)
{
var exist = await reposity.CheckMemberExistAsync(groupId, userId);
if (exist)
{
return Result<GroupMember>.Fail(ResultCode.ALREADY_IN_GROUP);
}
var groupMember = new GroupMember(userId, groupId, nickName, avatar, role);
groupMember = reposity.Create(groupMember);
return Result<GroupMember>.Success(groupMember);
}
}
}