public static void Main()
var videoEncoder = new VideoEncoder();
var email = new EmailService();
var message = new MessageService();
videoEncoder.VideoEncoded += email.OnVideoEncoded;
videoEncoder.VideoEncoded += message.OnVideoEncoded;
videoEncoder.Encode("Test Video");
public void OnVideoEncoded(object sender, EventArgs e)
Console.WriteLine("Sent an email");
public void OnVideoEncoded(object sender, EventArgs e)
Console.WriteLine("Sent a message");
public delegate void VideoEncodedEventHandler(object sender, EventArgs e);
public event VideoEncodedEventHandler VideoEncoded;
public void Encode(string video)
Console.WriteLine(string.Format("{0} Video encoding", video));
Console.WriteLine("Video encoding completed");
public virtual void OnVideoEncoded()
VideoEncoded(this, EventArgs.Empty);