public static HearingsByUsernameForDeletionResponse MapToDeletionResponse(Hearing hearing) { var leadCase = hearing.GetCases().FirstOrDefault(x => x.IsLeadCase) ?? hearing.GetCases().FirstOrDefault(); return(new HearingsByUsernameForDeletionResponse { HearingId = hearing.Id, CaseName = leadCase?.Name, CaseNumber = leadCase?.Number, ScheduledDateTime = hearing.ScheduledDateTime, Venue = hearing.HearingVenueName }); }
/// <summary> /// Map an existing hearing to a CreateVideoHearingCommand for the purpose of multi-booking days /// </summary> /// <param name="hearing">Original hearing</param> /// <param name="newDate">New hearing date</param> /// <param name="randomGenerator">generator for unique sips</param> /// <param name="sipAddressStem">sip address stem</param> /// <param name="totalDays">Total number of days of multi-booking hearing</param> /// <param name="hearingDay">Day number of multi-booking hearing</param> /// <returns>command to create a new video hearing</returns> public static CreateVideoHearingCommand CloneToCommand(Hearing hearing, DateTime newDate, IRandomGenerator randomGenerator, string sipAddressStem, int totalDays, int hearingDay) { var reps = hearing.GetParticipants().Where(x => x.HearingRole.UserRole.IsRepresentative) .Cast <Representative>().ToList(); var nonReps = hearing.GetParticipants().Where(x => !x.HearingRole.UserRole.IsRepresentative).ToList(); var participants = new List <NewParticipant>(); participants.AddRange(reps.Select(r => new NewParticipant { Person = r.Person, Representee = r.Representee, CaseRole = r.CaseRole, DisplayName = r.DisplayName, HearingRole = r.HearingRole })); participants.AddRange(nonReps.Select(r => new NewParticipant { Person = r.Person, CaseRole = r.CaseRole, DisplayName = r.DisplayName, HearingRole = r.HearingRole })); var cases = hearing.GetCases().Select(c => new Case(c.Number, $"{c.Name} Day {hearingDay} of {totalDays}") { IsLeadCase = c.IsLeadCase }).ToList(); var newEndpoints = hearing.GetEndpoints().Select(x => { var sip = randomGenerator.GetWeakDeterministic(DateTime.UtcNow.Ticks, 1, 10); var pin = randomGenerator.GetWeakDeterministic(DateTime.UtcNow.Ticks, 1, 4); return(new NewEndpoint { Pin = pin, Sip = $"{sip}{sipAddressStem}", DisplayName = x.DisplayName, DefenceAdvocateUsername = x.DefenceAdvocate?.Person?.Username }); }).ToList(); var linkedParticipantDtos = GetLinkedParticipantDtos(hearing); var duration = 480; var command = new CreateVideoHearingCommand(hearing.CaseType, hearing.HearingType, newDate, duration, hearing.HearingVenue, participants, cases, true, hearing.AudioRecordingRequired, newEndpoints, linkedParticipantDtos) { HearingRoomName = hearing.HearingRoomName, OtherInformation = hearing.OtherInformation, CreatedBy = hearing.CreatedBy, SourceId = hearing.Id }; return(command); }
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 HearingDto MapToDto(Hearing hearing) { var @case = hearing.GetCases().First(); // Does this need to be a lead case? return(new HearingDto { HearingId = hearing.Id, ScheduledDateTime = hearing.ScheduledDateTime, ScheduledDuration = hearing.ScheduledDuration, CaseType = hearing.CaseType.Name, CaseNumber = @case.Number, CaseName = @case.Name, HearingVenueName = hearing.HearingVenueName, RecordAudio = hearing.AudioRecordingRequired }); }
public HearingDetailsResponse MapHearingToDetailedResponse(Hearing videoHearing) { var caseMapper = new CaseToResponseMapper(); var participantMapper = new ParticipantToResponseMapper(); var cases = videoHearing.GetCases() .Select(x => caseMapper.MapCaseToResponse(x)) .ToList(); var participants = videoHearing.GetParticipants() .Select(x => participantMapper.MapParticipantToResponse(x)) .ToList(); var endpoints = videoHearing.GetEndpoints() .Select(EndpointToResponseMapper.MapEndpointToResponse) .ToList(); var response = new HearingDetailsResponse { Id = videoHearing.Id, ScheduledDuration = videoHearing.ScheduledDuration, ScheduledDateTime = videoHearing.ScheduledDateTime, HearingTypeName = videoHearing.HearingType.Name, CaseTypeName = videoHearing.CaseType.Name, HearingVenueName = videoHearing.HearingVenueName, Cases = cases, Participants = participants, HearingRoomName = videoHearing.HearingRoomName, OtherInformation = videoHearing.OtherInformation, CreatedBy = videoHearing.CreatedBy, CreatedDate = videoHearing.CreatedDate, UpdatedBy = videoHearing.UpdatedBy, UpdatedDate = videoHearing.UpdatedDate, ConfirmedBy = videoHearing.ConfirmedBy, ConfirmedDate = videoHearing.ConfirmedDate, Status = videoHearing.Status.MapToContractEnum(), QuestionnaireNotRequired = videoHearing.QuestionnaireNotRequired, AudioRecordingRequired = videoHearing.AudioRecordingRequired, CancelReason = videoHearing.CancelReason, GroupId = videoHearing.SourceId, Endpoints = endpoints }; return(response); }
public HearingDetailsUpdatedIntegrationEvent(Hearing hearing) { var @case = hearing.GetCases().First(); // Does this need to be a lead case? Leadcase prop needs to be set on the domain Hearing = HearingDtoMapper.MapToDto(hearing); }