public void Write(Mensagem msg)
        {
            string message = "::: " + msg.Type + " : " + msg.Body;

            if (string.IsNullOrEmpty(msg.ExtraInfo) == false)
            {
                message += "\n\n" + msg.ExtraInfo;
            }

            Write(message, GetType(msg.Type));
        }
        public void OnNewMessage(Mensagem msg)
        {
            Log.Write(msg);

            // Queue - Max Size
            //Instance.Mensagens.FixLength(Properties.Settings.Default.NumberMaxMessages);

            // Queue - Add New
            Instance.Mensagens.Enqueue(msg);

            Listeners.Callback(msg);
        }
        private EventLogEntryType GetType(Mensagem.MessageType type)
        {
            EventLogEntryType result = EventLogEntryType.Information;

            switch (type)
            {
                case Mensagem.MessageType.Warning:
                    result = EventLogEntryType.Warning;
                    break;
                case Mensagem.MessageType.Error:
                    result = EventLogEntryType.Error;
                    break;
            }

            return result;
        }
 public void Callback(Mensagem msg)
 {
     // Callback the Listeners
     for (int i = _list.Count - 1; i >= 0; i--)
     {
         try
         {
             if (_list[i].Channel.State != System.ServiceModel.CommunicationState.Faulted)
             {
                 _list[i].GetCallbackChannel<IServiceCallback>().OnNewMessage(msg);
             }
             else
             {
                 _list.Remove(_list[i]);
             }
         }
         catch
         {
             _list.Remove(_list[i]);
         }
     }
 }
 public void OnNewMessage(Mensagem newMsg)
 {
 }
 public static void Raise(this Mensagem.MensagemDelegate sender, Mensagem msg)
 {
     sender(msg);
 }
 public static void Raise(this Mensagem.MensagemDelegate sender, string source, Mensagem.MessageType type, string body, Exception exception)
 {
     sender.Raise(new Mensagem() { Type = type, Body = body, ExtraInfo = exception.ToString() });
 }
 public static void Raise(this Mensagem.MensagemDelegate sender, Mensagem.MessageType type, string body)
 {
     sender.Raise(new Mensagem() { Type = type, Body = body, Time = DateTime.Now });
 }