Skip to content

Solution structure

Generated solution: ConnectSoft.Saas.ProductsCatalogTemplate.slnx - context projects under src/ plus the base-template/ submodule.

Products Catalog src/ projects

ConnectSoft.Saas.ProductsCatalog (constants/exceptions), .EntityModel, .DomainModel, .DomainModel.Impl, .PersistenceModel, .PersistenceModel.NHibernate, .DatabaseModel.Migrations, .MessagingModel, .FlowModel, .FlowModel.MassTransit (publish-only - only GlobalSuppressions.cs), .ServiceModel, .ServiceModel.RestApi, .ServiceModel.Grpc, .ActorModel, .ActorModel.Orleans, .SchedulerModel, .SchedulerModel.Hangfire, .ApplicationModel, .Application, .Options, .Metrics, .ArchitectureModel, .InfrastructureModel, .DockerCompose, .DiagramAsCodeModel.

Layer responsibilities are shared across SaaS L3 templates - see template layering and reuse.

Domain model highlights

  • EntityModel: IProduct (root), owned Edition/EditionFeature/EditionSla/EditionPricing/EditionBusinessModel, peer Feature/PricingModel/BusinessModel, value objects UsageLimit/BillingRule/AccessRule.
  • DomainModel.Impl/Validators: nine validators (CreateProductInputValidator ... DeactivateFeatureInputValidator).

Tests

  • ConnectSoft.Saas.ProductsCatalog.UnitTests
  • ConnectSoft.Saas.ProductsCatalog.AcceptanceTests (Reqnroll)
  • ConnectSoft.Saas.ProductsCatalog.ArchitectureTests

See testing.

See also