private static void MessagesChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { MessageView owner = (MessageView)d; Base.Interfaces.IMessage mess = e.NewValue as Base.Interfaces.IMessage; Run r = new Run(); if (mess is Base.Interfaces.IErrorMessage) { Base.Interfaces.IErrorMessage err = mess as Base.Interfaces.IErrorMessage; r.Text = err.ToString(); owner.tb.Inlines.Add(r); if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Severe)) { owner.tb.Inlines.Last().Foreground = owner._errorColors[5]; } else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Fatal)) { owner.tb.Inlines.Last().Foreground = owner._errorColors[4]; } else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Major)) { owner.tb.Inlines.Last().Foreground = owner._errorColors[3]; } else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Minor)) { owner.tb.Inlines.Last().Foreground = owner._errorColors[2]; } else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Info)) { owner.tb.Inlines.Last().Foreground = owner._errorColors[1]; } } else { r.Text = mess.Message; owner.tb.Inlines.Add(r); } if (owner.tb.Inlines.Count() > owner.MessageCount) { owner.tb.Inlines.Remove(owner.tb.Inlines.First()); } }
private static void Broadcast(object sender, MessageEventArgs e) { foreach (Base.Interfaces.IRecieveMessages s in _subscribers) { if (s is Base.Interfaces.IRecieveInstanceMessages) { Base.Interfaces.IRecieveInstanceMessages sinstance = s as Base.Interfaces.IRecieveInstanceMessages; if (sinstance.InstanceHash != sender.GetHashCode()) { continue; } if (e.Message is Base.Interfaces.IErrorMessage) { if (s.MessageTypeFilter == null || s.MessageTypeFilter == e.Message.GetType()) { //error filter Base.Interfaces.IErrorMessage emess = e.Message as Base.Interfaces.IErrorMessage; if (emess.ErrorLevel >= s.FilterLevel) { s.RecieveMessage(sender, e); } } } else { if (s.MessageTypeFilter == null || s.MessageTypeFilter == e.Message.GetType()) { s.RecieveMessage(sender, e); } } } if (e.Message is Base.Interfaces.IErrorMessage) { if (s.SenderTypeFilter == null || s.SenderTypeFilter == sender.GetType()) { if (s.MessageTypeFilter == null || s.MessageTypeFilter == e.Message.GetType()) { //error filter Base.Interfaces.IErrorMessage emess = e.Message as Base.Interfaces.IErrorMessage; if (emess.ErrorLevel >= s.FilterLevel) { s.RecieveMessage(sender, e); } } } } else { if (s.SenderTypeFilter == null || s.SenderTypeFilter == sender.GetType()) { if (s.MessageTypeFilter == null || s.MessageTypeFilter == e.Message.GetType()) { s.RecieveMessage(sender, e); } } } } if (_connected) { byte[] stream = System.Text.Encoding.ASCII.GetBytes(e.Message.ToString()); _reporter.GetStream().Write(stream, 0, stream.Length); _reporter.GetStream().Flush(); } }