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); }
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); }
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); }
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)); }