Ejemplo n.º 1
0
        public async Task <Stream> GetMessageContent(string id, MessageEntity.Message message, UserAccountEntity userAccountEntity)
        {
            try
            {
                var authenticationManager = new AuthenticationManager();
                var user = userAccountEntity.GetUserEntity();
                if (userAccountEntity.GetAccessToken().Equals("refresh"))
                {
                    await authenticationManager.RefreshAccessToken(userAccountEntity);
                }
                var    content       = "image-data-0";
                string url           = string.Format("https://{0}-gmsg.np.community.playstation.net/groupMessaging/v1/messageGroups/{1}/messages/{2}?contentKey={3}&npLanguage={4}", user.Region, id, message.messageUid, content, user.Language);
                var    theAuthClient = new HttpClient();
                var    request       = new HttpRequestMessage(HttpMethod.Get, url);
                request.Headers.CacheControl = new CacheControlHeaderValue {
                    NoCache = true
                };
                request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", userAccountEntity.GetAccessToken());
                var response = await theAuthClient.SendAsync(request);

                var responseContent = await response.Content.ReadAsStreamAsync();

                return(responseContent);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        public async Task <Stream> GetImageMessageContent(string id, MessageEntity.Message message,
                                                          UserAccountEntity userAccountEntity)
        {
            try
            {
                var          user    = userAccountEntity.GetUserEntity();
                const string content = "image-data-0";
                var          url     = string.Format(EndPoints.MessageContent, user.Region, id, message.messageUid, content, user.Language);
                url += "&r=" + Guid.NewGuid();
                var theAuthClient = new HttpClient();
                var request       = new HttpRequestMessage(HttpMethod.Get, url);
                request.Headers.CacheControl = new CacheControlHeaderValue {
                    NoCache = true
                };
                request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", userAccountEntity.GetAccessToken());
                var response = await theAuthClient.SendAsync(request);

                var responseContent = await response.Content.ReadAsStreamAsync();

                return(responseContent);
            }
            catch (Exception ex)
            {
                throw new Exception("Failed to get image message content", ex);
            }
        }
        private async void MessagesListView_OnItemClick(object sender, ItemClickEventArgs e)
        {
            string messageId = string.Format("~{0},{1}", _userName, App.UserAccountEntity.GetUserEntity().OnlineId);

            MessageProgressBar.Visibility = Visibility.Visible;
            if (UserMessagePopup.IsOpen)
            {
                MessageProgressBar.Visibility = Visibility.Collapsed;
                return;
            }
            UserMessageImage.Source = null;
            var messageItem = e.ClickedItem as FriendPageViewModel.MessageGroupItem;

            if (messageItem == null)
            {
                MessageProgressBar.Visibility = Visibility.Collapsed;
                return;
            }
            MessageEntity.Message message = messageItem.Message;
            if (message == null)
            {
                MessageProgressBar.Visibility = Visibility.Collapsed;
                return;
            }
            if (!message.contentKeys.Contains("image-data-0"))
            {
                MessageProgressBar.Visibility = Visibility.Collapsed;
                return;
            }
            try
            {
                var    messageManager = new MessageManager();
                Stream imageBytes     = await
                                        messageManager.GetMessageContent(messageId, message,
                                                                         App.UserAccountEntity);

                BitmapImage image = await DecodeImage(imageBytes);

                UserMessageImage.Source = image;
            }
            catch (Exception)
            {
                MessageProgressBar.Visibility = Visibility.Collapsed;
                UserMessageImage.Source       = null;
                return;
            }
            MessageProgressBar.Visibility     = Visibility.Collapsed;
            UserMessagePopup.HorizontalOffset = (Window.Current.Bounds.Width - 400) / 2;
            UserMessagePopup.VerticalOffset   = (Window.Current.Bounds.Height - 600) / 2;
            UserMessagePopup.IsOpen           = true;
        }
Ejemplo n.º 4
0
        private async void MessagesListView_OnItemClick(object sender, ItemClickEventArgs e)
        {
            var messageItem = e.ClickedItem as MessagePageViewModel.MessageGroupItem;

            if (messageItem == null)
            {
                return;
            }
            MessageEntity.Message message = messageItem.Message;
            if (message == null)
            {
                return;
            }
            UserMessageGrid.DataContext = message;
            if (message.contentKeys == null)
            {
                MessageImageGrid.Visibility = Visibility.Collapsed;
                return;
            }
            if (!message.contentKeys.Contains("image-data-0"))
            {
                MessageImageGrid.Visibility = Visibility.Collapsed;
                return;
            }
            MessageImageGrid.Visibility    = Visibility.Visible;
            MessageImage.Visibility        = Visibility.Collapsed;
            LoadingProgressRing.Visibility = Visibility.Visible;
            try
            {
                var    messageManager = new MessageManager();
                Stream imageBytes     = await
                                        messageManager.GetMessageContent(_messageGroup.MessageGroupId, message,
                                                                         App.UserAccountEntity);

                BitmapImage image = await DecodeImage(imageBytes);

                MessageImage.Source = image;
            }
            catch (Exception)
            {
                MessageImageGrid.Visibility = Visibility.Collapsed;
            }
            LoadingProgressRing.Visibility = Visibility.Collapsed;
            MessageImage.Visibility        = Visibility.Visible;
        }