Esempio n. 1
0
        public void should_map_to_representative_confirmation_notification()
        {
            var expectedNotificationType = NotificationType.HearingConfirmationRepresentativeMultiDay;
            var participant = InitParticipant("Representative", "Jane Doe");
            var hearing     = InitHearing();

            var expectedParameters = new Dictionary <string, string>
            {
                { "case name", CaseName },
                { "case number", hearing.Cases.First().Number },
                { "time", "2:10 PM" },
                { "Start Day Month Year", "12 October 2020" },
                { "solicitor name", $"{participant.FirstName} {participant.LastName}" },
                { "client name", $"{participant.Representee}" },
                { "number of days", "4" }
            };

            var result = AddNotificationRequestMapper.MapToMultiDayHearingConfirmationNotification(hearing, participant, 4);

            result.Should().NotBeNull();
            result.HearingId.Should().Be(hearing.Id);
            result.ParticipantId.Should().Be(participant.Id);
            result.ContactEmail.Should().Be(participant.ContactEmail);
            result.NotificationType.Should().Be(expectedNotificationType);
            result.MessageType.Should().Be(MessageType.Email);
            result.PhoneNumber.Should().Be(participant.TelephoneNumber);
            result.Parameters.Should().BeEquivalentTo(expectedParameters);
        }
        public async Task SendJudgeConfirmationEmail(HearingDetailsResponse hearing)
        {
            var hearings = await _bookingsApiClient.GetHearingsByGroupIdAsync(hearing.GroupId.Value);

            AddNotificationRequest request;

            if (hearings.Count == 1)
            {
                var judge = hearing.Participants
                            .First(x => x.UserRoleName.Contains("Judge", StringComparison.CurrentCultureIgnoreCase));
                request = AddNotificationRequestMapper.MapToHearingConfirmationNotification(hearing, judge);
            }
            else
            {
                var firstHearingForGroup = hearings.First();
                if (firstHearingForGroup.Id != hearing.Id)
                {
                    return;
                }
                var judge = firstHearingForGroup.Participants.First(x => x.UserRoleName.Contains("Judge", StringComparison.CurrentCultureIgnoreCase));
                request = AddNotificationRequestMapper.MapToMultiDayHearingConfirmationNotification(firstHearingForGroup, judge, hearings.Count);
            }

            if (request.ContactEmail != null)
            {
                await _notificationApiClient.CreateNewNotificationAsync(request);
            }
        }
Esempio n. 3
0
        public void should_map_to_judge_confirmation_notification()
        {
            var expectedNotificationType = NotificationType.HearingConfirmationJudgeMultiDay;
            var participant = InitParticipant("Judge");
            var hearing     = InitHearing();

            hearing.OtherInformation = JsonConvert.SerializeObject(new OtherInformationDetails
            {
                JudgeEmail = "*****@*****.**", JudgePhone = "123456789"
            });

            var expectedParameters = new Dictionary <string, string>
            {
                { "case name", CaseName },
                { "case number", hearing.Cases.First().Number },
                { "time", "2:10 PM" },
                { "Start Day Month Year", "12 October 2020" },
                { "judge", participant.DisplayName },
                { "courtroom account username", participant.Username },
                { "number of days", "4" }
            };

            var result = AddNotificationRequestMapper.MapToMultiDayHearingConfirmationNotification(hearing, participant, 4);

            result.Should().NotBeNull();
            result.HearingId.Should().Be(hearing.Id);
            result.ParticipantId.Should().Be(participant.Id);
            result.ContactEmail.Should().Be(participant.ContactEmail);
            result.NotificationType.Should().Be(expectedNotificationType);
            result.MessageType.Should().Be(MessageType.Email);
            result.PhoneNumber.Should().Be(participant.TelephoneNumber);
            result.Parameters.Should().BeEquivalentTo(expectedParameters);
        }
        public async Task SendMultiDayHearingConfirmationEmail(HearingDetailsResponse hearing, int days)
        {
            if (hearing.IsGenericHearing())
            {
                return;
            }

            var requests = hearing.Participants
                           .Where(x => !x.UserRoleName.Contains("Judge", StringComparison.CurrentCultureIgnoreCase))
                           .Select(participant => AddNotificationRequestMapper.MapToMultiDayHearingConfirmationNotification(hearing, participant, days))
                           .ToList();

            foreach (var request in requests)
            {
                await _notificationApiClient.CreateNewNotificationAsync(request);
            }
        }