Skip to content

Commit a286c9b

Browse files
author
Cesar Romero
committed
Lets begin: Delphi Clean Architecture
1 parent ff8d855 commit a286c9b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+5699
-0
lines changed

DelphiCleanArchitecture.groupproj

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<PropertyGroup>
3+
<ProjectGuid>{973F6B4A-EE23-4F0C-8CE2-F8F6E3562A6B}</ProjectGuid>
4+
</PropertyGroup>
5+
<ItemGroup>
6+
<Projects Include="sources\Application\CleanArchApplication.dproj">
7+
<Dependencies>sources\Infrastructure\CleanArchInfrastructure.dproj;sources\Domain\CleanArchDomain.dproj</Dependencies>
8+
</Projects>
9+
<Projects Include="sources\Infrastructure\CleanArchInfrastructure.dproj">
10+
<Dependencies>sources\Domain\CleanArchDomain.dproj</Dependencies>
11+
</Projects>
12+
<Projects Include="sources\Domain\CleanArchDomain.dproj">
13+
<Dependencies/>
14+
</Projects>
15+
<Projects Include="tests\CleanArchUnitTests.dproj">
16+
<Dependencies/>
17+
</Projects>
18+
</ItemGroup>
19+
<ProjectExtensions>
20+
<Borland.Personality>Default.Personality.12</Borland.Personality>
21+
<Borland.ProjectType/>
22+
<BorlandProject>
23+
<Default.Personality/>
24+
</BorlandProject>
25+
</ProjectExtensions>
26+
<Target Name="CleanArchApplication" DependsOnTargets="CleanArchInfrastructure;CleanArchDomain">
27+
<MSBuild Projects="sources\Application\CleanArchApplication.dproj"/>
28+
</Target>
29+
<Target Name="CleanArchApplication:Clean" DependsOnTargets="CleanArchInfrastructure:Clean;CleanArchDomain:Clean">
30+
<MSBuild Projects="sources\Application\CleanArchApplication.dproj" Targets="Clean"/>
31+
</Target>
32+
<Target Name="CleanArchApplication:Make" DependsOnTargets="CleanArchInfrastructure:Make;CleanArchDomain:Make">
33+
<MSBuild Projects="sources\Application\CleanArchApplication.dproj" Targets="Make"/>
34+
</Target>
35+
<Target Name="CleanArchInfrastructure" DependsOnTargets="CleanArchDomain">
36+
<MSBuild Projects="sources\Infrastructure\CleanArchInfrastructure.dproj"/>
37+
</Target>
38+
<Target Name="CleanArchInfrastructure:Clean" DependsOnTargets="CleanArchDomain:Clean">
39+
<MSBuild Projects="sources\Infrastructure\CleanArchInfrastructure.dproj" Targets="Clean"/>
40+
</Target>
41+
<Target Name="CleanArchInfrastructure:Make" DependsOnTargets="CleanArchDomain:Make">
42+
<MSBuild Projects="sources\Infrastructure\CleanArchInfrastructure.dproj" Targets="Make"/>
43+
</Target>
44+
<Target Name="CleanArchDomain">
45+
<MSBuild Projects="sources\Domain\CleanArchDomain.dproj"/>
46+
</Target>
47+
<Target Name="CleanArchDomain:Clean">
48+
<MSBuild Projects="sources\Domain\CleanArchDomain.dproj" Targets="Clean"/>
49+
</Target>
50+
<Target Name="CleanArchDomain:Make">
51+
<MSBuild Projects="sources\Domain\CleanArchDomain.dproj" Targets="Make"/>
52+
</Target>
53+
<Target Name="CleanArchUnitTests">
54+
<MSBuild Projects="tests\CleanArchUnitTests.dproj"/>
55+
</Target>
56+
<Target Name="CleanArchUnitTests:Clean">
57+
<MSBuild Projects="tests\CleanArchUnitTests.dproj" Targets="Clean"/>
58+
</Target>
59+
<Target Name="CleanArchUnitTests:Make">
60+
<MSBuild Projects="tests\CleanArchUnitTests.dproj" Targets="Make"/>
61+
</Target>
62+
<Target Name="Build">
63+
<CallTarget Targets="CleanArchApplication;CleanArchInfrastructure;CleanArchDomain;CleanArchUnitTests"/>
64+
</Target>
65+
<Target Name="Clean">
66+
<CallTarget Targets="CleanArchApplication:Clean;CleanArchInfrastructure:Clean;CleanArchDomain:Clean;CleanArchUnitTests:Clean"/>
67+
</Target>
68+
<Target Name="Make">
69+
<CallTarget Targets="CleanArchApplication:Make;CleanArchInfrastructure:Make;CleanArchDomain:Make;CleanArchUnitTests:Make"/>
70+
</Target>
71+
<Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
72+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
program CleanArchApplication;
2+
3+
{$APPTYPE CONSOLE}
4+
{$R *.res}
5+
6+
uses
7+
System.SysUtils,
8+
9+
Spring.Container,
10+
Spring.Persistence.Criteria.Properties,
11+
12+
OrderEntity,
13+
OrderDetailEntity,
14+
15+
RepositoryIntf,
16+
OrderDetailRepositoryIntf,
17+
OrderAggregateIntf,
18+
19+
ConsoleUtils,
20+
Startup in 'Startup.pas',
21+
OrderView in 'OrderView.pas';
22+
23+
begin
24+
try
25+
ReportMemoryLeaksOnShutdown := True;
26+
27+
var services := GlobalContainer;
28+
TStartup.ConfigureServices(services);
29+
services.Build();
30+
31+
var orderRepository := services.Resolve<IRepository<TOrder>>();
32+
var orderDetailRepository := services.Resolve<IOrderDetailRepository>();
33+
var aggregate := services.Resolve<IOrderAggregate>();
34+
35+
var view := TOrderView.Create(orderRepository, orderDetailRepository, aggregate);
36+
view.ShowAllOrders;
37+
38+
Console.WaitUserInput();
39+
except
40+
on E: Exception do
41+
Writeln(E.ClassName, ': ', E.Message);
42+
end;
43+
44+
end.

0 commit comments

Comments
 (0)