Skip to content

Instantly share code, notes, and snippets.

@tackme31
Created March 20, 2020 14:56
Show Gist options
  • Save tackme31/127abe83d9f9ca9a9e4e1cf7eaa04de6 to your computer and use it in GitHub Desktop.
Save tackme31/127abe83d9f9ca9a9e4e1cf7eaa04de6 to your computer and use it in GitHub Desktop.
function Get-FormData($formId, $startDate, $endDate) {
$provider = [Sitecore.DependencyInjection.ServiceLocator]::ServiceProvider.GetService([Sitecore.ExperienceForms.Data.IFormDataProvider])
$entries = $provider.GetEntries($formId.Guid, $startDate, $endDate)
if (-not $entries) {
return $null
}
# Get all column title
$titles = new-object System.Collections.Generic.HashSet[string]
$entries | % { $_.Fields | % { $titles.Add($_.FieldName) > $null } }
# Make rows from the entries
$entries | % { ConvertTo-Row $_ $titles }
}
function ConvertTo-Row($entry, $titles) {
$row = [PSCustomObject]@{}
$titles | % {
$field = $entry.Fields | ? FieldName -eq $_ | select -First 1
$value = $field.Value -replace [Environment]::NewLine,"<br>" # replace newlines to br tag
$row | Add-Member -MemberType NoteProperty -Name $_ -Value $value
}
$row | Add-Member -MemberType NoteProperty -Name Created -Value $entry.Created
$row
}
$result = Read-Variable -Parameters `
@{Name='formItem'; Title='Form'; Editor='droptree'; Source="DataSource=/sitecore/Forms"},
@{Name='startDate'; Title='Start date'; Editor='date'},
@{Name='endDate'; Title='End date'; Editor='date'}
if ($result -ne "ok") {
exit
}
Get-FormData $formItem.ID $startDate $endDate | Show-ListView
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment