private void FillParticipantTimeStamps(
            ParticipantInfoDto participantInfo,
            AudioRecordClientDto participantRecord,
            AudioRecordClientDto fullCallRecord)
        {
            var startFullRecordTime = fullCallRecord.RecordingStartTime;
            var endFullRecordTime   = fullCallRecord.RecordingEndTime;

            var startRecordDateTime = participantRecord.RecordingStartTime < startFullRecordTime ? startFullRecordTime : participantRecord.RecordingStartTime;
            var endRecordDateTime   = participantRecord.RecordingEndTime > endFullRecordTime ? endFullRecordTime : participantRecord.RecordingEndTime;

            var start = startRecordDateTime - startFullRecordTime;

            participantInfo.StartCallTime = FormatCallTime(start);

            var duration = endRecordDateTime - startRecordDateTime;
            var end      = start + duration;

            participantInfo.EndCallTime = FormatCallTime(end);
        }
        /// <summary>
        /// Получить подробную информацию об участнике вызова
        /// </summary>
        public static ParticipantInfoDto GetParticipantInfoDto(Domain.Entities.Participant participant)
        {
            if (participant == null)
            {
                return(null);
            }

            var participantInfo = new ParticipantInfoDto
            {
                Id              = participant.Id,
                Name            = participant.ParticipantName,
                Extension       = participant.ParticipantExtension,
                ParticipantInfo = GetParticipantInfo(participant)
            };

            if (participant is Domain.Entities.Contact contact)
            {
                participantInfo.Name         = contact.Name;
                participantInfo.Organization = contact.Organization;
                participantInfo.Position     = contact.Position;
            }

            return(participantInfo);
        }