/// <summary> /// Send new message /// </summary> public void SendMessage(MessageModel newMessageToSend) { Messenger.Default.Send<NewMessageSavedEvent>(new NewMessageSavedEvent() { Message = newMessageToSend }); BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, f) => { if (!newMessageToSend.IsTaskMessage.Value && !newMessageToSend.IsTaskItemMessage) { InsertMessageToDBBeforeSending(newMessageToSend); } // If poll message has not been sent, don't send the poll response if (!newMessageToSend.IsPollResponseMessage || (newMessageToSend.PollMessageId.Value != Guid.Empty)) { this.serviceProxy.SendNewMessage(newMessageToSend.EncryptMessage(), this.NewMessageCreated); } }; worker.RunWorkerAsync(); }