Example #1
0
 /// <summary>
 /// Retrieve the details of a meeting.
 /// </summary>
 /// <param name="meetingId">The meeting ID or meeting UUID. If given the meeting ID it will take the last meeting instance.</param>
 /// <param name="type">The type of meetings. Allowed values: Past, PastOne, Live.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 /// <returns>
 /// The <see cref="DashboardMeetingMetrics" />.
 /// </returns>
 public Task <DashboardMeetingMetrics> GetMeetingAsync(string meetingId, DashboardMeetingType type = DashboardMeetingType.Live, CancellationToken cancellationToken = default)
 {
     return(_client
            .GetAsync($"metrics/meetings/{meetingId}")
            .WithArgument("type", JToken.Parse(JsonConvert.SerializeObject(type)).ToString())
            .WithCancellationToken(cancellationToken)
            .AsObject <DashboardMeetingMetrics>());
 }
Example #2
0
        /// <summary>
        /// Retrieve the sharing and recording details of participants from live or past webinars.
        /// </summary>
        /// <param name="webinarId">The webinar ID or webinar UUID. If given the webinar ID it will take the last webinar instance.</param>
        /// <param name="type">The type of webinars. Allowed values: Past, PastOne, Live.</param>
        /// <param name="pageSize">The number of records returned within a single API call.</param>
        /// <param name="pageToken">
        /// The next page token is used to paginate through large result sets.
        /// A next page token will be returned whenever the set of available results exceeds the current page size.
        /// The expiration period for this token is 15 minutes.
        /// </param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>
        /// The <see cref="ParticipantSharingDetails">sharing details for the webinars participants.</see>.
        /// </returns>
        public Task <PaginatedResponseWithToken <ParticipantSharingDetails> > GetAllWebinarParticipantSharingDetailsAsync(string webinarId, DashboardMeetingType type = DashboardMeetingType.Live, int pageSize = 30, string pageToken = null, CancellationToken cancellationToken = default)
        {
            if (pageSize < 1 || pageSize > 300)
            {
                throw new ArgumentOutOfRangeException(nameof(pageSize), "Page size must be between 1 and 300");
            }

            return(_client
                   .GetAsync($"metrics/webinars/{webinarId}/participants/sharing")
                   .WithArgument("type", JToken.Parse(JsonConvert.SerializeObject(type)).ToString())
                   .WithArgument("page_size", pageSize)
                   .WithArgument("next_page_token", pageToken)
                   .WithCancellationToken(cancellationToken)
                   .AsPaginatedResponseWithToken <ParticipantSharingDetails>("participants"));
        }
Example #3
0
        /// <summary>
        /// Retrieve data on total live or past meetings that occurred during a specified period of time.
        /// Only data from within the last 6 months will be returned.
        /// </summary>
        /// <param name="from">
        /// Date to start searching from. Should be within a month of "to" as only a months worth of data is returned at a time.
        /// </param>
        /// <param name="to">Date to end search.</param>
        /// <param name="type">The type of meetings. Allowed values: Past, PastOne, Live.</param>
        /// <param name="pageSize">The number of records returned within a single API call.</param>
        /// <param name="pageToken">
        /// The next page token is used to paginate through large result sets.
        /// A next page token will be returned whenever the set of available results exceeds the current page size.
        /// The expiration period for this token is 15 minutes.
        /// </param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>
        /// An array of <see cref="DashboardMeetingMetrics">meetings</see>.
        /// </returns>
        public Task <PaginatedResponseWithTokenAndDateRange <DashboardMeetingMetrics> > GetAllMeetingsAsync(DateTime from, DateTime to, DashboardMeetingType type = DashboardMeetingType.Live, int pageSize = 30, string pageToken = null, CancellationToken cancellationToken = default)
        {
            if (pageSize < 1 || pageSize > 300)
            {
                throw new ArgumentOutOfRangeException(nameof(pageSize), "Page size must be between 1 and 300");
            }

            return(_client
                   .GetAsync($"metrics/meetings")
                   .WithArgument("type", JToken.Parse(JsonConvert.SerializeObject(type)).ToString())
                   .WithArgument("from", from.ToString("yyyy-MM-dd"))
                   .WithArgument("to", to.ToString("yyyy-MM-dd"))
                   .WithArgument("page_size", pageSize)
                   .WithArgument("next_page_token", pageToken)
                   .WithCancellationToken(cancellationToken)
                   .AsPaginatedResponseWithTokenAndDateRange <DashboardMeetingMetrics>("meetings"));
        }
Example #4
0
 /// <summary>
 /// Retrieve the quality of service for participants from live or past webinars.
 /// This data indicates the connection quality for sending/receiving video, audio, and shared content.
 /// If nothing is being sent or received at that time, no information will be shown in the fields.
 /// </summary>
 /// <param name="webinarId">The webinar ID or webinar UUID. If given the webinar ID it will take the last webinar instance.</param>
 /// <param name="participantId">The participant id.</param>
 /// <param name="type">The type of webinars. Allowed values: Past, PastOne, Live.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 /// <returns>The <see cref="DashboardMeetingParticipantQos"/> quality of service metrics for the participant.</returns>
 public Task <DashboardMeetingParticipantQos> GetWebinarParticipantQosAsync(string webinarId, string participantId, DashboardMeetingType type = DashboardMeetingType.Live, CancellationToken cancellationToken = default)
 {
     return(_client
            .GetAsync($"metrics/webinars/{webinarId}/participants/{participantId}/qos")
            .WithArgument("type", JToken.Parse(JsonConvert.SerializeObject(type)).ToString())
            .WithCancellationToken(cancellationToken)
            .AsObject <DashboardMeetingParticipantQos>());
 }