예제 #1
0
 void OnMessageListSelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (MessageList.SelectedItem != null)
     {
         CheckToolbarButtonsStateByMessageListClick();
         MessageListItemModel selectedMessageModel = (MessageListItemModel)MessageList.SelectedItem;
         if ((selectedFolder is InboxFolder || selectedFolder is DeletedFolder) &&
             selectedMessageModel.Viewed == false)
         {
             messageViewedTimer.Stop();
             this.singleSelectedInMessageList = selectedMessageModel;
             messageViewedTimer.Start();
         }
         MessageControl.DataContext = new MessageControlModel()
         {
             AllEmployees = this.AllEmployeesModel.Employees,
             Message      = selectedMessageModel.Message
         };
     }
     else
     {
         CheckToolbarButtonsStateByFolderClick();
         MessageControl.DataContext = null;
     }
 }
예제 #2
0
        void LoadFolderData(object sender)
        {
            Button        selectedFolderButton = (Button)sender;
            SidebarFolder sidebarFolder        = (SidebarFolder)selectedFolderButton.DataContext;

            this.singleSelectedInMessageList = null;
            this.selectedFolder = sidebarFolder;
            UploadToMessageList();
            CheckToolbarButtonsStateByFolderClick();
        }
예제 #3
0
        void SetMessageViewed()
        {
            messageViewedTimer.Stop();
            MessageListItemModel selectedMessage = (MessageListItemModel)MessageList.SelectedItem;

            if (this.singleSelectedInMessageList.Equals(selectedMessage) &&
                selectedMessage != null)
            {
                int selectedMessageId = (int)selectedMessage.Id;
                try
                {
                    App.proxy.SetRecipientViewed(selectedMessageId, true);
                    UpdateWindow();
                }

                /// Сервис не отвечает
                catch (EndpointNotFoundException ex)
                {
                    HandleException(ex, "()WPFClient.MainWindow.SetMessageViewed()");
                }

                ///Креденшелы не подходят
                catch (System.ServiceModel.Security.MessageSecurityException ex)
                {
                    HandleException(ex, "()WPFClient.MainWindow.SetMessageViewed()");
                }

                /// Ошибка в сервисе
                /// (маловероятна, при таком варианте скорее сработает ошибка креденшелов,
                /// т.к. проверка паролей происходит на каждом запросе к сервису и ей необходима БД)
                catch (FaultException <System.ServiceModel.ExceptionDetail> ex)
                {
                    HandleException(ex, "()WPFClient.MainWindow.SetMessageViewed()");
                }

                /// Остальные исключения
                catch (Exception ex)
                {
                    HandleException(ex, "()WPFClient.MainWindow.SetMessageViewed()");
                    throw;
                }
                UploadToMessageList();
                if (selectedFolder is InboxFolder)
                {
                    ((InboxFolder)selectedFolder).RefreshCountOfUnViewedMessages();
                }
            }
        }