# NetCoreSaaS **Repository Path**: easy_and_easy/NetCoreSaaS ## Basic Information - **Project Name**: NetCoreSaaS - **Description**: Asp.Net Core multi-tenant application Sample using #SaaSKit - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-27 - **Last Updated**: 2021-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NetCoreSaaS Asp.Net Core multi-tenant application Sample using #SaaSKit ## .Net Core 2.1 Support!!! This application is upgraded to support .Net Core 2.1. ## Known Issue Currently `HTTPS` redirection is not supported. ## Application Architecture Nothing Complex. I followed separate database per tenant approach. In `NetCoreSaaS.Data` project we have three different context. + `SystemDbContext` holds application/system level data + `CatalogDbContext` holds tenant level data like tenant configuration + `TenantDbContext` holds tenant specific data like tenant user, other tenant data ## Steps to run application + Create migration file if not created (but its already created under `Data` folder of `NetCoreSaaS.WebHost`). If you want to re-create migration later check `TempFiles` folder in `NetCoreSaaS.WebHost` for migration scripts. Run `System Database` and `Catalog Database` migration only. + Run application. Application will itself migrate changes to database with seeding in `NetCoreSaaS_Catalogdb` with tenant data. + For testing purpose, I have configure application to listen request in host `http://*.localhost:6001` (you can find configuration in `Program.cs` file.) Default seeding has only added two tenant which hostname are `http://tenant1.localhost:6001` and `http://tenant2.localhost:6001` therefore request from only these two hostname will be resolved else tenant will not resolve. You can find seeding in `NetCoreSaaS.WebHost > Infrastructures > Helpers > DbHelper` folder. + Once application is running, go to `http://tenant1.localhost:6001` and `http://tenant2.localhost:6001` you can find same site for two virtual shop(tenants). + You can also perform user signup and login operation with these tenants. More feature and documentation are comming...