Skip to content

Commit 90b6e15

Browse files
committed
Domain Interactions - Fixed: Unnecesary dependency on Intent.Common.UnitOfWork module causing errors when the module isn't installed.
1 parent 565cec8 commit 90b6e15

File tree

5 files changed

+37
-26
lines changed

5 files changed

+37
-26
lines changed

Modules/Intent.Modules.Application.DomainInteractions/Intent.Application.DomainInteractions.imodspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<package>
33
<id>Intent.Application.DomainInteractions</id>
4-
<version>1.1.6-pre.0</version>
4+
<version>1.1.6-pre.1</version>
55
<supportedClientVersions>[4.5.15-a,5.0.0)</supportedClientVersions>
66
<summary>Provides interaction strategies to generate domain interaction implementations.</summary>
77
<description>Provides interaction strategies to generate domain interaction implementations.</description>

Modules/Intent.Modules.Application.DomainInteractions/Intent.Modules.Application.DomainInteractions.csproj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
<Nullable>enable</Nullable>
88
</PropertyGroup>
99

10+
<ItemGroup>
11+
<Compile Include="..\Intent.Modules.Common.UnitOfWork\Settings\ModuleSettingsExtensions.cs" Link="Settings\ModuleSettingsExtensions.cs" />
12+
</ItemGroup>
13+
1014
<ItemGroup>
1115
<PackageReference Include="Intent.Modules.Common.CSharp" Version="3.9.6" />
1216
<PackageReference Include="Intent.Modules.Common.Types" Version="4.0.0" />
@@ -24,4 +28,8 @@
2428
<ProjectReference Include="..\Intent.Modules.Constants\Intent.Modules.Constants.csproj" PrivateAssets="All" />
2529
</ItemGroup>
2630

31+
<ItemGroup>
32+
<Folder Include="Settings\" />
33+
</ItemGroup>
34+
2735
</Project>

Modules/Intent.Modules.Application.DomainInteractions/InteractionStrategies/DeleteEntityInteractionStrategy.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using System.Collections.Generic;
1313
using System.Linq;
1414
using System.Threading;
15+
using Intent.Modules.Common.UnitOfWork.Settings;
1516
using static Intent.Modules.Constants.TemplateRoles.Domain;
1617

1718
namespace Intent.Modules.Application.DomainInteractions.InteractionStrategies
@@ -35,13 +36,13 @@ public void ImplementInteraction(ICSharpClassMethodDeclaration method, IElement
3536
? queryContext.GetDtoProjectionReturnType()
3637
: null;
3738

38-
method.AddStatements(method.GetQueryStatements(
39+
method.AddStatements(ExecutionPhases.Retrieval, method.GetQueryStatements(
3940
dataAccessProvider: dataAccess,
40-
interaction: interaction,
41+
interaction: interaction,
4142
foundEntity: foundEntity,
4243
projectedType: projectedType));
4344

44-
method.AddStatement(string.Empty);
45+
method.AddStatement(ExecutionPhases.Retrieval, string.Empty);
4546

4647
var deleteAction = interaction.AsDeleteEntityActionTargetEndModel();
4748
try
@@ -59,14 +60,14 @@ public void ImplementInteraction(ICSharpClassMethodDeclaration method, IElement
5960
statements.Add(entityDetails.DataAccessProvider.Remove(entityDetails.VariableName)
6061
.SeparatedFromPrevious());
6162
}
62-
method.AddStatements(statements);
63-
// Unit Of Work Module Auto Save Changes disabled?
64-
if (bool.TryParse(method.Class.File.Template.ExecutionContext.GetSettings().GetGroup("c4b7e545-eaac-42bc-8f06-2768ac8dad99").GetSetting("d6338b7c-b0f9-46bd-8dbb-3c745d5f8623").Value, out bool uowAutoSaveOff))
63+
method.AddStatements(ExecutionPhases.BusinessLogic, statements);
64+
65+
var automaticallyPersistUnitOfWork = method.Class.File.Template.ExecutionContext.GetSettings()
66+
.GetUnitOfWorkSettings()?.AutomaticallyPersistUnitOfWork() ?? true;
67+
var saveAlreadyCalled = method.FindStatement(x => x.ToString().Trim().Contains(entityDetails.DataAccessProvider.SaveChangesAsync().ToString().Trim())) != null;
68+
if (!saveAlreadyCalled && !automaticallyPersistUnitOfWork)
6569
{
66-
if (!uowAutoSaveOff)
67-
{
68-
method.AddStatement(ExecutionPhases.Persistence, new CSharpStatement($"{entityDetails.DataAccessProvider.SaveChangesAsync()}"));
69-
}
70+
method.AddStatement(ExecutionPhases.Persistence, new CSharpStatement($"{entityDetails.DataAccessProvider.SaveChangesAsync()}"));
7071
}
7172
}
7273
catch (Exception ex)

Modules/Intent.Modules.Application.DomainInteractions/InteractionStrategies/UpdateEntityInteractionStrategy.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using Intent.Exceptions;
1+
using Intent.Exceptions;
52
using Intent.Metadata.Models;
63
using Intent.Modelers.Domain.Api;
74
using Intent.Modelers.Services.DomainInteractions.Api;
@@ -11,7 +8,11 @@
118
using Intent.Modules.Common.CSharp.Interactions;
129
using Intent.Modules.Common.CSharp.Templates;
1310
using Intent.Modules.Common.Templates;
11+
using Intent.Modules.Common.UnitOfWork.Settings;
1412
using Intent.Modules.Constants;
13+
using System;
14+
using System.Collections.Generic;
15+
using System.Linq;
1516

1617
namespace Intent.Modules.Application.DomainInteractions.InteractionStrategies
1718
{
@@ -35,13 +36,13 @@ public void ImplementInteraction(ICSharpClassMethodDeclaration method, IElement
3536
? queryContext.GetDtoProjectionReturnType()
3637
: null;
3738

38-
method.AddStatements(method.GetQueryStatements(
39+
method.AddStatements(ExecutionPhases.Retrieval, method.GetQueryStatements(
3940
dataAccessProvider: dataAccess,
4041
interaction: interaction,
4142
foundEntity: foundEntity,
4243
projectedType: projectedType));
4344

44-
method.AddStatement(string.Empty);
45+
method.AddStatement(ExecutionPhases.Retrieval, string.Empty);
4546

4647
var updateAction = interaction.AsUpdateEntityActionTargetEndModel();
4748
var csharpMapping = method.GetMappingManager();
@@ -92,16 +93,16 @@ public void ImplementInteraction(ICSharpClassMethodDeclaration method, IElement
9293
statements.Add(entityDetails.DataAccessProvider.Update(entityDetails.VariableName)
9394
.SeparatedFromPrevious());
9495
}
95-
else // Unit Of Work Module Auto Save Changes disabled?
96-
if (bool.TryParse(method.Class.File.Template.ExecutionContext.GetSettings().GetGroup("c4b7e545-eaac-42bc-8f06-2768ac8dad99").GetSetting("d6338b7c-b0f9-46bd-8dbb-3c745d5f8623").Value, out bool uowAutoSaveOff))
96+
97+
method.AddStatements(ExecutionPhases.BusinessLogic, statements);
98+
99+
var automaticallyPersistUnitOfWork = method.Class.File.Template.ExecutionContext.GetSettings()
100+
.GetUnitOfWorkSettings()?.AutomaticallyPersistUnitOfWork() ?? true;
101+
var saveAlreadyCalled = method.FindStatement(x => x.ToString().Trim().Contains(entityDetails.DataAccessProvider.SaveChangesAsync().ToString().Trim())) != null;
102+
if (!saveAlreadyCalled && !automaticallyPersistUnitOfWork)
97103
{
98-
if (!uowAutoSaveOff)
99-
{
100-
method.AddStatement(ExecutionPhases.Persistence, new CSharpStatement($"{entityDetails.DataAccessProvider.SaveChangesAsync()}"));
101-
}
104+
method.AddStatement(ExecutionPhases.Persistence, new CSharpStatement($"{entityDetails.DataAccessProvider.SaveChangesAsync()}"));
102105
}
103-
104-
method.AddStatements(statements);
105106
}
106107
catch (Exception ex)
107108
{

Modules/Intent.Modules.Application.DomainInteractions/release-notes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
### Version 1.1.6
22

33
- Improvement: Improved error message when `ProjectTo` is selected as the query strategy with an unsupporting provider (mapperly)
4+
- Fixed: Unnecesary dependency on `Intent.Common.UnitOfWork` module causing errors when the module isn't installed.
45

56
### Version 1.1.5
67

0 commit comments

Comments
 (0)