示例#1
0
        public async Task <Result> RemoveAsync(long groupUserId)
        {
            _logger.LogInformation($"Removing GroupUser. GroupUserId {groupUserId}");

            Result <GroupUserEntity> getGroupUserResult = await _groupUserStore.SingleOrDefault(groupUserId);

            if (getGroupUserResult.Failure)
            {
                return(Result.Fail(getGroupUserResult));
            }

            GroupUserEntity groupUser = getGroupUserResult.Value;

            Result canManageResult = await _groupUserStore.CanManageUser(groupUser);

            if (canManageResult.Failure)
            {
                return(Result.Fail(canManageResult));
            }

            bool removeResult = await _groupUserDAO.Remove(groupUser);

            if (!removeResult)
            {
                _logger.LogError($"Failed to remove GroupUser. GroupUserId {groupUserId}");
                return(Result.Fail(FAILED_TO_REMOVE_GROUP_USER));
            }

            return(Result.Ok());
        }