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()); }