Skip to content

Commit 4c66333

Browse files
committed
Fixed extensions project
1 parent c5350d4 commit 4c66333

File tree

13 files changed

+145
-26
lines changed

13 files changed

+145
-26
lines changed

src/EntityFrameworkCore.Triggered.Extensions/ServiceCollectionExtensions.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,23 @@ public static class ServiceCollectionExtensions
1212
{
1313
static readonly Type[] _wellKnownTriggerTypes = new Type[] {
1414
typeof(IBeforeSaveTrigger<>),
15+
typeof(IBeforeSaveAsyncTrigger<>),
1516
typeof(IAfterSaveTrigger<>),
17+
typeof(IAfterSaveAsyncTrigger<>),
1618
typeof(IAfterSaveFailedTrigger<>),
19+
typeof(IAfterSaveFailedAsyncTrigger<>),
1720
typeof(IBeforeSaveStartingTrigger),
21+
typeof(IBeforeSaveStartingAsyncTrigger),
1822
typeof(IBeforeSaveCompletedTrigger),
23+
typeof(IBeforeSaveCompletedAsyncTrigger),
1924
typeof(IAfterSaveFailedStartingTrigger),
25+
typeof(IAfterSaveFailedStartingAsyncTrigger),
2026
typeof(IAfterSaveFailedCompletedTrigger),
27+
typeof(IAfterSaveFailedCompletedAsyncTrigger),
2128
typeof(IAfterSaveStartingTrigger),
22-
typeof(IAfterSaveCompletedTrigger)
29+
typeof(IAfterSaveStartingAsyncTrigger),
30+
typeof(IAfterSaveCompletedTrigger),
31+
typeof(IAfterSaveCompletedAsyncTrigger)
2332
};
2433

2534
static void RegisterTriggerTypes(Type triggerImplementationType, IServiceCollection services)

src/EntityFrameworkCore.Triggered/Infrastructure/Internal/TriggersOptionExtension.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,23 @@ public TriggersOptionExtension()
101101
{
102102
_triggerTypes = new[] {
103103
typeof(IBeforeSaveTrigger<>),
104+
typeof(IBeforeSaveAsyncTrigger<>),
104105
typeof(IAfterSaveTrigger<>),
106+
typeof(IAfterSaveAsyncTrigger<>),
105107
typeof(IAfterSaveFailedTrigger<>),
108+
typeof(IAfterSaveFailedAsyncTrigger<>),
106109
typeof(IBeforeSaveStartingTrigger),
110+
typeof(IBeforeSaveStartingAsyncTrigger),
107111
typeof(IBeforeSaveCompletedTrigger),
112+
typeof(IBeforeSaveCompletedAsyncTrigger),
108113
typeof(IAfterSaveFailedStartingTrigger),
114+
typeof(IAfterSaveFailedStartingAsyncTrigger),
109115
typeof(IAfterSaveFailedCompletedTrigger),
116+
typeof(IAfterSaveFailedCompletedAsyncTrigger),
110117
typeof(IAfterSaveStartingTrigger),
111-
typeof(IAfterSaveCompletedTrigger)
118+
typeof(IAfterSaveStartingAsyncTrigger),
119+
typeof(IAfterSaveCompletedTrigger),
120+
typeof(IAfterSaveCompletedAsyncTrigger)
112121
};
113122
}
114123

src/EntityFrameworkCore.Triggered/Internal/Descriptors/AfterSaveFailedAsyncTriggerDescriptor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ public sealed class AfterSaveFailedAsyncTriggerDescriptor : IAsyncTriggerTypeDes
1111

1212
public AfterSaveFailedAsyncTriggerDescriptor(Type entityType)
1313
{
14-
var triggerType = typeof(IAfterSaveFailedTrigger<>).MakeGenericType(entityType);
15-
var triggerMethod = triggerType.GetMethod(nameof(IAfterSaveFailedTrigger<object>.AfterSaveFailed));
14+
var triggerType = typeof(IAfterSaveFailedAsyncTrigger<>).MakeGenericType(entityType);
15+
var triggerMethod = triggerType.GetMethod(nameof(IAfterSaveFailedAsyncTrigger<object>.AfterSaveFailedAsync));
1616

1717
_triggerType = triggerType;
1818
_invocationDelegate = TriggerTypeDescriptorHelpers.GetAsyncWeakDelegateWithException(triggerType, entityType, triggerMethod!);

src/EntityFrameworkCore.Triggered/Internal/Descriptors/BeforeSaveAsyncTriggerDescriptor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ public sealed class BeforeSaveAsyncTriggerDescriptor : IAsyncTriggerTypeDescript
1212

1313
public BeforeSaveAsyncTriggerDescriptor(Type entityType)
1414
{
15-
var triggerType = typeof(IBeforeSaveTrigger<>).MakeGenericType(entityType);
16-
var triggerMethod = triggerType.GetMethod(nameof(IBeforeSaveTrigger<object>.BeforeSave));
15+
var triggerType = typeof(IBeforeSaveAsyncTrigger<>).MakeGenericType(entityType);
16+
var triggerMethod = triggerType.GetMethod(nameof(IBeforeSaveAsyncTrigger<object>.BeforeSaveAsync));
1717

1818
_triggerType = triggerType;
1919
_invocationDelegate = TriggerTypeDescriptorHelpers.GetAsyncWeakDelegate(triggerType, entityType, triggerMethod!);

src/EntityFrameworkCore.Triggered/Internal/TriggerTypeDescriptorHelpers.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ static Action<object, object> GetWeakDelegateHelper<TTriggerType, TTriggerContex
4141
static Action<object, object, Exception> GetWeakDelegateHelperWithException<TTriggerType, TTriggerContext>(MethodInfo method)
4242
where TTriggerType : class
4343
{
44-
var invocationDelegate = (Action<object, object, Exception?>)Delegate.CreateDelegate(typeof(Action<object, object, Exception>), method);
44+
var invocationDelegate = (Action<TTriggerType, TTriggerContext, Exception?>)Delegate.CreateDelegate(typeof(Action<TTriggerType, TTriggerContext, Exception>), method);
4545

4646
Action<object, object, Exception?> result = (object trigger, object triggerContext, Exception? exception) => invocationDelegate((TTriggerType)trigger, (TTriggerContext)triggerContext, exception);
4747
return result;

src/EntityFrameworkCore.Triggered/TriggerSession.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class TriggerSession : ITriggerSession
2626
readonly EntityBagStateManager _entityBagStateManager = new();
2727

2828
bool _raiseBeforeSaveTriggersCalled;
29+
bool _raiseBeforeSaveAsyncTriggersCalled;
2930

3031
public TriggerSession(ITriggerService triggerService, TriggerSessionConfiguration configuration, ITriggerDiscoveryService triggerDiscoveryService, TriggerContextTracker tracker, ILogger<TriggerSession> logger)
3132
{
@@ -207,11 +208,11 @@ public void RaiseBeforeSaveTriggers(bool skipDetectedChanges)
207208
}
208209

209210
public Task RaiseBeforeSaveAsyncTriggers(CancellationToken cancellationToken)
210-
=> RaiseBeforeSaveAsyncTriggers(_raiseBeforeSaveTriggersCalled, cancellationToken);
211+
=> RaiseBeforeSaveAsyncTriggers(_raiseBeforeSaveAsyncTriggersCalled, cancellationToken);
211212

212213
public Task RaiseBeforeSaveAsyncTriggers(bool skipDetectedChanges, CancellationToken cancellationToken)
213214
{
214-
_raiseBeforeSaveTriggersCalled = true;
215+
_raiseBeforeSaveAsyncTriggersCalled = true;
215216

216217
ITriggerContextDiscoveryStrategy? strategy;
217218

@@ -235,7 +236,7 @@ public Task RaiseBeforeSaveAsyncTriggers(bool skipDetectedChanges, CancellationT
235236
}
236237

237238
_raiseBeforeSaveTriggersCalled = true;
238-
return RaiseAsyncTriggers(typeof(IBeforeSaveTrigger<>), null, strategy, entityType => new BeforeSaveAsyncTriggerDescriptor(entityType), cancellationToken);
239+
return RaiseAsyncTriggers(typeof(IBeforeSaveAsyncTrigger<>), null, strategy, entityType => new BeforeSaveAsyncTriggerDescriptor(entityType), cancellationToken);
239240
}
240241

241242
public void RaiseBeforeSaveCompletedTriggers()

test/EntityFrameworkCore.Triggered.Extensions.Tests/AbstractTrigger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ namespace EntityFrameworkCore.Triggered.Extensions.Tests
99
{
1010
public abstract class AbstractTrigger : IBeforeSaveTrigger<object>
1111
{
12-
public Task BeforeSave(ITriggerContext<object> context, CancellationToken cancellationToken) => throw new NotImplementedException();
12+
public void BeforeSave(ITriggerContext<object> context) => throw new NotImplementedException();
1313
}
1414
}

test/EntityFrameworkCore.Triggered.Extensions.Tests/ServiceCollectionExtensionsTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void AddAssemblyTriggers_WithAssembly_RegistersWithThatAssembly()
8686
var serviceCollection = new ServiceCollection()
8787
.AddAssemblyTriggers(typeof(ServiceCollectionExtensionsTests).Assembly);
8888

89-
Assert.Equal(5, serviceCollection.Count);
89+
Assert.Equal(8, serviceCollection.Count);
9090
}
9191

9292
protected async Task SaveChanges_TriggeredAddedThroughDI_Template(Func<IServiceCollection, IServiceCollection> transform)
@@ -143,7 +143,7 @@ public void AddTrigger_Multiple_AddsRegistrationForAll(ServiceLifetime lifetime)
143143
.AddTrigger<SampleTrigger>(lifetime)
144144
.AddTrigger<Trigger<object>>(lifetime);
145145

146-
Assert.Equal(9, serviceCollection.Count);
146+
Assert.Equal(15, serviceCollection.Count);
147147
}
148148

149149
[Theory]
@@ -154,7 +154,7 @@ public void AddAssemblyTriggers_Multiple_AddsRegistrationForAll(ServiceLifetime
154154
.AddTrigger<SampleTrigger>(lifetime)
155155
.AddAssemblyTriggers(typeof(Trigger<object>).Assembly);
156156

157-
Assert.Equal(9, serviceCollection.Count);
157+
Assert.Equal(15, serviceCollection.Count);
158158
}
159159

160160
[Fact]
@@ -220,7 +220,7 @@ public void AddTrigger_WhenExplicitlyRegisteredAsAService_OnlyAddsTheTriggerType
220220
.AddSingleton<SampleTrigger>()
221221
.AddTrigger<SampleTrigger>();
222222

223-
Assert.Equal(5, serviceCollection.Count);
223+
Assert.Equal(8, serviceCollection.Count);
224224
}
225225

226226
[Fact]
@@ -230,7 +230,7 @@ public void AddAssemblyTriggers_WhenExplicitlyRegisteredAsAService_OnlyAddsTheTr
230230
.AddSingleton<SampleTrigger>()
231231
.AddAssemblyTriggers();
232232

233-
Assert.Equal(5, serviceCollection.Count);
233+
Assert.Equal(8, serviceCollection.Count);
234234
}
235235
}
236236
}

test/EntityFrameworkCore.Triggered.Tests/Internal/Descriptors/AfterSaveAsyncTriggerDescriptorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public async Task Execute_ForwardsCall()
2525

2626
await subject.Invoke(triggerStub, new TriggerContextStub<string>(), null, default);
2727

28-
Assert.Single(triggerStub.AfterSaveInvocations);
28+
Assert.Single(triggerStub.AfterSaveAsyncInvocations);
2929
}
3030
}
3131
}

test/EntityFrameworkCore.Triggered.Tests/Internal/Descriptors/AfterSaveFailedTriggerDescriptorTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ public class AfterSaveFailedTriggerDescriptorTests
1414
public void TriggerType_ReturnsConstructuredTriggerType()
1515
{
1616
var entityType = typeof(string);
17-
var exception = new Exception();
1817
var subject = new AfterSaveFailedTriggerDescriptor(entityType);
1918

2019
Assert.Equal(typeof(IAfterSaveFailedTrigger<string>), subject.TriggerType);

0 commit comments

Comments
 (0)