data.ps1

Set-StrictMode -Version 2

function Get-RandomHtml{
    param([int]$MaxParagraphs = 3)

    $html = ""
    0..(Get-Random -Min 0 -Max $MaxParagraphs) |% {
        $para = $dummyData.Paragraphs | Get-Random
        $html+= "<p>$([System.Web.HttpUtility]::HtmlEncode($para))</p>"
    }
    $html += "<!-- $([guid]::NewGuid()) -->"

    $html
}

function Test-Probability {
    param(
        [parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)]
        [ValidateRange(0,1)]
        [double]$Probability
    )
    (Get-Random -Minimum 1 -max 1001) -lt ($Probability * 1000)
}

function Get-RandomBiasedCommentCount
{
    param(
        [int]$LowerMax = 10,
        [int]$Max = 20
        )

    if (Test-Probability 0.15) {
        Get-Random -min $LowerMax -max $max
    }
    else {
        Get-Random -max $LowerMax
    }
}


function Get-RandomApplicationName {
    $dummyData.AppNames | Get-Random
}
function Get-RandomTitle {
    $dummyData.Subjects | Get-Random
}
function Get-RandomTag {
    $dummyData.Tags | Get-Random
}
function Get-RandomName {
    "$($dummyData.Forenames | Get-Random) $($dummyData.Surnames | Get-Random)"
}
function Get-RandomExternalUrl {
    $dummyData.ExternalUrls | Get-Random
}
function Get-RandomFile {
    $dummyData.Files | Get-Random
}

push-location $PSScriptRoot
$dummyData = @{
    Subjects = Get-Content Subjects.txt -Encoding UTF8
    Paragraphs = Get-Content Paragraphs.txt -Encoding UTF8
    AppNames = Get-Content AppNames.txt -Encoding UTF8
    Tags = Get-Content tags.txt -Encoding UTF8
    Forenames = Get-Content Forenames.txt -Encoding UTF8
    Surnames = Get-Content Surnames.txt -Encoding UTF8
    ExternalUrls = Get-Content ExternalUrls.txt -Encoding UTF8
    Avatars = Get-ChildItem Avatars | Select -ExpandProperty FullName
    Files = Get-ChildItem Files | Select -ExpandProperty FullName
}
Pop-Location