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); }
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 SendPeanutInvitationNotification(Peanut peanut, User notifiedUser, PeanutInvitationNotificationOptions notificationOptions, User user) { Require.NotNull(notificationOptions, "notificationOptions"); Require.NotNull(user, "user"); if (notifiedUser.NotifyMeOnPeanutInvitation) { ModelMap modelMap = new ModelMap(); modelMap.Add("peanut", peanut); modelMap.Add("user", user); modelMap.Add("recipient", notifiedUser); modelMap.Add("peanutUrl", notificationOptions.PeanutUrl); modelMap.Add("attendPeanutUrl", notificationOptions.AttendPeanutUrl); MailMessage mailMessage = EmailService.CreateMailMessage(notifiedUser.Email, modelMap, "PeanutInvitation"); EmailService.SendMessage(mailMessage); } }