Advertisement
Guest User

Untitled

a guest
May 25th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.25 KB | None | 0 0
  1.  
  2.     public abstract class Message
  3.     {
  4.      public IMessageSender MessageSender { get; set; }
  5.      public string Subject { get; set; }
  6.      public string Body { get; set; }
  7.      public abstract void Send();
  8.     }
  9.      
  10.  
  11.     public class SystemMessage : Message
  12.     {
  13.      public override void Send()
  14.      {
  15.      MessageSender.SendMessage(Subject, Body);
  16.      }
  17.     }
  18.      
  19.  
  20.     public class UserMessage : Message
  21.     {
  22.      public string UserComments { get; set; }
  23.      
  24.      public override void Send()
  25.      {
  26.      string fullBody = string.Format("{0}\nUser Comments: {1}", Body, UserComments);
  27.      MessageSender.SendMessage(Subject, fullBody);
  28.      }
  29.     }
  30.      
  31.  
  32.     public interface IMessageSender
  33.     {
  34.      void SendMessage(string subject, string body);
  35.     }
  36.      
  37.  
  38.     public class EmailSender : IMessageSender
  39.     {
  40.      public void SendMessage(string subject, string body)
  41.      {
  42.      Console.WriteLine("Email\n{0}\n{1}\n", subject, body);
  43.      }
  44.     }
  45.      
  46.  
  47.     public class MSMQSender : IMessageSender
  48.     {
  49.      public void SendMessage(string subject, string body)
  50.      {
  51.      Console.WriteLine("MSMQ\n{0}\n{1}\n", subject, body);
  52.      }
  53.     }
  54.      
  55.  
  56.     public class WebServiceSender : IMessageSender
  57.     {
  58.      public void SendMessage(string subject, string body)
  59.      {
  60.      Console.WriteLine("Web Service\n{0}\n{1}\n", subject, body);
  61.      }
  62.     }
  63.      
  64.     class Program
  65.     {
  66.      static void Main(string[] args)
  67.      {
  68.      IMessageSender email = new EmailSender();
  69.      IMessageSender queue = new MSMQSender();
  70.      IMessageSender web = new WebServiceSender();
  71.      
  72.      Message message = new SystemMessage();
  73.      message.Subject = "Test Message";
  74.      message.Body = "Hi, This is a Test Message";
  75.      
  76.      message.MessageSender = email;
  77.      message.Send();
  78.      
  79.      message.MessageSender = queue;
  80.      message.Send();
  81.      
  82.      message.MessageSender = web;
  83.      message.Send();
  84.      
  85.      UserMessage usermsg = new UserMessage();
  86.      usermsg.Subject = "Test Message";
  87.      usermsg.Body = "Hi, This is a Test Message";
  88.      usermsg.UserComments = "I hope you are well";
  89.      
  90.      usermsg.MessageSender = email;
  91.      usermsg.Send();
  92.      
  93.      Console.ReadKey();
  94.      }
  95.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement