internal async Task <TraktProfile> GetUserProfile() { try { var userClient = new WebClient(); TraktProfile profile = null; String jsonString = await userClient.UploadStringTaskAsync(new Uri("https://api.trakt.tv/user/profile.json/9294cac7c27a4b97d3819690800aa2fedf0959fa/" + AppUser.Instance.UserName), AppUser.createJsonStringForAuthentication()); using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString))) { if (jsonString.Contains("watching\":[]")) { var ser = new DataContractJsonSerializer(typeof(TraktProfile)); profile = (TraktProfile)ser.ReadObject(ms); } else { var ser = new DataContractJsonSerializer(typeof(TraktProfileWithWatching)); profile = (TraktProfileWithWatching)ser.ReadObject(ms); } } return(profile); } catch (WebException) { Debug.WriteLine("WebException in GetUserProfile()."); } catch (TargetInvocationException) { Debug.WriteLine("TargetInvocationException in GetUserProfile()."); } return(null); }
private async Task ProcessOperationAsync(DownloadRichConnectDataOperation operation) { try { await ParallelForEach(operation.Ids, async (string remoteId) => { if (remoteId.Contains(",")) { remoteId = remoteId.Split(',')[0]; } ContactBinding binding = await contactBindingManager.GetContactBindingByRemoteIdAsync(remoteId); TraktProfile tileData = await new UserController().GetUserProfile(remoteId); binding.TileData = new ConnectTileData(); binding.TileData.Title = tileData.Username; ConnectTileImage tileImage = new ConnectTileImage(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(tileData.Avatar)); HttpWebResponse webResponse = await request.GetResponseAsync() as HttpWebResponse; MemoryStream memoryStream = new MemoryStream(); webResponse.GetResponseStream().CopyTo(memoryStream); IRandomAccessStream stream = await ConvertToRandomAccessStream(memoryStream); await tileImage.SetImageAsync(stream); binding.TileData.Images.Add(tileImage); await contactBindingManager.SaveContactBindingAsync(binding); }); } catch (Exception e) { } finally { NotifyComplete(); } }
private async void LoadProfile() { App.TrackEvent("MainPage", "Load profile"); InitiateSlowServerCounter(); try { if (await userController.ValidateUser()) { TraktProfile profile = await userController.GetUserProfile(); if (profile != null) { App.ViewModel.Profile = profile; userController.CreateContactBindingsAsync(); LoadWatchingNow(); } else { ValidationFailed(); } } else { ValidationFailed(); } } catch (TaskCanceledException) { ValidationFailed(); } userValidationTimer.Stop(); }
private async void LoadProfile() { if (!this.Loading) { this.Loading = true; this.indicator = App.ShowLoading(this); String id; String isAssigned; String isKnown; NavigationContext.QueryString.TryGetValue("friendid", out id); NavigationContext.QueryString.TryGetValue("assigned", out isAssigned); NavigationContext.QueryString.TryGetValue("isKnown", out isKnown); Boolean isKnownBoolean = false; Boolean.TryParse(isKnown, out isKnownBoolean); username = id; String isTile; NavigationContext.QueryString.TryGetValue("isTile", out isTile); if (String.IsNullOrEmpty(isTile)) { if (isKnownBoolean || (AppUser.Instance.Friends != null && AppUser.Instance.Friends.Contains(this.username))) { createUnFollowButton(); } else { createFollowButton(); } } else { createFollowButton(); } App.FriendViewModel.NotifyPropertyChanged("ShowFollow"); App.FriendViewModel.NotifyPropertyChanged("ShowUnFollow"); TraktProfile profile = await userController.GetUserProfile(id); if (!String.IsNullOrEmpty(isAssigned) && isAssigned.Equals("true")) { ToastNotification.ShowToast("Connected", "Your contact is now linked!"); NavigationService.RemoveBackEntry(); } if (profile != null) { App.FriendViewModel.Profile = profile; App.FriendViewModel.RefreshProfile(); this.Loading = false; this.indicator.IsVisible = false; } else { this.Loading = false; this.indicator.IsVisible = false; } } }