Types/RoughDraft.Media/set_Year.ps1

<#
.SYNOPSIS
    Sets the Year Metadata
.DESCRIPTION
    Changes the Year metadata for a media file (persistently, if possible)
#>

param(
[ValidateScript({
    if ($_ -match '^\d{4}$') {
        return $true
    } elseif ($_ -is [DateTime]) {
        return $true
    } else {
        throw "Year must be a 4-digit number or a DateTime object"
    }
})]
[PSObject]
$Year
)


$propertyToSet = [Ordered]@{year=$year}
if ($year -is [DateTime]) {
    $propertyToSet.year = $year.Year    
}
# $yearPortion = @($datePortion -split '-')[0]

if (-not $this.'.Metadata') {
    $this.'.Metadata' = [Ordered]@{}
}

if (-not $this.'.Metadata'.date) {
    $propertyToSet.date = $propertyToSet.year
    if ($year -is [DateTime]) {
        $propertyToSet.date = $year.ToString('yyyy-MM-dd')
    }
    $this.'.Metadata'.date = $propertyToSet.date    
}

$this.'.Metadata'.Year = $propertyToSet.year
Set-Media -InputPath $this.InputPath -Property $propertyToSet