public void Send(ChatMessage cm)
        {
            List<IClientFunctions> subscribersToDelete = new List<IClientFunctions>();
            IClientFunctions callback = OperationContext.Current.GetCallbackChannel<IClientFunctions>();
            foreach (IClientFunctions client in subscribers)
            {

                    try
                    {
                        client.ShowMessage(cm.User + ": " + cm.Message);
                    }
                    catch (Exception e)
                    {
                        subscribersToDelete.Add(client);
                    }
                
            }
            foreach (IClientFunctions client in subscribersToDelete)
            {
                if (subscribers.Contains(client))
                {
                    subscribers.Remove(client);
                }
            }
        }
 private void button2_Click(object sender, RoutedEventArgs e)
 {
     if (client.State == CommunicationState.Opened)
     {
         ChatMessage cm = new ChatMessage();
         cm.Message = textBox2.Text;
         cm.TimeStamp = DateTime.Today;
         //cm.User = new ChatUser() { Username = "******" };
         client.Send(cm);
     }
     else
     {
         ShowMessage("Nicht eingeloggt!");
     }
 }
 public void Send(ChatMessage cm)
 {
     List<IChatUser> subscribersToDelete = new List<IChatUser>();
     IChatUser callback = OperationContext.Current.GetCallbackChannel<IChatUser>();
     foreach (IChatUser client in ConnectedUsers)
     {
         try
         {
             client.ShowMessage(cm);
         }
         catch (Exception e)
         {
             subscribersToDelete.Add(client);
         }
     }
     foreach (IChatUser client in subscribersToDelete)
     {
         User u = Users.SingleOrDefault(x => x.Callback == client);
         if (ConnectedUsers.Contains(client))
         {
             ConnectedUsers.Remove(client);
             Users.Remove(u);
         }
     }
 }