public void InviteAllGroupMembers(Peanut peanut, UserGroup userGroup, PeanutParticipationType peanutParticipationType, PeanutInvitationNotificationOptions peanutInvitationNotificationOptions, User user) { IList <UserGroupMembership> members = UserGroupService.FindMembershipsByGroups(PageRequest.All, new List <UserGroup> { userGroup }, new List <UserGroupMembershipType> { UserGroupMembershipType.Administrator, UserGroupMembershipType.Member }).ToList(); PeanutParticipationType participationType = peanutParticipationType; if (participationType != null) { PeanutParticipationDto peanutParticipationDto = new PeanutParticipationDto(participationType, PeanutParticipationState.Pending); /*Alle Nutzer einladen, die noch nicht als Teilnehmer am Peanut hinterlegt sind.*/ IList <UserGroupMembership> inviteableMembers = members.Except(peanut.Participations.Select(part => part.UserGroupMembership)).ToList(); foreach (UserGroupMembership inviteableMember in inviteableMembers) { InviteUser(peanut, inviteableMember, peanutParticipationDto, peanutInvitationNotificationOptions, user); } } }
public void InviteUser(Peanut peanut, UserGroupMembership userGroupMembership, PeanutParticipationDto peanutParticipationDto, PeanutInvitationNotificationOptions peanutInvitationNotificationOptions, User user) { /*Nutzer/Teilnahme hinzufügen*/ AddOrUpdateParticipations(peanut, new Dictionary <UserGroupMembership, PeanutParticipationDto> { { userGroupMembership, peanutParticipationDto } }, user); /*Den Nutzer benachrichtigen*/ NotificationService.SendPeanutInvitationNotification(peanut, userGroupMembership.User, peanutInvitationNotificationOptions, user); }