using System.Collections.Generic;
public interface IChatMediator
void AddUser(IUser user);
void SendMessage(string message, IUser sender);
public class ChatMediator : IChatMediator
users = new List<IUser>();
public void AddUser(IUser user)
public void SendMessage(string message, IUser sender)
foreach(IUser user in users)
user.ReceiveMessage(message);
void SendMessage(string message);
void ReceiveMessage(string message);
public class traveller : IUser
IChatMediator chatMediator;
public traveller(IChatMediator chatMediator, string name)
this.chatMediator = chatMediator;
public void SendMessage(string message)
chatMediator.SendMessage(message, this);
public void ReceiveMessage(string message)
Console.WriteLine("User Type: Passenger -- " + name + "; received message: " + message);
public class admin : IUser
IChatMediator chatMediator;
public admin(IChatMediator chatMediator, string name)
this.chatMediator = chatMediator;
public void SendMessage(string message)
chatMediator.SendMessage(message, this);
public void ReceiveMessage(string message)
Console.WriteLine("User Type: Admin -- " + name + "; received message: " + message);
public static void Main(string[] args)
Console.WriteLine("---------------WELCOME TO TOUR INDIA--------------");
IChatMediator chatMediator = new ChatMediator();
IUser Sumanth = new traveller(chatMediator, "Sumanth");
IUser Nishanth = new admin(chatMediator, "Nishanth");
IUser SumanthNishanth = new admin(chatMediator, "SumanthNishanth");
chatMediator.AddUser(Sumanth);
chatMediator.AddUser(Nishanth);
chatMediator.AddUser(SumanthNishanth);
SumanthNishanth.SendMessage("WELCOME TO TOUR INDIA PORTAL");