Skip to content

Instantly share code, notes, and snippets.

@hbulens
hbulens / Create BC Docker Container.ps1
Created June 27, 2024 12:10
Create a Docker container that runs MS Dynamics 365 Business Central
<#
.SYNOPSIS
Gets and deploys Business Central in a Docker container.
.DESCRIPTION
Downloads the image from the registry and deploys it to a Docker container.
This is done using the NavContainerHelper PowerShell module.
.PARAMETER bcVersion
See this blog for more information: https://freddysblog.com/2020/06/25/working-with-artifacts/
@hbulens
hbulens / README.md
Last active December 13, 2022 11:28
  • Download the latest license file from SharePoint: 🧭 Documents -> Licenties -> BC -> BC.flf
  • Open BC Powershell and run update-bc-license.ps1
@hbulens
hbulens / compressimages.ps1
Created December 5, 2022 08:43
Recursive compress images using imagemagick
param(
[Parameter(Mandatory=$true)]
[String]$path
)
Get-ChildItem –Path $path –Recurse -Include *.png,*.jpg,*.bmp | Foreach-Object {
magick $_.FullName -strip -interlace Plane -gaussian-blur 0.05 -quality 85% $_.FullName
}
@hbulens
hbulens / remove-pipeline.ps1
Created October 19, 2022 06:15
Remove Azure DevOps pipeline
#Azure DevOps Personal Access Token
# https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=Windows
# Courtesy of https://stackoverflow.com/questions/66264466/how-can-i-delete-azure-devops-old-build-pipelines-and-there-leases-with-power-sh
$personalAccessToken = "<Enter your personal access token here>"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($personalAccessToken)"))
$header = @{authorization = "Basic $token"}
$organization = "<Enter your Azure DevOps Organization here>"
$project = "<Enter your Project Name here>"
@hbulens
hbulens / README.md
Last active December 16, 2021 15:38
Creates a new user in Dime.Scheduler

About

Unofficial script to create a Dime.Scheduler user. Check the Dime.Scheduler CLI for the official and supported way to provision users.

Example

New-Dime.SchedulerUser `
-DisplayName "Name of the user" `
-EmailAddress "user@email.com" `
-Language en `
-TimeZone "Europe/London" `
@hbulens
hbulens / install-sqlserverexpress.ps1
Created June 16, 2021 06:59
Installs SQL Server Express 2019
function Install-SQLServerExpress2019 {
Write-Host "Downloading SQL Server Express 2019..."
$Path = $env:TEMP
$Installer = "SQL2019-SSEI-Expr.exe"
$URL = "https://go.microsoft.com/fwlink/?linkid=866658"
Invoke-WebRequest $URL -OutFile $Path\$Installer
Write-Host "Installing SQL Server Express..."
Start-Process -FilePath $Path\$Installer -Args "/ACTION=INSTALL /IACCEPTSQLSERVERLICENSETERMS /QUIET" -Verb RunAs -Wait
Remove-Item $Path\$Installer
@hbulens
hbulens / install-azure-ad-app.ps1
Last active May 10, 2021 17:59
Create an Azure AD App with application permissions using PowerShell. Courtesy of https://stackoverflow.com/a/61458391/1842261
param (
[Parameter(mandatory = $false, HelpMessage = "The name of the Azure AD App.")]
[string] $appName = "dime-scheduler",
[Parameter(mandatory = $true, HelpMessage = "The id of the Azure tenant ")]
[string] $tenantId,
[Parameter(mandatory = $true, HelpMessage = "The name of the Azure tenant ")]
[string] $tenantName,
param (
[Parameter(mandatory = $false, HelpMessage = "The name of the Azure AD App.")]
[string] $appName = "dime-scheduler",
[Parameter(mandatory = $true, HelpMessage = "The id of the Azure tenant ")]
[string] $tenantId,
[Parameter(mandatory = $true, HelpMessage = "The name of the Azure tenant ")]
[string] $tenantName,
internal static IQueryable<TEntity> Include<TEntity>(this IQueryable<TEntity> query, DbContext context, params string[] includes) where TEntity : class
{
// Do a safety check first
if (includes == null)
return query;
List<string> includeList = new List<string>();
if (includes.Any())
return includes
.Where(x => !string.IsNullOrEmpty(x) && !includeList.Contains(x))
Get-ChildItem .\ -include bin,obj -Recurse | foreach { remove-item $_.fullname -Force -Recurse }