コード例 #1
0
        public static ConferenceResponseVho MapConferenceDetailsToResponseModel(ConferenceDetailsResponse conference)
        {
            if (!Enum.TryParse(conference.Current_status.ToString(), true, out ConferenceStatus status))
            {
                status = ConferenceStatus.NotStarted;
            }

            conference.Participants ??= new List <ParticipantDetailsResponse>();

            var participants = conference.Participants
                               .OrderBy(x => x.Case_type_group)
                               .Select(ParticipantResponseForVhoMapper.MapParticipantToResponseModel)
                               .ToList();

            var response = new ConferenceResponseVho
            {
                Id                = conference.Id,
                CaseName          = conference.Case_name,
                CaseNumber        = conference.Case_number,
                CaseType          = conference.Case_type,
                ScheduledDateTime = conference.Scheduled_date_time,
                ScheduledDuration = conference.Scheduled_duration,
                Status            = status,
                Participants      = participants,
                ClosedDateTime    = conference.Closed_date_time,
                HearingVenueName  = conference.Hearing_venue_name
            };

            if (conference.Meeting_room == null)
            {
                return(response);
            }

            response.AdminIFrameUri = conference.Meeting_room.Admin_uri;
            response.ParticipantUri = conference.Meeting_room.Participant_uri;
            response.PexipNodeUri   = conference.Meeting_room.Pexip_node;

            AssignTilePositions(conference, response);

            return(response);
        }
コード例 #2
0
        private static void AssignTilePositions(ConferenceDetailsResponse conference, ConferenceResponseVho response)
        {
            var tiledParticipants = conference.Participants.Where(x =>
                                                                  x.User_role == UserRole.Individual || x.User_role == UserRole.Representative).ToList();

            var partyGroups = tiledParticipants.GroupBy(x => x.Case_type_group).ToList();

            foreach (var group in partyGroups)
            {
                var pats     = @group.ToList();
                var position = partyGroups.IndexOf(@group) + 1;
                foreach (var p in pats)
                {
                    var participant = response.Participants.Find(x => x.Id == p.Id);
                    participant.TiledDisplayName = $"T{position};{participant.DisplayName};{participant.Id}";
                    position += 2;
                }
            }
        }