private async void MessageSend_OnClick(object sender, RoutedEventArgs e) { MessageProgressBar.Visibility = Visibility.Visible; var messageManager = new MessageManager(); MessageSend.IsEnabled = false; ImageSend.IsEnabled = false; bool result = false; try { if (ImageSource.Source != null) { using (IRandomAccessStream stream = await File.OpenAsync(FileAccessMode.ReadWrite)) { byte[] byteArray = await ImageToBytes(stream); await messageManager.CreatePostWithMedia(_messageGroup.MessageGroupId, MessageTextBox.Text, "", byteArray, App.UserAccountEntity); } } else { result = await messageManager.CreatePost(_messageGroup.MessageGroupId, MessageTextBox.Text, App.UserAccountEntity); } MessageProgressBar.Visibility = Visibility.Collapsed; MessageSend.IsEnabled = true; ImageSend.IsEnabled = true; } catch (Exception) { result = false; } if (result) { ImageSource.Source = null; MessageTextBox.Text = string.Empty; _vm.SetMessages(_messageGroup.MessageGroupId, 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 void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) { _vm = (MessagePageViewModel)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(); _user = JsonConvert.DeserializeObject <UserAccountEntity.User>(savedStateJson); App.UserAccountEntity.SetUserEntity(_user); } var jsonObjectString = (string)e.NavigationParameter; _messageGroup = JsonConvert.DeserializeObject <MessageGroupEntity.MessageGroup>(jsonObjectString); _vm.SetMessages(_messageGroup.MessageGroupId, App.UserAccountEntity); }
private async void MessageSend_OnClick(object sender, RoutedEventArgs e) { MessageProgressBar.Visibility = Visibility.Visible; var messageManager = new MessageManager(); MessageSend.IsEnabled = false; ImageSend.IsEnabled = false; bool result; try { result = await messageManager.CreatePost(_messageGroup.MessageGroupId, 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(_messageGroup.MessageGroupId, 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; }