Skip to content

Instantly share code, notes, and snippets.

@germ13
Created September 7, 2021 07:07
Show Gist options
  • Save germ13/0d456bfdb1b84f5045f5147584eb2f80 to your computer and use it in GitHub Desktop.
Save germ13/0d456bfdb1b84f5045f5147584eb2f80 to your computer and use it in GitHub Desktop.
Create controllers and views
$_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