public bool RemoveDevice(Device.CharacterDevice device)
                {
                    int id = device.Id;

                    if (!DevicesById.ContainsKey(id))
                    {
                        return(false);
                    }
                    DevicesById.Remove(id);
                    string type = device.DeviceType();

                    DevicesByType[type].Remove(device);
                    if (DevicesByType[type].Count == 0)
                    {
                        DevicesByType.Remove(type);
                    }
                    return(true);
                }
                public bool AddDevice(Device.CharacterDevice device)
                {
                    if (device.Id == -1)
                    {
                        device.Id = Counter;
                    }
                    if (DevicesById.ContainsKey(device.Id))
                    {
                        return(false);
                    }
                    DevicesById[device.Id] = device;

                    string type = device.DeviceType();

                    if (!DevicesByType.ContainsKey(type))
                    {
                        DevicesByType[type] = new List <Device.CharacterDevice>();
                    }
                    DevicesByType[type].Add(device);
                    return(true);
                }