Functions/New-DqEntity.ps1

Function New-DqEntity
{
  <#
    .SYNOPSIS
      Deze functie voegt een entiteit toe aan een DQ Monitor Webservice.
   
    .DESCRIPTION
      De New-DqEntity functie geeft de mogelijkheid om een entiteit toe te voegen aan een DQ Monitor Webservice.
      Voordat deze functie gebruikt wordt, zorg ervoor dat de Context is gezet via functie Set-DqContext.
   
    .PARAMETER Name
      De unieke naam van het entiteit zoals deze geregistreerd moet worden bij de DQ Monitor Webservice.
     
    .PARAMETER PluralName
      De meervoudsnaam van het entiteit zoals deze geregistreerd moet worden bij de DQ Monitor Webservice.
 
    .PARAMETER Description
      De omschrijving van het entiteit zoals deze geregistreerd moet worden bij de DQ Monitor Webservice.
 
    .INPUTS
      Geen.
   
    .OUTPUTS
      Geen.
   
    .EXAMPLE
      PS> New-DqEntity -Name "Contract" -PluralName "Contracten" -Description "Een lijst van contracten."
      Entiteit 'Contract' is toegevoegd.
 
    .LINK
      Set-DqContext
  #>


  [CmdletBinding()]
  Param(
    [Parameter(Mandatory=$True, position=1)]
    [ValidateNotNullOrEmpty()]
    [String] $Name,

    [Parameter(Mandatory=$True, position=2)]
    [ValidateNotNullOrEmpty()]
    [String] $PluralName,

    [Parameter(Mandatory=$True, position=3)]
    [ValidateNotNullOrEmpty()]
    [String] $Description
  )
  
  # Check if entity is already present. Name must be unique.
  $EntityObject = Get-DqEntities | Where-Object { $_.Name.ToLowerInvariant().Equals($Name.ToLowerInvariant()) }
  If ($EntityObject)
  {
    Write-Host "De naam '$($Name)' wordt al gebruikt voor een andere entiteit en kan om deze reden niet opnieuw gebruikt worden." -ForegroundColor Red
    Return;
  }

  Write-Verbose "Toevoegen van entiteit met naam '$($Name)'..."
  Add-Entity -Name $Name -PluralName $PluralName -Description $Description -ErrorAction Stop | Out-Null
  Write-Host "Entiteit '$($Name)' is toegevoegd."
}