In TimeIsMoney project, I am planning to add a lot of notifiers . I was looking for a mechanism but could find any solution, so I created one from the scratch.  Reminder should work on a thread not to interrupt the main application, I have created a simple  class which uses the thread to check if a condition is met on particular time.

image

Run performs a check if a specified time is met or if the option RemindWholeDay which enables the reminder all the time. There is  simple pause between balloon tips. In the future I want to implement a simple pipeline mechanisms with queue.

What’s important here is _notifiedObjects List  this  collection contains an object which is notified by the reminder.

image

Every class to be notified  implements INotified interface , which defines the IsNotified and Notify method.

image

Let’s look at examples.

In TimeIsMoney project main Form has a notify Icon, which is used to show the Balloon Tips in the tray. Those tips contain various informations like a number of items still waiting to be sorted out between the lists. Form1 implements the INotfied interface and defines the methods.

image

As you can see IsNotified method is used to check the Count value of the items. If there are items in it return true. When the IsNotified is true the action is doing the Notify class, which shows a simple balloon tip in the tray..

This mechanism gives me the ability to create notified object just by implementing the  INotifiy interface.

Lets look at another example.

image

Notifier class  will  be used to manage all the notifiers. It operates on the reference to the Form1.notify Icon.

This class is added to the collection of reminder class.

This simple process is for some flexibility.