Beispiel #1
0
            protected override void OnNextCore(IList <ParticipantRegistredMessage> messages)
            {
                var registration = _registrationRepository.GetById(messages.First().RegistrationId);

                var registeredParticipantIds   = messages.Select(m => m.ParticipantId).ToArray();
                var registeredParticipantNames = registration.RegistrationParticipants
                                                 .Where(rp => registeredParticipantIds.Contains(rp.ResultingParticipantId.GetValueOrDefault()))
                                                 .OrderBy(rp => rp.Name)
                                                 .Select(rp => rp.Name);

                string[] messageLines =
                {
                    $"Hallo {registration.Applicant.Givenname}",
                    $"Vielen dank für das definitive Anmelden von {registeredParticipantNames.ToCommaSeparatedGrammaticalSequence()} an unserem Kursangebot. Schauen Sie jederzeit vorbei:",
                    string.Format(_environmentOptions.Current().RegistrationFrontendUrl, registration.Id)
                };

                _notificationService.SendNotification(
                    registration.Applicant.PhoneNumber,
                    Constants.NotificationIds.APPLICANT_REGISTRATION_COMPLETE,
                    new[] { registration.Id.ToString() },
                    string.Join(Environment.NewLine, messageLines)
                    );

                _unitOfWork.Commit();
            }
            protected override void OnNextCore(CommittedCourseCreatedMessage message)
            {
                var instructor = _instructorRepository.GetById(message.InstructorId.Value);
                var course     = _courseRepository.GetById(message.CourseId);

                var visibleFrom = DateTime.Now.Date.AddDays(-7);
                var visibleTo   = DateTime.Now.Date.AddDays(14);

                IEnumerable <string> messageLines = new[] { $"Hallo {instructor.Givenname}" };

                if (visibleFrom <= course.StartDate && course.StartDate <= visibleTo)
                {
                    messageLines = messageLines.Concat(new[]
                    {
                        $"Du wurdest in der Woche {course.StartDate:dd. MMMM yyyy} für einen Kurs eingeteilt. Schaue bei Gelegenheit vorbei:",
                        string.Format(_environmentOptions.Current().InstructorCourseDetailFrontendUrl, course.Id)
                    });
                }
                else
                {
                    messageLines = messageLines.Concat(new[]
                    {
                        $"Du wurdest in der Woche {course.StartDate:dd. MMMM yyyy} für einen Kurs eingeteilt. Der Kurs kann noch ändern. Details sind 14 Tage vor dem Kursbeginn in der Leiterapp aufrufbar."
                    });
                }

                _notificationService.SendNotification(
                    instructor.PhoneNumber,
                    Constants.NotificationIds.INSTRUCTOR_COURSE_CREATED,
                    new[] { course.Id.ToString() },
                    string.Join(Environment.NewLine, messageLines)
                    ).Wait();

                _unitOfWork.Commit();
            }
Beispiel #3
0
            private async Task NotifyAsync(RegistrationWithParticipant registrationParticipant)
            {
                using (var unitOfWork = _notificationUnitOfWork.Begin())
                {
                    string[] messageLines =
                    {
                        $"Hallo {registrationParticipant.Registration.Applicant.Givenname}",
                        $"Für {registrationParticipant.RegistrationParticipant.Name} wurde eine passende Kursdurchführung gefunden. Schauen Sie bei Gelegenheit vorbei:",
                        string.Format(_environmentOptions.Current().RegistrationFrontendUrl, registrationParticipant.Registration.Id)
                    };

                    await unitOfWork.Dependent.SendNotification(
                        registrationParticipant.Registration.Applicant.PhoneNumber,
                        Constants.NotificationIds.ACCOMPLISH_DEMAND_FOR_REGISTRATION,
                        new [] { NotificationSubject(registrationParticipant) },
                        string.Join(Environment.NewLine, messageLines)
                        );

                    unitOfWork.Commit();
                }
            }