31 lines
1017 B
C#
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);
|
|
}
|
|
}
|
|
}
|