Example #1
0
        public async Task <GroupInfo> CreateGroup(int currentUserId,
                                                  GroupInfo groupInfo)
        {
            if (currentUserId != groupInfo.UserId)
            {
                // verify user has modify users permission
                if (!HasPermission(Permission.EditParticipants))
                {
                    int userId = GetClaimId(ClaimType.UserId);
                    _logger.LogError($"User {userId} doesn't have permission to create a group.");
                    throw new GraException("Permission denied.");
                }
            }

            var sanitizedGroupInfo = new GroupInfo
            {
                Name        = groupInfo.Name,
                GroupTypeId = groupInfo.GroupTypeId,
                UserId      = groupInfo.UserId
            };

            return(await _groupInfoRepository.AddSaveAsync(currentUserId, groupInfo));
        }