ServiceScaffold.psm1

Function New-Project(){
    [CmdletBinding()]
    param
    (
        [string]$ProjectName,
        [switch]$AddAngular
    )

    $folder = pwd
    $project = "$folder\$ProjectName"
    $api = "$project\api"
    $client = "$project\client"
    $testCsprojPath = "$api\test\$ProjectName.Api.Tests"
    $apiCsprojPath = "$api\src\$ProjectName.Api"
    $testCsproj = "$testCsprojPath\$ProjectName.Api.Tests.csproj"
    $apiCsproj = "$apiCsprojPath\$ProjectName.Api.csproj"

    <# Create project folders #>
    md $project
    md $api
    md $api\src
    md $api\build
    md $api\docs
    md $api\client-ts
    md $api\samples
    md $api\specs
    md $api\test

    cd $api
    ni README.md


    cd $api\src
    dotnet new webapi --name $ProjectName".Api"

    if($AddAngular -eq $true)
    {
        $appProject = "$ProjectName.App";
        md $client
        cd $client
        ng new $appProject --minimal --routing --inline-style false --inline-template false --style=scss
        cd $appProject
        npm install    
    }

    cd $api\test
    dotnet new xunit --name $ProjectName".Api.Tests"

    cd $api
    dotnet new sln --name $ProjectName
    dotnet sln add $testCsproj
    dotnet sln add $apiCsproj
    dotnet add $testCsproj reference $apiCsproj

    cd $api
    Invoke-WebRequest -Uri "https://www.gitignore.io/api/VisualStudio" | select -ExpandProperty content | Out-File -FilePath $(Join-Path -path $pwd -ChildPath ".gitignore") -Encoding ascii 
    git init
    git add .
    git commit -m "Init"


}            # end of Function New-Project