public void RegisterClient(string name) { try { IChat client = OperationContext.Current.GetCallbackChannel <IChat>(); if (!clients.ContainsKey(name)) { clients.Add(name, client); } else { name += new Random().Next(100).ToString(); clients.Add(name, client); client.ChangeName(name); client.SendMessage(new ChatMessage("SYSTEM", DateTime.Now, "Your name was changed to " + name, ConsoleColor.Red)); } var message = string.Format("{0} joined.", name); Console.WriteLine(message); var announce = new ChatMessage(name, DateTime.Now, message, ConsoleColor.Yellow); BroadcastMessage(announce); var welcome = new ChatMessage("SYSTEM", DateTime.Now, "Welcome to the chat! Already here: " + string.Join(", ", clients.Keys), ConsoleColor.Blue); client.SendMessage(welcome); } catch (Exception ex) { BroadcastMessage(new ChatMessage("SYSTEM", DateTime.Now, ex.Message, ConsoleColor.Red)); } }