MilestonePSTools.Format.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <ViewDefinitions>
    <View>
      <Name>Role</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Role</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>RoleType</Label>
            <Width>14</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>SmartClient</Label>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>WebClient</Label>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>MobileClient</Label>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>RoleType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.AllowSmartClientLogOn</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.AllowWebClientLogOn</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.AllowMobileClientLogOn</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Item State</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.Messaging.ItemState</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>Name</Label>
            <Width>25</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>ItemType</Label>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>18</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Id</Label>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <ScriptBlock>
                    ($_ | Get-PlatformItem).Name
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    [VideoOS.Platform.Kind]::DefaultTypeToNameTable[$_.FQID.Kind]
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>State</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.FQID.ObjectId</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Hardware Driver</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.HardwareDriver</TypeName>
      </ViewSelectedBy>
      <GroupBy>
        <PropertyName>DriverType</PropertyName>
      </GroupBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>6</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>10</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Number</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>UseCount</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DriverRevision</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Evidence Lock</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Common.Proxy.Server.WCF.MarkedData</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>15</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Created</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>StartTime</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>EndTime</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Expires</Label>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Retention</Label>
            <Width>15</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Header</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>User</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    $_.Created
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    $_.StartTime
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    $_.EndTime
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    $_.RetentionExpire
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    $unit = if ($_.RetentionOption.RetentionUnits -ge 0) { "$($_.RetentionOption.RetentionUnits) " }
                    "$unit$($_.RetentionOption.RetentionOptionType)"
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Bookmark</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Common.Proxy.Server.WCF.Bookmark</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader>
            <Label>Timestamp</Label>
            <Width>20</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Header</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Description</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Reference</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    $_.TimeTrigged
                </ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>User-defined Event</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.UserDefinedEvent</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Subtype</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Generic Event</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.GenericEvent</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>7</Width>
          </TableColumnHeader>
          <TableColumnHeader />
          <TableColumnHeader>
            <Label>ExpressionType</Label>
            <Width>18</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Expression</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                    $g = $_
                    $expressionTypes = @{}
                    $g.ExpressionTypeValues.Keys | Foreach-Object {
                    $expressionTypes.$($g.ExpressionTypeValues.$_) = $_
                    }
                    $expressionTypes.$($g.ExpressionType)
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Priority</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Configuration Item Property</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.ConfigurationApi.ClientService.Property</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Key</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Value</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ValueType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>IsSettable</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>LicenseInformation</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.LicenseInformation</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Slc</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Sku</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>CareLevel</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>CareId</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ActivationAutomatic</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>LicenseInstalledProductChildItem</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.LicenseInstalledProductChildItem</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Slc</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ExpirationDate</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>CarePlus</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>CarePremium</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>LicenseOverviewAllChildItem</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.LicenseOverviewAllChildItem</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>30</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>LicenseType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Activated</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>LicenseDetailChildItem</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.LicenseDetailChildItem</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Width>30</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>24</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>LicenseType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Activated</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>InGrace</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>GraceExpired</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>NotLicensed</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ChangesWithoutActivation</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.ManagementServer</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.ManagementServer</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>15</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Version</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ComputerName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>TimeZone</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.RecordingServer</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.RecordingServer</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>15</Width>
          </TableColumnHeader>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>8</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>HostName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>WebServerUri</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>TimeZoneName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.Hardware</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Hardware</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Address</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Model</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.Camera</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Camera</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>20</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Channel</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
 
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.Microphone</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Microphone</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Latitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Longitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Channel</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.Speaker</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Speaker</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Latitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Longitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Channel</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.InputEvent</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.InputEvent</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Latitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Longitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Channel</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.Output</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Output</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Latitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Longitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Channel</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.Metadata</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Metadata</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Latitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Longitude</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader />
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Channel</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Enabled</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Latitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                function ConvertTo-Coordinates {
                                    param([string]$GisPoint)
                                    if ($GisPoint -ne 'POINT EMPTY') {
                                        $long, $lat, $null = $GisPoint.Substring(6).Trim('(', ')').Split(' ') | Foreach-Object { [double]$_}
                                        [pscustomobject]@{Latitude = $lat; Longitude = $long}
                                    }
                                }
                                (ConvertTo-Coordinates -GisPoint $_.GisPoint).Longitude.ToString('#.####')
                </ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>Configuration Item</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.ConfigurationApi.ClientService.ConfigurationItem</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader>
            <Label>Enabled</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>25</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader />
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>DisplayName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.EnableProperty.Enabled</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ItemType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>ItemCategory</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Path</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.Storage</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.Storage</TypeName>
      </ViewSelectedBy>
      <GroupBy>
        <Label>Recording Server</Label>
        <ScriptBlock>[VideoOS.Platform.ConfigurationItems.RecordingServer]::new((Get-ManagementServer).ServerId, $_.ParentItemPath).Name</ScriptBlock>
      </GroupBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader>
            <Label>LiveRetention</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>LiveSize(GB)</Label>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Encryption</Label>
            <Width>6</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Archives</Label>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>TotalRetention</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>TotalSize(GB)</Label>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DiskPath</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>New-Timespan -Minutes $_.RetainMinutes</ScriptBlock>
                <FormatString>g</FormatString>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.MaxSize / 1KB</ScriptBlock>
                <FormatString>{0:.##}</FormatString>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>IsDefault</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Signing</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>EncryptionMethod</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.ArchiveStorageFolder.ArchiveStorages.Count</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>
                                    if ($_.ArchiveStorageFolder.ArchiveStorages.Count -eq 0) {
                                        New-TimeSpan -Minutes $_.RetainMinutes
                                    }
                                    else {
                                        New-TimeSpan -Minutes ($_.ArchiveStorageFolder.ArchiveStorages | Sort-Object RetainMinutes -Descending | Select-Object -First 1 -ExpandProperty RetainMinutes)
                                    }
                </ScriptBlock>
                <FormatString>g</FormatString>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>($_.MaxSize + ($_.ArchiveStorageFolder.ArchiveStorages.MaxSize | Measure-Object -Sum).Sum) / 1KB</ScriptBlock>
                <FormatString>{0:.##}</FormatString>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>VideoOS.Platform.ConfigurationItems.ArchiveStorage</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.ArchiveStorage</TypeName>
      </ViewSelectedBy>
      <GroupBy>
        <Label>Storage</Label>
        <ScriptBlock>
                    $storage = [VideoOS.Platform.ConfigurationItems.Storage]::new((Get-ManagementServer).ServerId, $_.ParentItemPath)
                    $storageName = $storage.Name
                    $recorderName = [VideoOS.Platform.ConfigurationItems.RecordingServer]::new((Get-ManagementServer).ServerId, $storage.ParentItemPath).Name
                    "$storageName on $recorderName"</ScriptBlock>
      </GroupBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader />
          <TableColumnHeader />
          <TableColumnHeader>
            <Label>Retention</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>MaxSize(GB)</Label>
            <Width>10</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>ReducesFramerate</Label>
            <Width>5</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>TargetFramerate</Label>
            <Width>3</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Width>36</Width>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>DiskPath</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>New-Timespan -Minutes $_.RetainMinutes</ScriptBlock>
                <FormatString>g</FormatString>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.MaxSize / 1KB</ScriptBlock>
                <FormatString>{0:.##}</FormatString>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.FramerateReductionEnabled</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>if ($_.FramerateReductionEnabled) { $_.TargetFramerate } else { '' }</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>HardwareScan</Name>
      <ViewSelectedBy>
        <TypeName>VmsHardwareScanResult</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>HardwareAddress</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>UserName</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>MacAddress</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>Validated</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>ExistsLocally</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>ExistsGlobally</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>RecordingServer</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>HardwareAddress</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>UserName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>MacAddress</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.HardwareScanValidated</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.MacAddressExistsLocal</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.MacAddressExistsGlobal</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.RecordingServer.Name</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>FailoverGroup</Name>
      <ViewSelectedBy>
        <TypeName>VideoOS.Platform.ConfigurationItems.FailoverGroup</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader/>
          <TableColumnHeader/>
          <TableColumnHeader/>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>Name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>Id</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>LastModified</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
  </ViewDefinitions>
</Configuration>