public override async Task <List <AnimeObject> > GetAnimeFavourites(string username, IProgress <APIProgressReport> progress) { if (string.IsNullOrWhiteSpace(username)) { if (progress != null) { progress.Report(new APIProgressReport(100.0, "Please enter a Username", APIResponse.Failed)); } return(new List <AnimeObject>()); } HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, Service.CreateAPIServiceUri("/users/" + username + "/favorite_anime")); HttpResponseMessage response = await APIWebClient.MakeAPICall(requestMessage); if (response.IsSuccessStatusCode) { string responseAsString = await response.Content.ReadAsStringAsync(); if (progress != null) { progress.Report(new APIProgressReport(50.0, "Recieved LibraryObjects From Server", APIResponse.ContinuingExecution)); } JObject o = JObject.Parse("{\"anime\":" + responseAsString + "}"); AnimeObjectListHummingbirdV1 favouriteList = JsonConvert.DeserializeObject <AnimeObjectListHummingbirdV1>(o.ToString()); List <AnimeObject> convertedFavouriteAnimeObjects = new List <AnimeObject>(); foreach (var anime in favouriteList.anime) { convertedFavouriteAnimeObjects.Add((AnimeObject)anime); } if (progress != null) { progress.Report(new APIProgressReport(100.0, "Converted Successfully", APIResponse.Successful, convertedFavouriteAnimeObjects, favouriteList)); } return(convertedFavouriteAnimeObjects); } if (progress != null) { progress.Report(new APIProgressReport(100.0, "API Call wasn't successul", APIResponse.Failed)); } return(new List <AnimeObject>()); }
public override async Task <List <AnimeObject> > SearchAnime(string searchTerm, IProgress <APIProgressReport> progress) { if (string.IsNullOrWhiteSpace(searchTerm)) { if (progress != null) { progress.Report(new APIProgressReport(100.0, "Please enter Search Terms", APIResponse.Failed)); } return(new List <AnimeObject>()); } HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, Service.CreateAPIServiceUri("/search/anime?query=" + searchTerm)); HttpResponseMessage response = await APIWebClient.MakeAPICall(requestMessage); if (response.IsSuccessStatusCode) { string responseAsString = await response.Content.ReadAsStringAsync(); if (progress != null) { progress.Report(new APIProgressReport(50.0, "Recieved Search Results From Server", APIResponse.ContinuingExecution)); } JObject o = JObject.Parse("{\"anime\":" + responseAsString + "}"); AnimeObjectListHummingbirdV1 hummingbirdSearchResults = JsonConvert.DeserializeObject <AnimeObjectListHummingbirdV1>(o.ToString()); List <AnimeObject> convertedSearchResults = new List <AnimeObject>(); foreach (var anime in hummingbirdSearchResults.anime) { convertedSearchResults.Add((AnimeObject)anime); } if (progress != null) { progress.Report(new APIProgressReport(100.0, "Converted Successfully", APIResponse.Successful, convertedSearchResults, hummingbirdSearchResults)); } return(convertedSearchResults); } if (progress != null) { progress.Report(new APIProgressReport(100.0, "API Call wasn't successul", APIResponse.Failed)); } return(new List <AnimeObject>()); }