private static SignboardDiagnostics Map(DiagnosticsTableEntity tableEntity)
        {
            if (tableEntity == null)
            {
                return null;
            }

            var diagnostics = new SignboardDiagnostics(tableEntity.SignboardId, tableEntity.Date, SoftwareVersion.From(tableEntity.Version));

            diagnostics.AddMetricValue(DiagnosticMetricType.CpuUsagePercentage, tableEntity.CpuPercentageMetric);
            diagnostics.AddMetricValue(DiagnosticMetricType.RamUsagePercentage, tableEntity.RamPercentageMetric);
            diagnostics.AddMetricValue(DiagnosticMetricType.DiskUsagePercentage, tableEntity.DiskPercentageMetric);
            diagnostics.AddMetricValue(DiagnosticMetricType.SignboardState, tableEntity.SignboardStateMetric);
            diagnostics.AddMetricValue(DiagnosticMetricType.IsShowingScreensaver, tableEntity.IsShowingScreensaverMetric);
            diagnostics.AddMetricValue(DiagnosticMetricType.SlideshowHealthMetric, tableEntity.SlideshowObject);
            diagnostics.AddMetricValue(DiagnosticMetricType.NetworkTrafficBytesRecieved, tableEntity.NetworkTrafficBytesRecieved);
            diagnostics.AddMetricValue(DiagnosticMetricType.NetworkTrafficBytesSent, tableEntity.NetworkTrafficBytesSent);

            return diagnostics;
        }
        private static DiagnosticsTableEntity Map(SignboardDiagnostics entity)
        {
            if (entity == null)
            {
                return null;
            }

            var tableEntity = new DiagnosticsTableEntity(entity.SignboardId, entity.Date, entity.SoftwareVersion);

            tableEntity.CpuPercentageMetric = entity.GetMetricValue(DiagnosticMetricType.CpuUsagePercentage);
            tableEntity.RamPercentageMetric = entity.GetMetricValue(DiagnosticMetricType.RamUsagePercentage);
            tableEntity.DiskPercentageMetric = entity.GetMetricValue(DiagnosticMetricType.DiskUsagePercentage);
            tableEntity.SignboardStateMetric = entity.GetMetricValue(DiagnosticMetricType.SignboardState);
            tableEntity.IsShowingScreensaverMetric = entity.GetMetricValue(DiagnosticMetricType.IsShowingScreensaver);
            tableEntity.SlideshowObject = entity.GetMetricValue(DiagnosticMetricType.SlideshowHealthMetric);
            tableEntity.NetworkTrafficBytesRecieved = entity.GetMetricValue(DiagnosticMetricType.NetworkTrafficBytesRecieved);
            tableEntity.NetworkTrafficBytesSent = entity.GetMetricValue(DiagnosticMetricType.NetworkTrafficBytesSent);

            return tableEntity;
        }
        public void Write(DiagnosticsTableEntity tableEntity)
        {
            TableOperation insertOperation = TableOperation.InsertOrReplace(tableEntity);

            table.Execute(insertOperation);
        }