![]() |
VOOZH | about |
dotnet add package WasmAI.AutoGenerator.API --version 1.0.0-c
NuGet\Install-Package WasmAI.AutoGenerator.API -Version 1.0.0-c
<PackageReference Include="WasmAI.AutoGenerator.API" Version="1.0.0-c" />
<PackageVersion Include="WasmAI.AutoGenerator.API" Version="1.0.0-c" />Directory.Packages.props
<PackageReference Include="WasmAI.AutoGenerator.API" />Project file
paket add WasmAI.AutoGenerator.API --version 1.0.0-c
#r "nuget: WasmAI.AutoGenerator.API, 1.0.0-c"
#:package WasmAI.AutoGenerator.API@1.0.0-c
#addin nuget:?package=WasmAI.AutoGenerator.API&version=1.0.0-c&prereleaseInstall as a Cake Addin
#tool nuget:?package=WasmAI.AutoGenerator.API&version=1.0.0-c&prereleaseInstall as a Cake Tool
WasmAI.AutoGenerator is a powerful code-generation library for .NET 8 that automates the scaffolding of backend components like models, services, controllers, and moreβbased on a flexible folder configuration.
βοΈ Automatic Generation of Backend Layers:
ποΈ Dynamic Folder and File Generation:
Uses folderStructure.json to generate nested folders and files.
ποΈ Architecture Pattern Support:
Built-in templates: Country, Plug, Share, Builder, Service, and Scope.
π οΈ Customizable & Modular: Easily adapt to any backend architecture style.
π Service Lifetime Support: Scoped, singleton, and transient services supported.
π Built-in Notification Provider: Supports Email, SMS, Push, and In-App notifications.
βββββββββββββββ ββββββββββββββββββββββ ββββββββββββββββββ
β Models ββββββββΆβ Marker Interfaces ββββββββΆβ AutoGenerator β
βββββββββββββββ ββββββββββββββββββββββ ββββββββ¬βββββββββββ
βΌ
ββββββββββββββ¬ββββββββββββββ¬βββββββββββββββ¬ββββββββββββββ¬βββββββββββββββ
β DTOs β Repositoriesβ Services β Controllers β Validators β
ββββββββββββββ΄ββββββββββββββ΄βββββββββββββββ΄ββββββββββββββ΄βββββββββββββββ
dotnet add package WasmAI.AutoGenerator --version 1.1.0
π After installation, add the necessary namespace:
using AutoGenerator.ApiFolder;
folderStructure.json)Here's an example:
{
"Controllers": [ "Api", "Auth", "Admin" ],
"Repositories": [ "Base", "Builder", "Share" ],
"Services": [ "Email", "Logging" ],
"DyModels": [
{
"VM": [],
"Dto": {
"Build": [ "Request", "Response", "ResponseFilter" ],
"Share": [ "Request", "Response", "ResponseFilter" ]
},
"Dso": [ "Request", "Response", "ResponseFilter" ]
}
],
"Config": [ "Mappers", "Scopes", "Singletons", "Transients" ],
"Models": [],
"Builders": [ "Db" ],
"Helper": [],
"Data": [],
"Enums": [],
"Validators": [ "Conditions" ],
"Schedulers": []
}
using AutoGenerator.ApiFolder;
using System;
class Program
{
static void Main(string[] args)
{
string projectPath = "path_to_your_project";
ApiFolderGenerator.Build(projectPath);
Console.WriteLine("β
All folders have been created successfully!");
}
}
dotnet run generate
This command reads the folderStructure.json and creates all required folders and files instantly.
DataContext and CategoryModel with ITModel and ITAutoDbContextDataContextFirst, you need to make sure that DataContext inherits from AutoIdentityDataContext and implements ITAutoDbContext. This allows you to manage identity operations and database access in a simple and automated way.
public class DataContext : AutoIdentityDataContext<ApplicationUser, IdentityRole, string>, ITAutoDbContext
{
// Add properties like DbSet for your models
public DbSet<CategoryModel> Categories { get; set; }
public DataContext(DbContextOptions<DataContext> options) : base(options)
{
}
// You can add any custom functions for DbContext here
}
DataContext inherits from AutoIdentityDataContext<ApplicationUser, IdentityRole, string> because you need to work with identity management using ApplicationUser and IdentityRole.ITAutoDbContext ensures that the DataContext can handle automatic operations.DbSet<CategoryModel> is an example of adding a model to DataContext so it can be interacted with in the database.CategoryModel and Implement ITModelNow, you need to implement the ITModel interface in your models like CategoryModel to take advantage of automatic operations.
public class CategoryModel : ITModel
{
[Key]
public string? Id { get; set; } = $"catm_{Guid.NewGuid():N}"; // Automatically generates a unique value
[Required]
[ToTranslation] // Mark to ensure the field is translated automatically
public string? Name { get; set; }
[ToTranslation] // Mark to ensure the field is translated automatically
public string? Description { get; set; }
}
CategoryModel class implements ITModel, which means it includes an Id property that gets automatically generated using Guid.NewGuid().Name and Description properties have the [ToTranslation] attribute to indicate that they should be translated automatically.Hereβs how to configure it in your project:
builder.Services
. AddAutoBuilderApiCore<DataContext,ApplicationUser>(new()
{
Arags = args,
NameRootApi = "V1",
IsMapper = true,
Assembly = Assembly.GetExecutingAssembly(),
DbConnectionString = builder.Configuration.GetConnectionString("DefaultConnection"),
ProjectPath= "folderStructure.json"
})
.AddAutoValidator()
.AddAutoConfigScheduler()
.AddAutoNotifier(new()
{
MailConfiguration = new MailConfig()
{
SmtpUsername = "user@gmail.com",
SmtpPassword = "your_smtp_password", // π Secure this!
SmtpHost = "smtp.gmail.com",
SmtpPort = 587,
FromEmail = "user@gmail.com",
NameApp = "app"
},
// sms
// push web any platforms
});
dotnet run generate
# Basic Generation
dotnet run generate # Standard generation
dotnet run generate /m # With Model Generator
dotnet run generate /m/ai # AI-Assisted generation
# π’ BPR ENTERPRISE PATTERNS
dotnet run generate /bpr c:dso # Domain Service Objects
dotnet run generate /bpr c:share # Shared DTO Pattern
dotnet run generate /bpr c:build # Builder Pattern
dotnet run generate /bpr c:all # Complete Enterprise Stack
# π COMBINED WORKFLOWS
dotnet run generate /bpr c:dso /m # DSO + Model Generator
dotnet run generate /bpr c:all /m/ai # Complete AI-Assisted
# π AUTHENTICATION COMMANDS
dotnet run generate /bpr e:auth # Add authentication files (skip if exists)
dotnet run generate /bpr e:nauth # Force create new auth files
# π³ PAYMENT INTEGRATION COMMANDS
dotnet run generate /bpr e:payment # Add payment provider infrastructure
dotnet run generate /bpr e:payment stripe # Add Stripe payment integration
dotnet run generate /bpr e:payment paypal # Add PayPal payment integration
dotnet run generate /bpr e:payment all # Add all payment providers
# π― COMBINED AUTH & PAYMENT
dotnet run generate /bpr e:auth e:payment # Auth + Payment infrastructure
dotnet run generate /bpr c:all e:auth e:payment /m/ai # Complete stack with AI
using System.Diagnostics;
using System.Reflection;
using AutoGenerator;
using AutoGenerator.Config;
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using WasmAI.AutoGenerator.Auth;
using WasmAI.PaymentProvider.Data;
using WasmAI.PaymentProvider.Models;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
// β
Enhanced Main Service Registration
builder.Services
.AddWasmAutoGeneratorApi<PaymentDbContext, ApplicationUser>(new()
{
Arags = args,
NameRootApi = "v1",
Assembly = Assembly.GetExecutingAssembly(),
DbConnectionString = builder.Configuration.GetConnectionString("DefaultConnection"),
});
var app = builder.Build();
// β
Enhanced Middleware Registration
app.UseWasmAutoGeneratorApi();
app.UseHttpsRedirection();
app.MapControllers();
app.Run();
WasmAI.AutoGenerator supercharges your .NET development by reducing boilerplate and enforcing clean, modular architecture. Whether you're building an admin panel, a complex API, or a service-oriented backendβthis tool lets you build your project architecture in seconds with:
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.