private static string ToJson(GetCourseByIdCriteria criteria) { GetCourseByIdJson json = new GetCourseByIdJson { id = criteria.Id.ToString() }; return(JsonConvert.SerializeObject(json)); }
public async Task <Result <Course> > GetCourseByIdAsync(GetCourseByIdCriteria criteria) { if (criteria == null) { throw new ArgumentNullException(nameof(criteria)); } try { var content = new StringContent(ToJson(criteria), Encoding.UTF8, "application/json"); _httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _settings.ApiKey); var response = await _httpClient.GetAsync(new Uri(_getCourseByIdUri.AbsoluteUri + "?id=" + criteria.Id)); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); var course = JsonConvert.DeserializeObject <Course>(json); return(Result.Ok(course)); } else { return(Result.Fail <Course>("Get Course By Id service unsuccessful http response")); } } catch (HttpRequestException hre) { _logger.LogError(hre, "Get Course By Id service http request error"); return(Result.Fail <Course>("Get Course By Id service http request error.")); } catch (Exception e) { _logger.LogError(e, "Get Course By Id service unknown error."); return(Result.Fail <Course>("Get Course By Id service unknown error.")); } }