Created
September 7, 2021 07:07
-
-
Save germ13/0d456bfdb1b84f5045f5147584eb2f80 to your computer and use it in GitHub Desktop.
Create controllers and views
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$_solution="SHCA09"; | |
$_mvcProject="SHCA.Web"; | |
$_apiProject="SHCA.Api"; | |
$_dbProject="SHCA.Entity"; | |
$_sdk_version="5.0.303"; | |
$_dbName="Automatic" | |
$_dbModelFolder="Models" | |
## Install Install code generator: | |
`dotnet tool install -g dotnet-aspnet-codegenerator` | |
## Install entity framework model generator: | |
`dotnet tool install --global dotnet-ef` f | |
#TODO mvc routing vs endpoint routing | |
#TODO add context to configureservices | |
#TODO database project should be a class library not console | |
#TODO css not applied to views, fix | |
#TODO finish api | |
echo "=====================================$($_solution)================================="; | |
echo "========================================================================================"; | |
cd "c:\code"; | |
mkdir $_solution ; cd $_solution ; | |
dotnet new sln $_solution; | |
mkdir $_dbProject ; cd $_dbProject ; | |
dotnet new globaljson --sdk-version "$_sdk_version" ; | |
dotnet new console; # $_dbProject -o $_dbProject ; | |
cd .. ; | |
mkdir $_mvcProject ; cd $_mvcProject ; | |
dotnet new globaljson --sdk-version "$_sdk_version" ; | |
dotnet new mvc; # "$($_mvcProject)"; | |
cd .. ; | |
mkdir $_apiProject ; cd $_apiProject ; | |
dotnet new globaljson --sdk-version "$_sdk_version" ; | |
dotnet new webapi; # $_apiProject ; | |
cd .. ; | |
dotnet sln ".\$($_solution).sln" add ".\$_dbProject\$($_dbProject).csproj"; | |
dotnet sln ".\$($_solution).sln" add ".\$_mvcProject\$($_mvcProject).csproj"; | |
dotnet sln ".\$($_solution).sln" add ".\$_apiProject\$($_apiProject).csproj"; | |
cd "$_dbProject"; | |
dotnet add package Microsoft.EntityFrameworkCore.Design; | |
dotnet add package Microsoft.EntityFrameworkCore.SqlServer; | |
dotnet restore; | |
cd .. ; | |
cd "$_mvcProject"; | |
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design; | |
dotnet add package Microsoft.EntityFrameworkCore.Design; | |
dotnet restore; | |
cd .. ; | |
cd "$_apiProject"; | |
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design; | |
dotnet add package Microsoft.EntityFrameworkCore.Design; | |
dotnet restore; | |
cd .. ; | |
dotnet new gitignore ; | |
git init ; | |
git add . ; | |
git commit -m "initial commit"; | |
echo "creating ef models"; | |
cd $_dbProject; | |
dotnet ef dbcontext scaffold "Server=localhost;Database=$($_dbName);Trusted_Connection=true" Microsoft.EntityFrameworkCore.SqlServer -f -o "$($_dbModelFolder)" | |
cd .. | |
echo "creating controllers/views" | |
echo "referencing projects"; | |
# add project references | |
dotnet add ".\$_mvcProject\$($_mvcProject).csproj" reference ".\$_dbProject\$($_dbProject).csproj"; | |
cd ".\$_mvcProject"; | |
dotnet restore; | |
echo ">>creating controllers/views" | |
$content=Get-Content -Path "..\$($_dbProject)\$($_dbModelFolder)\$($_dbName)Context.cs"; | |
ForEach ($line in $content){ | |
$model=[regex]::Matches($line, 'DbSet<([^/)]+)>') | ForEach-Object { $_.Groups[1].Value } | |
if ($model){ | |
echo ">>>> $($model)"; | |
dotnet aspnet-codegenerator controller -name "$($model)Controller" -async -m "$model" -dc "$($_dbName)Context" -outDir Controllers -f | |
} | |
} | |
#dotnet aspnet-codegenerator controller -name CameraController -async -m Camera -dc WildcatContext -outDir Controllers -f | |
cd.. | |
echo "creating api endpoints" | |
echo "referencing projects"; | |
# add project references | |
dotnet add ".\$_apiProject\$($_apiProject).csproj" reference ".\$_dbProject\$($_dbProject).csproj"; | |
cd ".\$_apiProject"; | |
dotnet restore; | |
#echo ">>creating api endpoint" | |
#dotnet aspnet-codegenerator controller -name AppointmentsController -async -api -m Appointment -dc WildcatContext -outDir api00 | |
#cd.. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment