public void Should_map_all_properties()
        {
            var source = new AudioRecordedHearingsBySearchResponse
            {
                CaseName             = "CaseName",
                CaseNumber           = "CaseNumber",
                CourtroomAccount     = "CourtroomAccount",
                CourtroomAccountName = "CourtroomAccountName",
                HearingRoomName      = "HearingRoomName",
                HearingVenueName     = "HearingVenueName",
                Id = Guid.NewGuid(),
                ScheduledDateTime = DateTime.Now
            };

            var result = HearingsForAudioFileSearchMapper.MapFrom(source);

            result.Should().NotBeNull();
            result.CaseName.Should().Be(source.CaseName);
            result.CaseNumber.Should().Be(source.CaseNumber);
            result.CourtroomAccount.Should().Be(source.CourtroomAccount);
            result.CourtroomAccountName.Should().Be(source.CourtroomAccountName);
            result.HearingRoomName.Should().Be(source.HearingRoomName);
            result.HearingVenueName.Should().Be(source.HearingVenueName);
            result.Id.Should().Be(source.Id);
            result.ScheduledDateTime.Should().Be(source.ScheduledDateTime);
        }
        private void AssertHearingByCaseNumberResponse(AudioRecordedHearingsBySearchResponse model, Hearing seededHearing)
        {
            var @case = seededHearing.GetCases()[0];

            model.CaseNumber.Should().Be(@case.Number);
            model.CaseName.Should().Be(@case.Name);
            model.HearingVenueName.Should().Be(seededHearing.HearingVenueName);
            model.ScheduledDateTime.Should().Be(seededHearing.ScheduledDateTime);
        }
 public static HearingsForAudioFileSearchResponse MapFrom(AudioRecordedHearingsBySearchResponse source)
 {
     return(new HearingsForAudioFileSearchResponse
     {
         Id = source.Id,
         CaseName = source.CaseName,
         CaseNumber = source.CaseNumber,
         CourtroomAccount = source.CourtroomAccount,
         CourtroomAccountName = source.CourtroomAccountName,
         HearingRoomName = source.HearingRoomName,
         HearingVenueName = source.HearingVenueName,
         ScheduledDateTime = source.ScheduledDateTime
     });
 }
        public List <AudioRecordedHearingsBySearchResponse> MapHearingToDetailedResponse(IEnumerable <Hearing> videoHearing,
                                                                                         string caseNumber)
        {
            if (videoHearing == null || !videoHearing.Any())
            {
                return(new List <AudioRecordedHearingsBySearchResponse>());
            }

            var response = new List <AudioRecordedHearingsBySearchResponse>();

            foreach (var hearing in videoHearing)
            {
                var judgeParticipant = hearing.GetParticipants()
                                       .FirstOrDefault(s => s.HearingRole?.UserRole != null && s.HearingRole.UserRole.IsJudge);

                var courtroomAccountName = judgeParticipant != null
                    ? judgeParticipant.DisplayName
                    : string.Empty;
                var courtroomAccount = (judgeParticipant?.Person != null)
                    ? judgeParticipant.Person.Username
                    : string.Empty;

                var @case = caseNumber.IsNullOrEmpty()
                    ? hearing.GetCases().FirstOrDefault()
                    : hearing.GetCases()
                            .FirstOrDefault(c => c.Number.ToLower().Trim().Contains(caseNumber.ToLower().Trim()));

                if (@case == null)
                {
                    throw new ArgumentException(ErrorMessage);
                }

                var hearingByCaseNumber = new AudioRecordedHearingsBySearchResponse()
                {
                    Id = hearing.Id,
                    ScheduledDateTime    = hearing.ScheduledDateTime,
                    HearingVenueName     = hearing.HearingVenueName,
                    HearingRoomName      = hearing.HearingRoomName,
                    CourtroomAccount     = courtroomAccount,
                    CourtroomAccountName = courtroomAccountName,
                    CaseName             = @case.Name,
                    CaseNumber           = @case.Number,
                    GroupId = hearing.SourceId
                };
                response.Add(hearingByCaseNumber);
            }

            return(response);
        }