public static List <object[]> GetDevicePropertiesFull(Sitecore.Data.Items.DeviceItem di)
        {
            var results = new List <object[]>()
            {
                new object[] { "Device Property", "Value" },
                new object[] { "Name", di.Name },
                new object[] { "Display Name", di.DisplayName },
                new object[] { "Id", di.ID.Guid },
                new object[] { "Query String", di.QueryString },
                new object[] { "Agent", di.Agent },
                new object[] { "Fallback Device Name", (di.FallbackDevice != null) ? di.FallbackDevice.Name : string.Empty },
                new object[] { "Icon", di.Icon },
                new object[] { "Is Default", di.IsDefault },
                new object[] { "Is Valid", di.IsValid },
                // new object[] { "Capabilities.Browser", di.Capabilities.Browser},
                // new object[] { "Properties", di.Capabilities.Properties.AllKeys}
                // new object[] { "ArchiveNames" , db.ArchiveNames }
            };

            return(results);
        }
        public static List <object[]> GetVisualizationPropertiesFull(Sitecore.Data.Items.ItemVisualization iv, Sitecore.Data.Items.DeviceItem di)
        {
            var layoutItem = iv.GetLayout(di);
            var renderings = iv.GetRenderings(di, true);


            var renderingResults = new List <object[]>()
            {
                new [] { "Placeholder", "Display Name", "Unique ID", "Rendering ID", "Cacheable", "Conditions", "DataSource", "Parameters", "MultiVariateTest" }
            };

            foreach (var rendering in renderings)
            {
                renderingResults.Add(new object[] {
                    rendering.Settings.Placeholder,
                    rendering.RenderingItem != null && !string.IsNullOrEmpty(rendering.RenderingItem.DisplayName)
                        ? rendering.RenderingItem.DisplayName : string.Empty,
                    rendering.UniqueId,
                    rendering.RenderingID.Guid.ToString(),
                    rendering.Settings.Caching.Cacheable,
                    rendering.Settings.Conditions,
                    rendering.Settings.DataSource,
                    rendering.Settings.Parameters,
                    rendering.Settings.MultiVariateTest
                });
            }

            var results = new List <object[]>()
            {
                new object[] { "Visualization Property", "Value" },
                new object[] { "Layout",
                               new object[] {
                                   new object[] { "Display Name", layoutItem.DisplayName },
                                   new object[] { "File Path", layoutItem.FilePath },
                                   new object[] { "ID", layoutItem.ID.Guid.ToString() },
                                   // new object[] { "Control", layoutItem.Control },
                               } },
                new object[] { "Renderings", renderingResults.ToArray() }
            };

            return(results);
        }