Public/New-AeriesGradebookAssignment.ps1
function New-AeriesGradebookAssignment { <# .SYNOPSIS Add a new Gradbook Assignment in Aeries .DESCRIPTION The New-AeriesGradebookAssignment cmdlet is used to add a Gradebook Assignment in Aeries .EXAMPLE New-AeriesGradebookAssignment -GradebookNumber 123456 -Description "Assignment created from PowerShell" This will add a Gradebook Assignment to Aeries #> [Alias("Add-AeriesGradebookAssignment")] [CmdletBinding()] param ( [ValidateRange(1, [Int]::MaxValue)] [Parameter(Mandatory=$true)] [Int] $GradebookNumber, [Parameter(Mandatory=$true)] [string] $Description, [ValidateLength(0,1)] [Parameter(Mandatory=$false)] [string] $AssignmentCategoryCode, [Parameter(Mandatory=$false)] [DateTime] $DateAssigned, [Parameter(Mandatory=$false)] [datetime] $DateDue, [Parameter(Mandatory=$false)] [decimal] $NumberCorrectPossible = -1, [Parameter(Mandatory=$false)] [decimal] $PointsPossible = -1, [Parameter(Mandatory=$false)] [string] $Comment, [ValidateSet("F", "S")] [Parameter(Mandatory=$false)] [string] $FormativeSummativeIndicator, [Parameter(Mandatory=$false)] [boolean] $RubricAssignment, [Parameter(Mandatory=$false)] [string] $ExternalID, [Parameter(Mandatory=$false)] [boolean] $CreateInLinkedGradebooksToo = $true ) Begin { Write-Verbose -Message "Begin running $($MyInvocation.MyCommand)" $Method = "Post" $SuccessStatusCode = 201 $Endpoint = "v5/gradebooks/$GradebookNumber/Assignments" $ContentType = "application/json" $Body = @{} } Process { If (![string]::IsNullOrWhiteSpace($Description)) { <# String Value #> $Body.Description = $Description } If (![string]::IsNullOrWhiteSpace($AssignmentCategoryCode)) { <# String value #> $Body.AssignmentCategoryCode = $AssignmentCategoryCode } If (![string]::IsNullOrWhiteSpace($DateAssigned)) { <# Datetime value #> $Body.DateAssigned = $DateAssigned.ToString("yyyy-MM-dd") } If (![string]::IsNullOrWhiteSpace($DateDue)) { <# Datetime value #> $Body.DateDue = $DateDue.ToString("yyyy-MM-dd") } If ($NumberCorrectPossible -gt -1) { <# Decimal value #> $Body.NumberCorrectPossible = $NumberCorrectPossible } If ($PointsPossible -gt -1) { <# Decimal value #> $Body.PointsPossible = $PointsPossible } If (![string]::IsNullOrWhiteSpace($Comment)) { <# String value #> $Body.Comment = $Comment } If (![string]::IsNullOrWhiteSpace($FormativeSummativeIndicator)) { <# String value #> $Body.FormativeSummativeIndicator = $FormativeSummativeIndicator } If (![string]::IsNullOrWhiteSpace($ExternalID)) { <# String value #> $Body.ExternalID = $ExternalID } <# Boolean values #> $Body.RubricAssignment = $RubricAssignment $Body.CreateInLinkedGradebooksToo = $CreateInLinkedGradebooksToo <# Turn the $Body variable into a JSON string for sending to the server #> $BodyJSON = ($Body | ConvertTo-Json -Compress) $Result = (Invoke-AeriesApiCall -Method $Method -Endpoint $Endpoint -SuccessStatusCode $SuccessStatusCode -Body $BodyJSON -ContentType $ContentType) } End { Write-Verbose -Message "Finish running $($MyInvocation.MyCommand)" return $Result } } |