We want a .NET Windows Client Application written in C#. It must run on Windows XP and Vista Business.
The major components of the application are :
- HTMLS Client functionality to access a Webserver which requires client authenticated SSL.
- SOAP (optional)
- POPUP window which we call 'TaskbarNotifierPopup' or 'Toast Popup Window'. A link to an example of what we mean by that is at the bottom of this text. You must use the skins like in that projects, for instance skin 2. The final design of the skin is our own task.
- A form window which opens when the Toast Popup Window content message is pressed with the mouse. This window displays a tabular list of alarm/alert messages with some details like timestamp. When the user selects a message, he can either acknowledge the message or play the associated sound file (request it from the Webserver, see below)
- A separate window for configuration of user preferences. This window must open when the system tray icon is pressed. The preference values must be stored in the Windows Registry so that they become persistent.
The sequence of actions in this application is as follows:
- The client is started automatically after windows login
- The client sends a HTML POST to an URL of a Webserver (existing and reachable over the Internet). The Webserver requires client authenticated SSL. The client sends additional client identification data (stored in the preferences) to the Webserver.
- When there is new alarm data for that client, then the Webserver delivers a XML-Document with all the message details.
- When there is no new data, then the Webserver will delay the response for some seconds and return a 'no message' indication
- Then the client sends again a POST (endless loop).
Of course, the client application must recover from a LAN interruption automatically.
Error situations like 'invalid certificate' or 'invalid user credentials' must also be properly displayed to the user.
The toast popup window must also alert the user when the Webserver does not respond.
When there are new alarm messages to be displayed, then the client can retrieve a voice file (.wav) from the Webserver. The client will carry out the following actions:
- play the sound file
- open the toast popup window with a configurable speed, display duration and endless repetition until the user presses the content of this toast window
Once the user presses on the content of the toast window (which carries a summary message about how many alarms are active), the form window with the message details table will open. The user can select a message and replay the sound file or acknowledge the message by pressing the ACK-button. When he presses the ACK-button, a HTML POST message is sent to the Webserver with all the pertinent information about the user and the alarm-identifier. All traffic must be carried over SSL.
The application must be multi-threaded so that new alarms are received and the toast window pops up in any state, for instance also when the window with the message table is open. In the latter case, the table should be automatically updated.
You must deliver a Microsoft Visual Studio 2005 C# project which compiles cleanly, and all the source code.
The XML messages from/to the Webserver are available on demand. If you think that SOAP would be appropriate for this project, then we can consider that as well. All the server-side stuff is written by ourselves.
Example source code for some of the required features :
[url removed, login to view]
[url removed, login to view];forumid=13655&exp=0&select=1932131