diff --git a/src/_SampleSystem/SampleSystem.Domain/Directories/BusinessUnitType.cs b/src/_SampleSystem/SampleSystem.Domain/Directories/BusinessUnitType.cs index d2e67b31f..f2d6965a6 100644 --- a/src/_SampleSystem/SampleSystem.Domain/Directories/BusinessUnitType.cs +++ b/src/_SampleSystem/SampleSystem.Domain/Directories/BusinessUnitType.cs @@ -6,6 +6,11 @@ namespace SampleSystem.Domain; +public interface ICreator +{ + static abstract void Create(); +} + [BLLViewRole, BLLSaveRole] [SampleSystemViewDomainObject(SampleSystemSecurityOperationCode.BusinessUnitTypeView)] [SampleSystemEditDomainObject(SampleSystemSecurityOperationCode.BusinessUnitTypeEdit)] @@ -14,7 +19,8 @@ public partial class BusinessUnitType : BaseDirectory, IMaster<BusinessUnitTypeLinkWithPossibleParent>, IMaster<BusinessUnitTypeLinkWithPossibleFinancialProjectType>, - IMaster<BusinessUnitTypeLinkWithTransferTo> + IMaster<BusinessUnitTypeLinkWithTransferTo>, + ICreator { public static readonly Guid AccountTypeId = new Guid("E186F760-1BDE-4C95-8423-6C3CD2AFB4BF"); public static readonly Guid LobTypeId = new Guid("F513D669-5CB7-4C00-A1FE-941993C062FE"); @@ -188,4 +194,9 @@ ICollection<BusinessUnitTypeLinkWithPossibleFinancialProjectType> IMaster<Busine { get { return (ICollection<BusinessUnitTypeLinkWithPossibleFinancialProjectType>)this.PossibleFinancialProjectTypes; } } + + public static void Create() + { + // Actively doing nothin + } } diff --git a/src/_SampleSystem/SampleSystem.WebApiCore/Controllers/TestRepositoryController.cs b/src/_SampleSystem/SampleSystem.WebApiCore/Controllers/TestRepositoryController.cs index e62648354..6026a4038 100644 --- a/src/_SampleSystem/SampleSystem.WebApiCore/Controllers/TestRepositoryController.cs +++ b/src/_SampleSystem/SampleSystem.WebApiCore/Controllers/TestRepositoryController.cs @@ -1,8 +1,13 @@ using Framework.DomainDriven; +using Framework.DomainDriven.Repository; using Microsoft.AspNetCore.Mvc; +using NHibernate; +using NHibernate.Proxy; + using SampleSystem.BLL; +using SampleSystem.Domain; using SampleSystem.Generated.DTO; namespace SampleSystem.WebApiCore.Controllers.Main; @@ -21,10 +26,27 @@ public TestRepositoryController(IExampleServiceForRepository exampleService) [DBSessionMode(DBSessionMode.Read)] [HttpPost(nameof(LoadPair))] - public async Task<(List<EmployeeIdentityDTO> Employees, List<BusinessUnitIdentityDTO> BusinessUnits)> LoadPair(CancellationToken cancellationToken = default) + public async Task<(List<EmployeeIdentityDTO> Employees, List<BusinessUnitIdentityDTO> BusinessUnits)> LoadPair( + CancellationToken cancellationToken = default) { var pair = await this.exampleService.LoadPair(cancellationToken); return (pair.Employees.ToIdentityDTOList(), pair.BusinessUnits.ToIdentityDTOList()); } + + [DBSessionMode(DBSessionMode.Read)] + [HttpPost(nameof(TestStaticAbstract))] + public void TestStaticAbstract( + [FromServices] IRepositoryFactory<BusinessUnit, Guid, SampleSystemSecurityOperationCode> repositoryFactory, + CancellationToken cancellationToken = default) + { + var list = repositoryFactory.Create() + .GetQueryable() + .ToList(); + + foreach (var businessUnit in list) + { + Console.WriteLine(businessUnit.BusinessUnitType.Id); + } + } }