Functions/Import-DqEntities.ps1

Function Import-DqEntities
{
  <#
    .SYNOPSIS
      Deze functie importeert een of meerdere entiteiten naar de DQ Monitor Webservice.
   
    .DESCRIPTION
      De Import-DqEntities functie leest een entiteit definitiebestand uit en zal de entiteiten die daarin gedefinieerd staan importeren naar de DQ Monitor Webservice.
      Voordat deze functie gebruikt wordt, zorg ervoor dat de Context is gezet via functie Set-DqContext.
   
    .PARAMETER EntityJsonFile
      Het volledige pad naar een .JSON bestand dat voorzien is van een verzameling entiteiten die geupload moeten worden naar de DQ Monitor Webservice.
       
    .INPUTS
      Geen.
   
    .OUTPUTS
      Geen.
   
    .EXAMPLE
      PS> Import-DqEntities -EntityJsonFile "C:\DQ\entities.json"
      Entiteit 'Contract' is opgevoerd.
      Entiteit 'Wooneenheid' is opgevoerd.
      2 entiteit(en) opgevoerd.
 
    .LINK
      Set-DqContext
  #>

  
  [CmdletBinding()]
  Param(
    [Parameter(Mandatory=$True)]
    [ValidateNotNull()]
    [String] $EntityJsonFile
  )

  Validate-Context

  Write-Verbose "Entities bestand '$($EntityJsonFile)' wordt gebruikt."

  $ValidationResult = Validate-EntityJsonFile -EntityJsonFile $EntityJsonFile -ErrorAction Stop
  If ($ValidationResult -ne $True)
  {
    Return;
  }

  $EntityJsonRaw = Get-Content $EntityJsonFile -Raw -Encoding UTF8 -ErrorAction Ignore
  
  $EntitiesToUpload = Get-ApiEntitiesToUpload -EntityJsonRaw $EntityJsonRaw
  If ($EntitiesToUpload.Count -eq 0)
  {
    Write-Warning "Geen entiteiten gevonden om te uploaden."
    Return;
  }

  Upload-EntitiesToApi -EntitiesToUpload $EntitiesToUpload
}