src/Private/Report/PPT/Build-MCSCriticalImpactSlide.ps1
|
function Build-MCSCriticalImpactSlide { Param($Presentation,$CriticalRecommendation,$FoundryEndpoint,$MetroAgent,$ExtraRequest,$Debug) if ($Debug.IsPresent) { $DebugPreference = "Continue" } else { $DebugPreference = "SilentlyContinue" } $Loop = 1 $CurrentSlide = 13 $Counter = 1 if($FoundryEndpoint) { $Conversation = New-MCSSfMCConversation -MetroAgent $MetroAgent -ExtraRequest $ExtraRequest -Debug $Debug } # Prevents the script from creating the Critical Recommendation slide if there are no critical recommendations if (![string]::IsNullOrEmpty($CriticalRecommendation.'Recommendation')) { Write-Debug ((get-date -Format 'yyyy-MM-dd HH:mm:ss') + ' - Editing Critical Recommendation Slides - Critical Recommendations found..') foreach ($Recommendation in $CriticalRecommendation) { $RecommendationTitle = $Recommendation.'Recommendation' $RecommendationDescription = $Recommendation.'Description' if ($Loop -eq 1) { Write-Debug ((get-date -Format 'yyyy-MM-dd HH:mm:ss') + ' - Editing Critical Recommendation Slides - Adding Recommendation: ' + $RecommendationTitle) $SlideCriticalRecommendation = $Presentation.Slides | Where-Object { $_.SlideIndex -eq $CurrentSlide } ($SlideCriticalRecommendation.Shapes | Where-Object { $_.Id -eq 6 }).TextFrame.TextRange.Text = "C - $Counter" ($SlideCriticalRecommendation.Shapes | Where-Object { $_.Id -eq 8 }).TextFrame.TextRange.Text = $RecommendationTitle if ($FoundryEndpoint) { $Description = Get-MCSMetroAIRecommendationDescription -RecommendationTitle $RecommendationTitle -RecommendationDescription $RecommendationDescription -ExtraRequest $ExtraRequest -MetroAgent $MetroAgent -Conversation $Conversation -Debug:$Debug $Risk = Get-MCSMetroAIRiskImplications -RecommendationTitle $RecommendationTitle -RecommendationDescription $RecommendationDescription -ExtraRequest $ExtraRequest -MetroAgent $MetroAgent -Conversation $Conversation -Debug:$Debug $Action = Get-MCSMetroAIRecommendedActions -RecommendationTitle $RecommendationTitle -RecommendationDescription $RecommendationDescription -ExtraRequest $ExtraRequest -MetroAgent $MetroAgent -Conversation $Conversation -Debug:$Debug ($SlideCriticalRecommendation.Shapes | Where-Object { $_.Id -eq 24 }).TextFrame.TextRange.Text = $Risk $Risk = $null ($SlideCriticalRecommendation.Shapes | Where-Object { $_.Id -eq 25 }).TextFrame.TextRange.Text = $Action $Action = $null } else { $Description = $RecommendationDescription } ($SlideCriticalRecommendation.Shapes | Where-Object { $_.Id -eq 23 }).TextFrame.TextRange.Text = $Description $Loop ++ $Counter ++ start-sleep -Milliseconds 500 } else { Write-Debug ((get-date -Format 'yyyy-MM-dd HH:mm:ss') + ' - Editing Critical Recommendation Slides - Adding new Slide..') Write-Debug ((get-date -Format 'yyyy-MM-dd HH:mm:ss') + ' - Editing Critical Recommendation Slides - Adding Recommendation: ' + $RecommendationTitle) $Presentation.slides[$CurrentSlide].Duplicate() | Out-Null $CurrentSlide ++ $NextSlide = $Presentation.Slides | Where-Object { $_.SlideIndex -eq $CurrentSlide } ($NextSlide.Shapes | Where-Object { $_.Id -eq 6 }).TextFrame.TextRange.Text = "C - $Counter" ($NextSlide.Shapes | Where-Object { $_.Id -eq 8 }).TextFrame.TextRange.Text = $RecommendationTitle if ($FoundryEndpoint) { $Description = Get-MCSMetroAIRecommendationDescription -RecommendationTitle $RecommendationTitle -RecommendationDescription $RecommendationDescription -ExtraRequest $ExtraRequest -MetroAgent $MetroAgent -Conversation $Conversation -Debug:$Debug $Risk = Get-MCSMetroAIRiskImplications -RecommendationTitle $RecommendationTitle -RecommendationDescription $RecommendationDescription -ExtraRequest $ExtraRequest -MetroAgent $MetroAgent -Conversation $Conversation -Debug:$Debug $Action = Get-MCSMetroAIRecommendedActions -RecommendationTitle $RecommendationTitle -RecommendationDescription $RecommendationDescription -ExtraRequest $ExtraRequest -MetroAgent $MetroAgent -Conversation $Conversation -Debug:$Debug ($NextSlide.Shapes | Where-Object { $_.Id -eq 24 }).TextFrame.TextRange.Text = $Risk $Risk = $null ($NextSlide.Shapes | Where-Object { $_.Id -eq 25 }).TextFrame.TextRange.Text = $Action $Action = $null } else { $Description = $RecommendationDescription } ($NextSlide.Shapes | Where-Object { $_.Id -eq 23 }).TextFrame.TextRange.Text = $Description $Loop ++ $Counter ++ } Start-Sleep -Milliseconds 500 } } else { Write-Debug ((get-date -Format 'yyyy-MM-dd HH:mm:ss') + ' - Editing Critical Recommendation Slides - No Critical Recommendations found..') ($Presentation.Slides | Where-Object { $_.SlideIndex -eq 13 }).Delete() } } |