WikiTechnology.types.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Types>
    <Type>
        <Name>WikiTechnology</Name>
        <Members>
            <PropertySet>
                <Name>DefaultDisplayPropertySet</Name>
                <ReferencedProperties>
                    <Name>Page</Name>
                    <Name>Properties</Name>
                    <Name>Labels</Name>
                </ReferencedProperties>
            </PropertySet>
 
            <ScriptProperty>
                <Name>AllProperties</Name>
                <GetScriptBlock>($this.Properties | Select-Object -ExpandProperty Properties)</GetScriptBlock>
            </ScriptProperty>
 
            <ScriptProperty>
                <Name>TechnologyProperties</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology' } | Select-Object -ExpandProperty Properties)</GetScriptBlock>
            </ScriptProperty>
 
            <ScriptProperty>
                <Name>VersionProperties</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology-version' } | Select-Object -ExpandProperty Properties)</GetScriptBlock>
            </ScriptProperty>
 
            <ScriptProperty>
                <Name>TechnologyName</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Technology } )</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>TechnologyVendor</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Vendor } )</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>TechnologyStatus</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Status } )</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>TechnologyType</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Type } )</GetScriptBlock>
            </ScriptProperty>
 
            <ScriptProperty>
                <Name>VersionRecommended</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology-version' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Recommended } )</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>VersionAccepted</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology-version' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Accepted } )</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>VersionOutdated</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology-version' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Outdated } )</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>VersionVulnerable</Name>
                <GetScriptBlock>($this.Properties | Where-Object { $_.Id -eq 'technology-version' } | Select-Object -ExpandProperty Properties | Foreach-Object { $_.Vulnerable } )</GetScriptBlock>
            </ScriptProperty>
 
            <ScriptProperty>
                <Name>ArtifactType</Name>
                <GetScriptBlock>($this.GetType().Name)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageID</Name>
                <GetScriptBlock>($this.Page.ID)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageTitle</Name>
                <GetScriptBlock>($this.Page.Title)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageBody</Name>
                <GetScriptBlock>($this.Page.Body)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageSpaceKey</Name>
                <GetScriptBlock>($this.Page.Space.Key)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageSpace</Name>
                <GetScriptBlock>($this.Page.Space.Name)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageVersion</Name>
                <GetScriptBlock>($this.Page.Version.Number)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageLastUpdated</Name>
                <GetScriptBlock>($this.Page.Version.When)</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageUri</Name>
                <GetScriptBlock>([uri]::new($this.Page.URL))</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageEditUri</Name>
                <GetScriptBlock>([uri]::new(($this.Page.URL -replace '/(\d+)$','/edit-v2/$1')))</GetScriptBlock>
            </ScriptProperty>
            <ScriptProperty>
                <Name>PageAncestors</Name>
                <GetScriptBlock>($this.Page.Ancestors)</GetScriptBlock>
            </ScriptProperty>
        </Members>
    </Type>
</Types>