public void AddTask(string tag) { var taskExists = downloaders.SingleOrDefault(s => s.TAG.Equals(tag)); if (taskExists == null) { var downloader = new Downloader { TAG = tag }; downloaders.Add(downloader); } }
private static async Task UpdateTrakkedShows(CancellationToken token, string tag, Downloader downloader) { token.ThrowIfCancellationRequested(); //TODO have error check on await GetStringAsync var TrakkedShows = new List<string>(); var validToken = ""; var currentUser = await BlobCache.UserAccount.GetObject<LoggedInUser>("loggedInUser"); if (currentUser != null) { //TODO Handle Expired Token validToken = currentUser.Token; } token.ThrowIfCancellationRequested(); var client = new HttpClientWrapper(new HttpClient()); var data = await client .GetStringAsync("http://robobatapp.azurewebsites.net/api/tvshows?token=" + validToken); JArray myJArray = JArray.Parse(data); for (int i = 0; i < myJArray.Count; i++) { if (myJArray[i]["IsTrakked"].ToObject<bool>()) { TrakkedShows.Add(myJArray[i]["TMDBID"].ToString()); } } //TODO no need to await this task, can just spawn it off? await BlobCache.UserAccount.InsertObject("trakkedList", TrakkedShows); downloader.Result = TrakkedShows; Console.WriteLine("My Task finished"); }
//Determine Which Task to set up public void SetUpTask(Downloader downloader) { if (downloader.TAG.Equals(typeof(AddShowActivity).Name)) { downloader.Task = UpdateTrakkedShows(downloader.CancellationTokenSource.Token, downloader.TAG, downloader); } else { downloader.Task = WaitALot(downloader.CancellationTokenSource.Token, downloader.TAG); } }