Esempio n. 1
0
        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;
        }