Esempio n. 1
0
        public async Task <List <RecordingModel> > FetAllRecordingsAsync(int page = 1, int recordsPerPage = 1000)
        {
            var paramsList = new WowzaQueryParams
            {
                { "page", page },
                { "per_page", recordsPerPage }
            };
            var result = await GetActionAsync <RecordingListModel>("", paramsList).ConfigureAwait(false);

            return(result.Recordings ?? null);
        }
Esempio n. 2
0
        public async Task <List <LiveStreamResponseModel> > GetLiveStreamsAsync(int page = 1, int recordsPerPage = 20)
        {
            var paramList = new WowzaQueryParams
            {
                { "page", page },
                { "per_page", recordsPerPage }
            };
            var result = await GetActionAsync <LiveStreamListModel>("", paramList).ConfigureAwait(false);

            return(result?.LiveStreams ?? null);
        }
Esempio n. 3
0
        public async Task <List <PlayerModel> > FetchAllPlayersAsync(int page = 1, int recordsPerPage = 1000)
        {
            var queryParams = new WowzaQueryParams
            {
                { "page", page },
                { "per_page", recordsPerPage }
            };

            var result = await GetActionAsync <PlayerListModel>("", queryParams).ConfigureAwait(false);

            return(result?.Players ?? null);
        }
Esempio n. 4
0
 public static void BuildQueryParams(this HttpRequestMessage httpRequest, WowzaQueryParams queryParams)
 {
     if (queryParams != null && queryParams.Count > 0)
     {
         var paramList = new List <string>();
         foreach (var dictValue in queryParams)
         {
             paramList.Add($"{dictValue.Key}={dictValue.Value}");
         }
         httpRequest.RequestUri = new Uri(httpRequest.RequestUri.ToString() + "?" + string.Join("&", paramList));
     }
 }
        async Task <TResult> SendRequest <TRequest, TResult>(HttpMethod httpMethod, string additionalUrlPath, TRequest data, string endpointURL, WowzaQueryParams queryParams = null)
        {
            HttpResponseMessage response;

            using (var request = new HttpRequestMessage(httpMethod, $"{endpointURL}{additionalUrlPath}"))
            {
                request.BuildQueryParams(queryParams);
                request.AddWowzaRequestHeaders(Wowza.Apikey, $"{ApiSignaturePath}{EndPoint}{additionalUrlPath}", Wowza.UseBasicAuth);

                if (httpMethod != HttpMethod.Get && data != null)
                {
                    var jsonSerializer = new JsonSerializerSettings {
                        NullValueHandling = NullValueHandling.Ignore
                    };
                    request.Content = new StringContent(JsonConvert.SerializeObject(data, Formatting.Indented, jsonSerializer), Encoding.UTF8, "application/json");
                }
                response = await httpClient.SendAsync(request);
            }
            if (response != null && response.IsSuccessStatusCode)
            {
                var jsonContent = await response.Content.ReadAsStringAsync();

                if (!string.IsNullOrWhiteSpace(jsonContent))
                {
                    try
                    {
                        TResult result = await Task.Run(() => JsonConvert.DeserializeObject <TResult>(jsonContent));

                        return(result);
                    }
                    catch (Exception ex)
                    {
                        throw new WowzaException(ex.Message, ex.InnerException);
                    }
                }
                else
                {
                    return(default);
 protected async Task <TResult> GetActionAsync <TResult>(string additionalUrlPath, WowzaQueryParams queryParams)
 {
     return(await SendRequest <T, TResult>(HttpMethod.Get, additionalUrlPath, null, BasePath, queryParams));
 }
 protected async Task <TResult> PutActionAsync <TRequest, TResult>(string additionalUrlPath, TRequest data, WowzaQueryParams queryParams = null)
 {
     return(await SendRequest <TRequest, TResult>(HttpMethod.Put, additionalUrlPath, data, BasePath, queryParams));
 }
 protected async Task <TResult> PutActionAsync <TResult>(string additionalUrlPath, TResult data, WowzaQueryParams queryParams = null)
 {
     return(await PutActionAsync <TResult, TResult>(additionalUrlPath, data, queryParams));
 }