Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
        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);
            }
        }