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; } }
void LoadFolderData(object sender) { Button selectedFolderButton = (Button)sender; SidebarFolder sidebarFolder = (SidebarFolder)selectedFolderButton.DataContext; this.singleSelectedInMessageList = null; this.selectedFolder = sidebarFolder; UploadToMessageList(); CheckToolbarButtonsStateByFolderClick(); }
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(); } } }