Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 2
0
 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();
     }
 }