private static int _compareMessages(ErrorMessage msg1, ErrorMessage msg2) { int t1 = (int)msg1.Severity, n1 = msg1.Index; int t2 = (int)msg2.Severity, n2 = msg2.Index; return (t1 == t2 ? (n1-n2) : (t2-t1)); }
/// <summary>Adds the given message to the list.</summary> /// <param name="message">The message object to add.</param> public void Add(ErrorMessage message) { Assumption.NotNull(message); _items.Add(message); message.Index = Items.Count-1; PropertyChanged.Raise(this, "Items"); PropertyChanged.Raise(this, "Count"); switch (message.Severity) { case Severity.Error: _errorsCount++; if (_errorsCount == 1) { PropertyChanged.Raise(this, "ErrorsCount"); PropertyChanged.Raise(this, "HasErrors"); } break; case Severity.Warning: _warningsCount++; if (_warningsCount == 1) { PropertyChanged.Raise(this, "WarningsCount"); PropertyChanged.Raise(this, "HasWarnings"); } break; } PropertyChanged.Raise(this, "Summary"); ListChanged.Raise(this); }