public void AddListViewItem(bool recieve, MQTTPacketTypes packetType, int? packetId, string topic, string data, DateTime time)
        {
            if (testing) return;
            // type id topic data time
            ListViewItem newItem = new ListViewItem(new[]
            {
                (packetId != null ? ((int) packetId).ToString() : ""),
                GetPacketTypeString(packetType),
                topic,
                data,
                time.ToShortDateString() + " " + time.ToLongTimeString()
            }) {BackColor = recieve ? Color.FromArgb(148, 255, 114, 114) : Color.FromArgb(148, 61, 218, 61)};
            _listViewItems.Add(newItem);

            if (packetType == MQTTPacketTypes.PINGRESP)
                UpdateLastPingTimeLabel(@"Last successful ping at ",time);

            if (autoScrollCheckBox.Checked)
                newItem.EnsureVisible();

            if (_showPings // if it is a ping and we are allowed to show it just let it through
                || (packetType != MQTTPacketTypes.PINGREQ && packetType != MQTTPacketTypes.PINGRESP)) // or if it isn't a ping
            {
                outputListView.Invoke((MethodInvoker) delegate
                {
                    AddListViewItem(newItem);
                });
            }
        }
 private string GetStringForOutputSend(MQTTPacketTypes packetType)
 {
     switch (packetType)
     {
         case MQTTPacketTypes.CONNECT:
             return "Connect request";
             break;
         case MQTTPacketTypes.PUBLISH:
             return "Publish request";
             break;
         case MQTTPacketTypes.SUBSCRIBE:
             return "Subscribe request";
             break;
         case MQTTPacketTypes.UNSUBSCRIBE:
             return "Unsubscribe request";
             break;
         case MQTTPacketTypes.PINGREQ:
             return "Ping request";
             break;
         case MQTTPacketTypes.DISCONNECT:
             return "Disconnect request";
             break;
         default:
             throw new ArgumentOutOfRangeException("packetType");
     }
 }
        private string GetPacketTypeString(MQTTPacketTypes packetType)
        {
            string packetTypeString;
            switch (packetType)
            {
                case MQTTPacketTypes.CONNACK:
                    packetTypeString = "Connack";
                    break;
                case MQTTPacketTypes.PUBLISH:
                    packetTypeString = "Publish";
                    break;
                case MQTTPacketTypes.SUBACK:
                    packetTypeString = "Suback";
                    break;
                case MQTTPacketTypes.UNSUBACK:
                    packetTypeString = "Unsuback";
                    break;
                case MQTTPacketTypes.PINGRESP:
                    packetTypeString = "Pingresp";
                    break;
                case MQTTPacketTypes.DISCONNECT:
                    packetTypeString = "Disconnect";
                    break;
                case MQTTPacketTypes.UNSUBSCRIBE:
                    packetTypeString = "Unsubscribe";
                    break;
                case MQTTPacketTypes.SUBSCRIBE:
                    packetTypeString = "Subscribe";
                    break;
                case MQTTPacketTypes.CONNECT:
                    packetTypeString = "Connect";
                    break;
                case MQTTPacketTypes.PINGREQ:
                    packetTypeString = "Pingreq";
                    break;
                case MQTTPacketTypes.PUBACK:
                    packetTypeString = "Puback";
                    break;
                default:
                    packetTypeString = "Unknown/Unimplemented";
                    break;

            }
            return packetTypeString;
        }
 private void AddListViewItem(bool recieve, MQTTPacketTypes packetType, int? packetId, string topic, string data, DateTime time)
 {
     _form.AddListViewItem(recieve, packetType, packetId, topic, data, time);
 }