public string Generate()
        {
            //Header
            _formatter.AppendHeader(_devices.Count == 0 ? DeviceResources.EmptyList : DeviceResources.DeviceReport);

            //Device Status
            _devices.ForEach(device =>
                             _formatter.AppendBodyElement(DeviceResources.DeviceID, device.DeviceId.ToString(), device.GetValue()));

            //Device Counts grouped by type
            _devices.GroupBy(device => device.DeviceType)
            .ForEach(item => _formatter.AppendBodyElement(item.Key, item.Count().ToString()));

            //_devices.ForEachDeviceType(tuple => _formatter.AppendBodyElement(DeviceResources.Device, tuple.Item1, tuple.Item2.ToString()));

            // Total (Footer)
            _formatter.AppendBodyElement(DeviceResources.Total, _devices.Count.ToString());

            return(_formatter.ToReportString());
        }