Skip to content

Commit f868bf5

Browse files
authored
Fixes for release 1.0 (#5)
* Fixes for release 1.0 * Downgrade xer delegator * CqrsEventhandlerSelector API updates + csproj updates * Change ComponentContextAdapter to optionally resolve objects
1 parent 35c95ba commit f868bf5

File tree

8 files changed

+45
-49
lines changed

8 files changed

+45
-49
lines changed

Src/Xer.Cqrs.Extensions.Autofac/ComponentContextAdapter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public ComponentContextAdapter(IComponentContext context)
1616
_context = context;
1717
}
1818

19-
public T Resolve<T>() where T : class => _context.Resolve<T>();
19+
public T Resolve<T>() where T : class => _context.ResolveOptional<T>();
2020

21-
public IEnumerable<T> ResolveMultiple<T>() where T : class => _context.Resolve<IEnumerable<T>>();
21+
public IEnumerable<T> ResolveMultiple<T>() where T : class => _context.ResolveOptional<IEnumerable<T>>();
2222
}
2323
}

Src/Xer.Cqrs.Extensions.Autofac/CqrsCommandHandlerSelector.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ internal CqrsCommandHandlerSelector(ContainerBuilder builder)
2121

2222
public ICqrsCommandHandlerSelector ByInterface(params Assembly[] assemblies)
2323
{
24-
return ByInterface(Lifetime.PerDependency);
24+
return ByInterface(Lifetime.PerDependency, assemblies);
2525
}
2626

2727
public ICqrsCommandHandlerSelector ByInterface(Lifetime lifetime, params Assembly[] assemblies)
@@ -31,6 +31,11 @@ public ICqrsCommandHandlerSelector ByInterface(Lifetime lifetime, params Assembl
3131
throw new ArgumentNullException(nameof(assemblies));
3232
}
3333

34+
if (assemblies.Length == 0)
35+
{
36+
throw new ArgumentException("No assemblies were provided.", nameof(assemblies));
37+
}
38+
3439
var asyncHandlerRegistration = _builder.RegisterAssemblyTypes(assemblies.ToArray())
3540
.AsClosedTypesOf(typeof(ICommandAsyncHandler<>))
3641
.AsImplementedInterfaces();
@@ -79,6 +84,11 @@ public ICqrsCommandHandlerSelector ByAttribute(Lifetime lifetime, params Assembl
7984
throw new ArgumentNullException(nameof(assemblies));
8085
}
8186

87+
if (assemblies.Length == 0)
88+
{
89+
throw new ArgumentException("No assemblies were provided.", nameof(assemblies));
90+
}
91+
8292
var handlerRegistration = _builder.RegisterAssemblyTypes(assemblies.ToArray())
8393
.Where(type => type.IsClass && !type.IsAbstract &&
8494
CommandHandlerAttributeMethod.IsFoundInType(type))

Src/Xer.Cqrs.Extensions.Autofac/CqrsEventHandlerSelector.cs

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
using Autofac;
2-
using System.Collections.Generic;
2+
using System;
33
using System.Linq;
44
using System.Reflection;
55
using Xer.Cqrs.EventStack;
66
using Xer.Cqrs.EventStack.Resolvers;
77
using Xer.Delegator;
88
using Xer.Delegator.Registrations;
9-
using Xer.Delegator.Resolvers;
109

1110
namespace Xer.Cqrs.Extensions.Autofac
1211
{
@@ -19,26 +18,21 @@ internal CqrsEventHandlerSelector (ContainerBuilder builder)
1918
_builder = builder;
2019
}
2120

22-
public ICqrsEventHandlerSelector ByInterface(Assembly assembly)
21+
public ICqrsEventHandlerSelector ByInterface(params Assembly[] assemblies)
2322
{
24-
return ByInterface(assembly, Lifetime.PerDependency);
23+
return ByInterface(Lifetime.PerDependency, assemblies);
2524
}
2625

27-
public ICqrsEventHandlerSelector ByInterface(Assembly assembly, Lifetime lifetime)
28-
{
29-
return ByInterface(new[] { assembly }, lifetime);
30-
}
31-
32-
public ICqrsEventHandlerSelector ByInterface(IEnumerable<Assembly> assemblies)
33-
{
34-
return ByInterface(assemblies, Lifetime.PerDependency);
35-
}
36-
37-
public ICqrsEventHandlerSelector ByInterface(IEnumerable<Assembly> assemblies, Lifetime lifetime)
26+
public ICqrsEventHandlerSelector ByInterface(Lifetime lifetime, params Assembly[] assemblies)
3827
{
3928
if (assemblies == null)
4029
{
41-
throw new System.ArgumentNullException(nameof(assemblies));
30+
throw new ArgumentNullException(nameof(assemblies));
31+
}
32+
33+
if (assemblies.Length == 0)
34+
{
35+
throw new ArgumentException("No assemblies were provided.", nameof(assemblies));
4236
}
4337

4438
var asyncHandlerRegistration = _builder.RegisterAssemblyTypes(assemblies.ToArray())
@@ -74,28 +68,23 @@ public ICqrsEventHandlerSelector ByInterface(IEnumerable<Assembly> assemblies, L
7468
return this;
7569
}
7670

77-
public ICqrsEventHandlerSelector ByAttribute(Assembly assembly)
71+
public ICqrsEventHandlerSelector ByAttribute(params Assembly[] assemblies)
7872
{
79-
return ByAttribute(assembly, Lifetime.PerDependency);
73+
return ByAttribute(Lifetime.PerDependency, assemblies);
8074
}
8175

82-
public ICqrsEventHandlerSelector ByAttribute(Assembly assembly, Lifetime lifetime)
83-
{
84-
return ByAttribute(new[] { assembly }, lifetime);
85-
}
86-
87-
public ICqrsEventHandlerSelector ByAttribute(IEnumerable<Assembly> assemblies)
88-
{
89-
return ByAttribute(assemblies, Lifetime.PerDependency);
90-
}
91-
92-
public ICqrsEventHandlerSelector ByAttribute(IEnumerable<Assembly> assemblies, Lifetime lifetime)
76+
public ICqrsEventHandlerSelector ByAttribute(Lifetime lifetime, params Assembly[] assemblies)
9377
{
9478
if (assemblies == null)
9579
{
9680
throw new System.ArgumentNullException(nameof(assemblies));
9781
}
9882

83+
if (assemblies.Length == 0)
84+
{
85+
throw new ArgumentException("No assemblies were provided.", nameof(assemblies));
86+
}
87+
9988
var attributeHandlerRegistration = _builder.RegisterAssemblyTypes(assemblies.ToArray())
10089
.Where(type => type.IsClass && !type.IsAbstract &&
10190
EventHandlerAttributeMethod.IsFoundInType(type))

Src/Xer.Cqrs.Extensions.Autofac/ICqrsCommandHandlerSelector.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System.Collections.Generic;
2-
using System.Reflection;
1+
using System.Reflection;
32

43
namespace Xer.Cqrs.Extensions.Autofac
54
{
Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
1-
using System.Collections.Generic;
2-
using System.Reflection;
1+
using System.Reflection;
32

43
namespace Xer.Cqrs.Extensions.Autofac
54
{
65
public interface ICqrsEventHandlerSelector
76
{
8-
ICqrsEventHandlerSelector ByInterface(Assembly assembly);
9-
ICqrsEventHandlerSelector ByInterface(Assembly assembly, Lifetime lifetime);
10-
ICqrsEventHandlerSelector ByInterface(IEnumerable<Assembly> assemblies);
11-
ICqrsEventHandlerSelector ByInterface(IEnumerable<Assembly> assemblies, Lifetime lifetime);
12-
ICqrsEventHandlerSelector ByAttribute(Assembly assembly);
13-
ICqrsEventHandlerSelector ByAttribute(Assembly assembly, Lifetime lifetime);
14-
ICqrsEventHandlerSelector ByAttribute(IEnumerable<Assembly> assemblies);
15-
ICqrsEventHandlerSelector ByAttribute(IEnumerable<Assembly> assemblies, Lifetime lifetime);
7+
ICqrsEventHandlerSelector ByInterface(params Assembly[] assemblies);
8+
ICqrsEventHandlerSelector ByInterface(Lifetime lifetime, params Assembly[] assemblies);
9+
ICqrsEventHandlerSelector ByAttribute(params Assembly[] assemblies);
10+
ICqrsEventHandlerSelector ByAttribute(Lifetime lifetime, params Assembly[] assemblies);
1611
}
1712
}

Src/Xer.Cqrs.Extensions.Autofac/Xer.Cqrs.Extensions.Autofac.csproj

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@
66

77
<ItemGroup>
88
<PackageReference Include="Autofac" Version="4.6.2" />
9-
<PackageReference Include="Scrutor" Version="2.1.2" />
10-
<PackageReference Include="Xer.Cqrs.CommandStack" Version="0.2.3" />
11-
<PackageReference Include="Xer.Cqrs.EventStack" Version="0.2.3" />
12-
<PackageReference Include="Xer.Delegator" Version="0.3.0" />
9+
<PackageReference Include="Scrutor" Version="2.2.2" />
10+
<PackageReference Include="Xer.Cqrs.CommandStack" Version="1.0.0" />
11+
<PackageReference Include="Xer.Cqrs.EventStack" Version="1.0.0" />
1312
</ItemGroup>
1413

1514
</Project>

Tests/Xer.Cqrs.Extensions.Autofac.Tests/Xer.Cqrs.Extensions.Autofac.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<ItemGroup>
1010
<PackageReference Include="Autofac" Version="4.6.2" />
11-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
11+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
1212
<PackageReference Include="xunit" Version="2.3.1" />
1313
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
1414
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />

Tools/packages.config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="Cake" version="0.26.1" />
4+
</packages>

0 commit comments

Comments
 (0)