Refactored
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
using AipsCore.Domain.Common.Validation;
|
||||
using AipsCore.Domain.Models.User.ValueObjects;
|
||||
using AipsCore.Domain.Models.Whiteboard.Validation;
|
||||
|
||||
namespace AipsCore.Domain.Models.Whiteboard;
|
||||
|
||||
public partial class Whiteboard
|
||||
{
|
||||
public void BanUser(UserId currentUserId, WhiteboardMembership.WhiteboardMembership whiteboardMembership)
|
||||
{
|
||||
if (IsOwner(currentUserId))
|
||||
{
|
||||
throw new ValidationException(WhiteboardErrors.OnlyOwnerCanBanOtherUsers(currentUserId));
|
||||
}
|
||||
|
||||
whiteboardMembership.Ban();
|
||||
}
|
||||
|
||||
public void UnbanUser(UserId currentUserId, WhiteboardMembership.WhiteboardMembership whiteboardMembership)
|
||||
{
|
||||
if (IsOwner(currentUserId))
|
||||
{
|
||||
throw new ValidationException(WhiteboardErrors.OnlyOwnerCanUnbanOtherUsers(currentUserId));
|
||||
}
|
||||
|
||||
whiteboardMembership.Unban();
|
||||
}
|
||||
|
||||
public void KickUser(UserId currentUserId, WhiteboardMembership.WhiteboardMembership whiteboardMembership)
|
||||
{
|
||||
if (IsOwner(currentUserId))
|
||||
{
|
||||
throw new ValidationException(WhiteboardErrors.OnlyOwnerCanKickOtherUsers(currentUserId));
|
||||
}
|
||||
|
||||
whiteboardMembership.Kick();
|
||||
}
|
||||
|
||||
private bool IsOwner(UserId userId)
|
||||
{
|
||||
return WhiteboardOwnerId.IdValue == userId.IdValue;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user