private async void MessageSend_OnClick(object sender, RoutedEventArgs e)
        {
            MessageProgressBar.Visibility = Visibility.Visible;
            string messageId      = string.Format("~{0},{1}", _userName, App.UserAccountEntity.GetUserEntity().OnlineId);
            var    messageManager = new MessageManager();

            MessageSend.IsEnabled = false;
            ImageSend.IsEnabled   = false;
            //CameraAccess.IsEnabled = false;
            bool result = false;

            if (ImageSource.Source != null)
            {
                using (IRandomAccessStream stream = await File.OpenAsync(FileAccessMode.ReadWrite))
                {
                    // TODO: Add JPEG Compression
                    //result = await
                    //messageManager.CreatePostWithMedia(messageId, MessageTextBox.Text, "", pixels,
                    //    App.UserAccountEntity);
                }
            }
            else
            {
                result = await messageManager.CreatePost(messageId, MessageTextBox.Text, App.UserAccountEntity);
            }
            MessageProgressBar.Visibility = Visibility.Collapsed;
            MessageSend.IsEnabled         = true;
            ImageSend.IsEnabled           = true;
            if (result)
            {
                ImageSource.Source  = null;
                MessageTextBox.Text = string.Empty;
                _vm.SetMessages(_userName, App.UserAccountEntity);
                return;
            }
            const string messageText = "An error has occured. The message has not been sent.";
            var          msgDlg      = new MessageDialog(messageText);
            await msgDlg.ShowAsync();
        }
        private async void MessageSend_OnClick(object sender, RoutedEventArgs e)
        {
            MessageProgressBar.Visibility = Visibility.Visible;
            string messageId      = string.Format("~{0},{1}", _userName, App.UserAccountEntity.GetUserEntity().OnlineId);
            var    messageManager = new MessageManager();

            MessageSend.IsEnabled = false;
            ImageSend.IsEnabled   = false;
            bool result;

            try
            {
                result =
                    await messageManager.CreatePost(messageId, MessageTextBox.Text, App.UserAccountEntity);

                MessageProgressBar.Visibility = Visibility.Collapsed;
                MessageSend.IsEnabled         = true;
                ImageSend.IsEnabled           = true;
            }
            catch (Exception)
            {
                result = false;
            }
            if (result)
            {
                MessageTextBox.Text = string.Empty;
                _vm.SetMessages(_userName, App.UserAccountEntity);
                return;
            }
            const string messageText = "An error has occured. The message has not been sent.";
            var          msgDlg      = new MessageDialog(messageText);
            await msgDlg.ShowAsync();

            MessageProgressBar.Visibility = Visibility.Collapsed;
            MessageSend.IsEnabled         = true;
            ImageSend.IsEnabled           = true;
        }
        /// <summary>
        ///     Populates the page with content passed during navigation.  Any saved state is also
        ///     provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="sender">
        ///     The source of the event; typically <see cref="NavigationHelper" />
        /// </param>
        /// <param name="e">
        ///     Event data that provides both the navigation parameter passed to
        ///     <see cref="Frame.Navigate(Type, Object)" /> when this page was initially requested and
        ///     a dictionary of state preserved by this page during an earlier
        ///     session.  The state will be null the first time a page is visited.
        /// </param>
        private async void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {
            FriendButtonStackPanel.Visibility = Visibility.Collapsed;
            _vm = (FriendPageViewModel)DataContext;
            if (e.PageState != null && e.PageState.ContainsKey("userEntity") && App.UserAccountEntity == null)
            {
                string savedStateJson = e.PageState["userAccountEntity"].ToString();
                App.UserAccountEntity = JsonConvert.DeserializeObject <UserAccountEntity>(savedStateJson);
                savedStateJson        = e.PageState["userEntity"].ToString();
                var user = JsonConvert.DeserializeObject <UserAccountEntity.User>(savedStateJson);
                App.UserAccountEntity.SetUserEntity(user);
            }
            _userName = (string)e.NavigationParameter;
            _vm.SetRecentActivityFeed(_userName);
            _vm.SetFriendsList(_userName, false, false, false, false, true, false, false);
            _vm.SetTrophyList(_userName);
            _vm.SetMessages(_userName, App.UserAccountEntity);
            await _vm.SetUser(_userName);

            SetFriendButtons();
        }