public void MessageHandler(object sender, ChatEventArgs e)
{
// Filter for server messages here - do not want the spam
if (e != null)
{
if (e.ServerMessage.Speaker == "Server")
{
if (ServerMessages.ContainsKey(e.ServerMessage.Text))
{
var lastShown = ServerMessages[e.ServerMessage.Text];
var now = DateTime.UtcNow;
var ts = now - lastShown;
double diff = ts.TotalMinutes;
if (diff > 30)
{
// Message needs to be displayed again
EnqueueMessage(e.ServerMessage);
// Timestamp in Dictionary also needs to be updated
ServerMessages[e.ServerMessage.Text] = now;
}
}
else
{
// Message needs to be displayed, as it has not been seen
EnqueueMessage(e.ServerMessage);
// Also need to add it to the Dictionary
var now = DateTime.UtcNow;
ServerMessages.Add(e.ServerMessage.Text, now);
}
}
else
{
EnqueueMessage(e.ServerMessage);
}
}
}