Esempio n. 1
0
        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));
            }
        }