public static void Main(string[] args) { INotificationService notificationService = new NotificationService(); IObserver whatsappObserver = new WhatsAppObserver() { Name = "John" }; IObserver emailObserver = new EmailObserver() { Name = "Mark" }; IObserver textObserver = new TextObserver() { Name = "Steve" }; notificationService.AddObserver(whatsappObserver); notificationService.AddObserver(emailObserver); notificationService.AddObserver(textObserver); IEvent movieEvent = new Event() { EventName = " Random Movie", NotificationService = notificationService }; Customer ram = new Customer("Ram", 30, movieEvent); Customer mohan = new Customer("Mohan", 50, movieEvent); Customer suresh = new Customer("Suresh", 40, movieEvent); }
public static void Main() { var emailSubject = new EmailSubject(); var emailObserver = new EmailObserver(); emailSubject.RegisterObserver(emailObserver); //...if emailSubject.NotifyObservers(); }
public bool AddMailObserver(int userID, List <string> mac) { if (mac == null) { return(false); } try { using (var dataContext = DataContextFactory.CreateDataContext()) { foreach (string i in mac) { var msID = (from q in dataContext.MonitoredSystem where q.MacAddress == i select q.ID).FirstOrDefault(); EmailObserver observer = new EmailObserver() { EmailID = userID, MonitoredSystemID = msID }; dataContext.EmailObserver.InsertOnSubmit(observer); dataContext.SubmitChanges(); // local caching. #region caching if (warningMails.ContainsKey(msID)) { List <MailAddress> list; if (warningMails.TryGetValue(msID, out list)) { warningMails.Remove(msID); } else { list = new List <MailAddress>(); } list.Add(new MailAddress(observer.Email.Address, observer.Email.ReceiverName)); warningMails.Add(msID, list); } #endregion } return(true); } } catch (Exception e) { //logging exception var messageEx1 = new StringBuilder(); messageEx1.Append("Mailer_AddMailObserver: "); messageEx1.Append("Adding of MailObserver failed. " + e.ToString()); MISD.Core.Logger.Instance.WriteEntry(messageEx1.ToString(), LogType.Exception); return(false); } }