Private/New-NetworkPartitionFromJson.ps1

using module ..\Classes\NetworkPartition.psm1
function New-NetworkPartitionFromJson {
    Param(
        [PSCustomObject]$NetworkPartition
    )
    if ($NetworkPartition.ProductName) {
        if ($NetworkPartition.ProductName.IndexOf("-") -ge 0) {
            $Model = $NetworkPartition.ProductName.Substring(0,$NetworkPartition.ProductName.IndexOf("-"))
        } else {
            $Model = $NetworkPartition.ProductName
        }
        $Model = $Model.Trim()
    }
    return [NetworkPartition]@{
        DeviceId = $NetworkPartition.DeviceId
        DeviceName = $NetworkPartition.DeviceName
        DeviceServiceTag = $NetworkPartition.DeviceServiceTag
        ManagementIpAddress = $NetworkPartition.ManagementIpAddress
        ManagementMacAddress = $NetworkPartition.ManagementMacAddress
        NicId = $NetworkPartition.NicId
        VendorName = $NetworkPartition.VendorName
        PortId = $NetworkPartition.PortId
        Model = $Model
        LinkStatus = $NetworkPartition.LinkStatus
        LinkSpeed = $NetworkPartition.LinkSpeed
        Fqdd = $NetworkPartition.Fqdd
        CurrentMacAddress = $NetworkPartition.CurrentMacAddress
        PermanentMacAddress = $NetworkPartition.PermanentMacAddress
        PermanentFcoeMacAddress = $NetworkPartition.PermanentFcoeMacAddress
        VirtualMacAddress = $NetworkPartition.VirtualMacAddress
        VirtualIscsiMacAddress = $NetworkPartition.VirtualIscsiMacAddress
        VirtualFipMacAddress = $NetworkPartition.VirtualFipMacAddress
        NicMode = $NetworkPartition.NicMode
        FcoeMode = $NetworkPartition.FcoeMode
        IscsiMode = $NetworkPartition.IscsiMode
        MinBandwidth = $NetworkPartition.MinBandwidth
        MaxBandwidth = $NetworkPartition.MaxBandwidth
    }
}