/* * The mediator allows only registered users * to communicate each other and post messages * successfully. So, the following method * checks whether both the sender and receiver * are registered users or not. */ public void Send(AbstractFriend fromFriend, AbstractFriend toFriend, string msg) { /* Verifying whether the sender is a registered user or not */ if (participants.Contains(fromFriend)) { /* Verifying whether the receiver is a registered user or not */ if (participants.Contains(toFriend)) { Console.WriteLine($"\n[{fromFriend.Name}] posts: {msg}Last message posted {DateTime.Now}"); System.Threading.Thread.Sleep(1000); /* Target receiver will receive this message.*/ toFriend.ReceiveMessage(fromFriend, msg); } // Target receiver is NOT a registered user else { Console.WriteLine($"\n{fromFriend.Name}, you cannot send message to {toFriend.Name} because he is NOT a registered user."); } } //Message sender is NOT a registered user. else { Console.WriteLine($"\nAn outsider named {fromFriend.Name} of [{fromFriend.GetType()}] is trying to send a message to {toFriend.Name}."); } }
public void ReceiveMessage(AbstractFriend fromFriend, string msg) { Console.WriteLine($"{this.Name} has received a message from {fromFriend.Name} saying: {msg} "); }
public void SendMessage(AbstractFriend toFriend, string msg) { mediator.Send(this, toFriend, msg); }
public void Register(AbstractFriend friend) { participants.Add(friend); }