Пример #1
0
        void SendDataToRecipientsControl()
        {
            MessageControlModel.FillMessageRecipients();
            RecipientsControlModel rcm = new RecipientsControlModel()
            {
                AllEmployees = MessageControlModel.AllEmployees,
                Recipients   = MessageControlModel.Message.Recipients
            };

            rcm.UpdateByRecipients();
            RecipientsControl.DataContext = rcm;
        }
Пример #2
0
        void SendMessage()
        {
            MessageControlModel mcm = (MessageControlModel)MessageControl.DataContext;

            try
            {
                mcm.Message.Sender = null;
                App.proxy.SendMessage(mcm.Message);
                MainWindow MainWindow = (MainWindow)App.Current.MainWindow;
                MainWindow.UpdateWindow();
                this.Close();
            }

            /// Сервис не отвечает
            catch (EndpointNotFoundException ex)
            {
                HandleSendMessageException(ex);
            }

            ///Креденшелы не подходят
            catch (System.ServiceModel.Security.MessageSecurityException ex)
            {
                HandleSendMessageException(ex);
            }

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

            /// Остальные исключения, в т.ч. ArgumentException, ArgumentNullException
            catch (Exception ex)
            {
                HandleSendMessageException(ex);
                throw;
            }
        }