public void SonarrV2() { var a = SonarrParsed.FromJson(Properties.Resources.SonarrV2ApiResult); Assert.AreEqual(1, a.Episodes.Count); Assert.AreEqual("My Show", a.ParsedEpisodeInfo.SeriesTitle); }
public ApiResponse <SonarrParsed> Find(string fullPath) { return(QueryApi((client) => { HttpResponseMessage result; string responseContent; string query = $"{baseUrl}/api/parse"; try { result = client.SendAsync(new HttpRequestMessage(HttpMethod.Get, $"{query}?apikey={apiKey}&path={System.Web.HttpUtility.UrlEncode(fullPath)}")).Result; responseContent = result.Content.ReadAsStringAsync().Result; } catch (Exception ex) { return new ApiResponse <SonarrParsed>(null, HttpStatusCode.BadRequest, $"Failed to query Sonarr API with URL {query}. Exception: {ex}"); } if (!result.IsSuccessStatusCode) { return new ApiResponse <SonarrParsed>(null, result.StatusCode, $"Failed to query Radarr API with URL {query}."); } SonarrParsed deserialized; try { deserialized = SonarrParsed.FromJson(responseContent); } catch (Exception ex) { return new ApiResponse <SonarrParsed>(null, result.StatusCode, $"Failed to deserialize Sonarr data with URL {query}.\nException: {ex}\nData: {responseContent}"); } return new ApiResponse <SonarrParsed>(deserialized, result.StatusCode); })); }