Exemple #1
0
        public void Log(string Message, int MessageId, LogMessageType MessageType = LogMessageType.Information,
                        LogReceiver Receiver = LogReceiver.MessageBox | LogReceiver.Console, string Details = null)
        {
            string timeStamp = DateTime.Now.ToString();

            if (Receiver.HasFlag(LogReceiver.Console))
            {
                ListViewItem logItem   = new ListViewItem();
                string       iconName  = null;
                string       levelName = null;

                _detailsList.Add(Details);

                switch (MessageType)
                {
                case LogMessageType.Exclamation:
                    iconName  = "exclamation";
                    levelName = Resources.Messages.Exclamation;
                    break;

                case LogMessageType.Warning:
                    iconName  = "warning";
                    levelName = Resources.Messages.Warning;
                    break;

                case LogMessageType.Success:
                    iconName  = "success";
                    levelName = Resources.Messages.Success;
                    break;

                case LogMessageType.Failure:
                    iconName  = "failure";
                    levelName = Resources.Messages.Failure;
                    break;

                default:
                    iconName  = "information";
                    levelName = Resources.Messages.Information;
                    break;
                }

                logItem.Name     = (_detailsList.Count - 1).ToString();
                logItem.ImageKey = iconName;
                logItem.Text     = levelName;

                logItem.SubItems.Add(Message);
                logItem.SubItems.Add(MessageId != 0 ? MessageId.ToString() : "");
                logItem.SubItems.Add(timeStamp);

                LogList.BeginInvoke(new Action(() =>
                {
                    try
                    {
                        LogList.Items.Add(logItem);

                        if (LogList.Items.Count > 1)
                        {
                            LogList.EnsureVisible(LogList.Items.Count - 1);
                        }
                    }
                    catch (Exception)
                    {
                    }
                }));
            }

            if (Receiver.HasFlag(LogReceiver.StatusBar))
            {
                Color foreColor = Color.Black;

                switch (MessageType)
                {
                case LogMessageType.Warning:
                    foreColor = Color.Orange;
                    break;

                case LogMessageType.Failure:
                case LogMessageType.Exclamation:
                    foreColor = Color.Red;
                    break;

                default:
                    foreColor = Color.Black;
                    break;
                }

                LogList.BeginInvoke(new Action(() =>
                {
                    StatusBarLabel.Text      = Message;
                    StatusBarLabel.ForeColor = foreColor;
                }));

                if (MessageType == LogMessageType.Information || MessageType == LogMessageType.Success)
                {
                }
            }

            if (Receiver.HasFlag(LogReceiver.MessageBox))
            {
                MessageBoxIcon icon;
                string         title;

                switch (MessageType)
                {
                case LogMessageType.Failure:
                    icon  = MessageBoxIcon.Error;
                    title = Resources.Messages.Failure;
                    break;

                case LogMessageType.Warning:
                    icon  = MessageBoxIcon.Warning;
                    title = Resources.Messages.Warning;
                    break;

                default:
                    icon  = MessageBoxIcon.Information;
                    title = Resources.Messages.Information;
                    break;
                }

                AlertBox.Show(Message, title, icon, Details);
            }
        }