Skip to content

Commit ac75e96

Browse files
committed
Update ElasticSearch to v1
1 parent 6112a16 commit ac75e96

10 files changed

+100
-82
lines changed

EventFlow.sln

+17
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EventFlow.SourceGenerators"
7474
EndProject
7575
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EventFlow.SourceGenerators.Tests", "Source\EventFlow.SourceGenerators.Tests\EventFlow.SourceGenerators.Tests.csproj", "{D8317769-F140-4E5D-9041-19342A3A33BD}"
7676
EndProject
77+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ElasticSearch", "ElasticSearch", "{B684211A-CF37-4A6A-BF1B-460D0369DD61}"
78+
EndProject
79+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EventFlow.Elasticsearch", "Source\EventFlow.Elasticsearch\EventFlow.Elasticsearch.csproj", "{199E59E3-C674-4D8E-B31D-699C7331F4CA}"
80+
EndProject
81+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EventFlow.Elasticsearch.Tests", "Source\EventFlow.Elasticsearch.Tests\EventFlow.Elasticsearch.Tests.csproj", "{20775513-2FA6-4148-8068-B7C0AA08EB76}"
82+
EndProject
7783
Global
7884
GlobalSection(SolutionConfigurationPlatforms) = preSolution
7985
Debug|Any CPU = Debug|Any CPU
@@ -172,6 +178,14 @@ Global
172178
{D8317769-F140-4E5D-9041-19342A3A33BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
173179
{D8317769-F140-4E5D-9041-19342A3A33BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
174180
{D8317769-F140-4E5D-9041-19342A3A33BD}.Release|Any CPU.Build.0 = Release|Any CPU
181+
{199E59E3-C674-4D8E-B31D-699C7331F4CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
182+
{199E59E3-C674-4D8E-B31D-699C7331F4CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
183+
{199E59E3-C674-4D8E-B31D-699C7331F4CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
184+
{199E59E3-C674-4D8E-B31D-699C7331F4CA}.Release|Any CPU.Build.0 = Release|Any CPU
185+
{20775513-2FA6-4148-8068-B7C0AA08EB76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
186+
{20775513-2FA6-4148-8068-B7C0AA08EB76}.Debug|Any CPU.Build.0 = Debug|Any CPU
187+
{20775513-2FA6-4148-8068-B7C0AA08EB76}.Release|Any CPU.ActiveCfg = Release|Any CPU
188+
{20775513-2FA6-4148-8068-B7C0AA08EB76}.Release|Any CPU.Build.0 = Release|Any CPU
175189
EndGlobalSection
176190
GlobalSection(SolutionProperties) = preSolution
177191
HideSolutionNode = FALSE
@@ -208,6 +222,9 @@ Global
208222
{91929C7C-D9AE-B5BA-2467-C9FCAEC69696} = {5EE323DE-E69B-451A-8AC3-22DD6A004FBA}
209223
{35098BEA-A0B8-4E63-8D71-35CE5297B459} = {91929C7C-D9AE-B5BA-2467-C9FCAEC69696}
210224
{D8317769-F140-4E5D-9041-19342A3A33BD} = {91929C7C-D9AE-B5BA-2467-C9FCAEC69696}
225+
{B684211A-CF37-4A6A-BF1B-460D0369DD61} = {5EE323DE-E69B-451A-8AC3-22DD6A004FBA}
226+
{199E59E3-C674-4D8E-B31D-699C7331F4CA} = {B684211A-CF37-4A6A-BF1B-460D0369DD61}
227+
{20775513-2FA6-4148-8068-B7C0AA08EB76} = {B684211A-CF37-4A6A-BF1B-460D0369DD61}
211228
EndGlobalSection
212229
GlobalSection(ExtensibilityGlobals) = postSolution
213230
SolutionGuid = {17607E2C-4E8E-45A2-85BD-0A5808E1C0F3}

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ The following list key characteristics of each version as well as its related br
6464
- 🟠 `EventFlow.AspNetCore`
6565
- 💀 `EventFlow.Autofac`
6666
- 💀 `EventFlow.DependencyInjection`
67-
- 🟠 `EventFlow.Elasticsearch`
67+
- 🟢 `EventFlow.Elasticsearch`
6868
- 🟢 `EventFlow.EntityFramework`
6969
- 🟠 `EventFlow.EventStores.EventStore`
7070
- 🟢 `EventFlow.Hangfire`

RELEASE_NOTES.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
### New in 1.2.0 (working version, not released yet)
2+
* New: NuGet `EventFlow.Elasticsearch` now ported to v1 (thanks @MMonrad)
23

34
* New: New NuGet package `EventFlow.SourceGenerators` created by @alexeyfv. See
45
[documentation](https://geteventflow.net/additional/source-generation/) for details

Source/EventFlow.Elasticsearch.Tests/EventFlow.Elasticsearch.Tests.csproj

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
<Import Project="../Common.props" />
32
<PropertyGroup>
4-
<TargetFramework>netcoreapp3.1</TargetFramework>
3+
<TargetFramework>net8.0</TargetFramework>
54
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
65
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
76
<IsPackable>False</IsPackable>
@@ -11,13 +10,16 @@
1110
</ItemGroup>
1211
<ItemGroup>
1312
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
14-
<PackageReference Include="NUnit" Version="3.12.0" />
13+
<PackageReference Include="NUnit" Version="3.13.2" />
1514
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
1615
</ItemGroup>
16+
1717
<ItemGroup>
1818
<ProjectReference Include="..\EventFlow.Elasticsearch\EventFlow.Elasticsearch.csproj" />
1919
<ProjectReference Include="..\EventFlow.TestHelpers\EventFlow.TestHelpers.csproj" />
20+
<ProjectReference Include="..\EventFlow\EventFlow.csproj" />
2021
</ItemGroup>
22+
2123
<ItemGroup>
2224
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
2325
</ItemGroup>

Source/EventFlow.Elasticsearch.Tests/IntegrationTests/ElasticsearchReadModelStoreTests.cs

+10-9
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
using EventFlow.TestHelpers.Aggregates;
3838
using EventFlow.TestHelpers.Aggregates.Entities;
3939
using EventFlow.TestHelpers.Suites;
40+
using Microsoft.Extensions.DependencyInjection;
4041
using Nest;
4142
using NUnit.Framework;
4243
using IndexName = EventFlow.Elasticsearch.ValueObjects.IndexName;
@@ -52,7 +53,7 @@ public class ElasticsearchReadModelStoreTests : TestSuiteForReadModelStore
5253

5354
private readonly List<string> _indexes = new List<string>();
5455

55-
protected override IRootResolver CreateRootResolver(IEventFlowOptions eventFlowOptions)
56+
protected override IServiceProvider Configure(IEventFlowOptions eventFlowOptions)
5657
{
5758
var elasticsearchUrl = Environment.GetEnvironmentVariable("ELASTICSEARCH_URL") ?? "http://localhost:9200";
5859

@@ -63,25 +64,25 @@ protected override IRootResolver CreateRootResolver(IEventFlowOptions eventFlowO
6364
.SniffLifeSpan(TimeSpan.FromMinutes(5))
6465
.DisablePing();
6566

66-
var resolver = eventFlowOptions
67-
.RegisterServices(sr => { sr.RegisterType(typeof(ThingyMessageLocator)); })
67+
var options = eventFlowOptions
68+
.RegisterServices(sr => { sr.AddTransient<ThingyMessageLocator>(); })
6869
.ConfigureElasticsearch(connectionSettings)
6970
.UseElasticsearchReadModel<ElasticsearchThingyReadModel>()
7071
.UseElasticsearchReadModel<ElasticsearchThingyMessageReadModel, ThingyMessageLocator>()
7172
.AddQueryHandlers(
7273
typeof(ElasticsearchThingyGetQueryHandler),
7374
typeof(ElasticsearchThingyGetVersionQueryHandler),
74-
typeof(ElasticsearchThingyGetMessagesQueryHandler))
75-
.CreateResolver();
75+
typeof(ElasticsearchThingyGetMessagesQueryHandler));
7676

77-
PrepareIndexes(resolver);
77+
PrepareIndexes(options);
7878

79-
return resolver;
79+
return base.Configure(eventFlowOptions);
8080
}
8181

82-
private void PrepareIndexes(IRootResolver resolver)
82+
private void PrepareIndexes(IEventFlowOptions options)
8383
{
84-
_elasticClient = resolver.Resolve<IElasticClient>();
84+
using var provider = options.ServiceCollection.BuildServiceProvider();
85+
_elasticClient = provider.GetRequiredService<IElasticClient>();
8586

8687
var readModelTypes =
8788
GetLoadableTypes<ElasticsearchTypeAttribute>(typeof(ElasticsearchThingyReadModel).Assembly);

Source/EventFlow.Elasticsearch.Tests/IntegrationTests/ReadModels/ElasticsearchThingyMessageReadModel.cs

+43-36
Original file line numberDiff line numberDiff line change
@@ -21,56 +21,63 @@
2121
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2222

2323
using System.Linq;
24+
using System.Threading;
25+
using System.Threading.Tasks;
2426
using EventFlow.Aggregates;
2527
using EventFlow.ReadStores;
2628
using EventFlow.TestHelpers.Aggregates;
2729
using EventFlow.TestHelpers.Aggregates.Entities;
2830
using EventFlow.TestHelpers.Aggregates.Events;
2931
using Nest;
3032

31-
namespace EventFlow.Elasticsearch.Tests.IntegrationTests.ReadModels
33+
namespace EventFlow.Elasticsearch.Tests.IntegrationTests.ReadModels;
34+
35+
[ElasticsearchType(IdProperty = "Id", RelationName = "message")]
36+
public class ElasticsearchThingyMessageReadModel : IReadModel,
37+
IAmReadModelFor<ThingyAggregate, ThingyId, ThingyMessageAddedEvent>,
38+
IAmReadModelFor<ThingyAggregate, ThingyId, ThingyMessageHistoryAddedEvent>
3239
{
33-
[ElasticsearchType(IdProperty = "Id", RelationName = "message")]
34-
public class ElasticsearchThingyMessageReadModel : IReadModel,
35-
IAmReadModelFor<ThingyAggregate, ThingyId, ThingyMessageAddedEvent>,
36-
IAmReadModelFor<ThingyAggregate, ThingyId, ThingyMessageHistoryAddedEvent>
37-
{
38-
public string Id { get; set; }
40+
public string Id { get; set; }
3941

40-
[Keyword(
41-
Name = "ThingyId",
42-
Index = true)]
43-
public string ThingyId { get; set; }
42+
[Keyword(
43+
Name = "ThingyId",
44+
Index = true)]
45+
public string ThingyId { get; set; }
4446

45-
[Text(
46-
Name = "Message",
47-
Index = false)]
48-
public string Message { get; set; }
47+
[Text(
48+
Name = "Message",
49+
Index = false)]
50+
public string Message { get; set; }
4951

50-
public void Apply(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyMessageAddedEvent> domainEvent)
51-
{
52-
ThingyId = domainEvent.AggregateIdentity.Value;
52+
public Task ApplyAsync(IReadModelContext context,
53+
IDomainEvent<ThingyAggregate, ThingyId, ThingyMessageAddedEvent> domainEvent,
54+
CancellationToken cancellationToken)
55+
{
56+
ThingyId = domainEvent.AggregateIdentity.Value;
5357

54-
var thingyMessage = domainEvent.AggregateEvent.ThingyMessage;
55-
Id = thingyMessage.Id.Value;
56-
Message = thingyMessage.Message;
57-
}
58+
var thingyMessage = domainEvent.AggregateEvent.ThingyMessage;
59+
Id = thingyMessage.Id.Value;
60+
Message = thingyMessage.Message;
61+
return Task.CompletedTask;
62+
}
5863

59-
public void Apply(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyMessageHistoryAddedEvent> domainEvent)
60-
{
61-
ThingyId = domainEvent.AggregateIdentity.Value;
64+
public Task ApplyAsync(IReadModelContext context,
65+
IDomainEvent<ThingyAggregate, ThingyId, ThingyMessageHistoryAddedEvent> domainEvent,
66+
CancellationToken cancellationToken)
67+
{
68+
ThingyId = domainEvent.AggregateIdentity.Value;
6269

63-
var messageId = new ThingyMessageId(context.ReadModelId);
64-
var thingyMessage = domainEvent.AggregateEvent.ThingyMessages.Single(m => m.Id == messageId);
65-
Id = messageId.Value;
66-
Message = thingyMessage.Message;
67-
}
70+
var messageId = new ThingyMessageId(context.ReadModelId);
71+
var thingyMessage = domainEvent.AggregateEvent.ThingyMessages.Single(m => m.Id == messageId);
72+
Id = messageId.Value;
73+
Message = thingyMessage.Message;
74+
return Task.CompletedTask;
75+
}
6876

69-
public ThingyMessage ToThingyMessage()
70-
{
71-
return new ThingyMessage(
72-
ThingyMessageId.With(Id),
73-
Message);
74-
}
77+
public ThingyMessage ToThingyMessage()
78+
{
79+
return new ThingyMessage(
80+
ThingyMessageId.With(Id),
81+
Message);
7582
}
7683
}

Source/EventFlow.Elasticsearch.Tests/IntegrationTests/ReadModels/ElasticsearchThingyReadModel.cs

+8-3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2121
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2222

23+
using System.Threading;
24+
using System.Threading.Tasks;
2325
using EventFlow.Aggregates;
2426
using EventFlow.ReadStores;
2527
using EventFlow.TestHelpers.Aggregates;
@@ -49,21 +51,24 @@ public class ElasticsearchThingyReadModel : IReadModel,
4951
Index = false)]
5052
public int PingsReceived { get; set; }
5153

52-
public void Apply(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyDomainErrorAfterFirstEvent> domainEvent)
54+
public Task ApplyAsync(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyDomainErrorAfterFirstEvent> domainEvent, CancellationToken cancellationToken)
5355
{
5456
Id = domainEvent.AggregateIdentity.Value;
5557
DomainErrorAfterFirstReceived = true;
58+
return Task.CompletedTask;
5659
}
5760

58-
public void Apply(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyPingEvent> domainEvent)
61+
public Task ApplyAsync(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyPingEvent> domainEvent, CancellationToken cancellationToken)
5962
{
6063
Id = domainEvent.AggregateIdentity.Value;
6164
PingsReceived++;
65+
return Task.CompletedTask;
6266
}
6367

64-
public void Apply(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyDeletedEvent> domainEvent)
68+
public Task ApplyAsync(IReadModelContext context, IDomainEvent<ThingyAggregate, ThingyId, ThingyDeletedEvent> domainEvent, CancellationToken cancellationToken)
6569
{
6670
context.MarkForDeletion();
71+
return Task.CompletedTask;
6772
}
6873

6974
public Thingy ToThingy()

Source/EventFlow.Elasticsearch/EventFlow.Elasticsearch.csproj

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
<Import Project="../Common.props" />
32
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.0</TargetFrameworks>
3+
<TargetFrameworks>netstandard2.1;netcoreapp3.1;net6.0;net8.0</TargetFrameworks>
54
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
65
<GenerateAssemblyInfo>True</GenerateAssemblyInfo>
76
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
87
<PackageRequireLicenseAcceptance>True</PackageRequireLicenseAcceptance>
98
<Title>EventFlow.Elasticsearch</Title>
109
<Authors>Rasmus Mikkelsen</Authors>
1110
<Company>Rasmus Mikkelsen</Company>
12-
<Copyright>Copyright (c) Rasmus Mikkelsen 2015 - 2021</Copyright>
11+
<Copyright>Copyright (c) Rasmus Mikkelsen 2015 - 2025</Copyright>
1312
<Description>Elasticsearch support for EventFlow</Description>
1413
<PackageTags>CQRS ES event sourcing Elasticsearch</PackageTags>
1514
<RepositoryType>git</RepositoryType>

Source/EventFlow.Elasticsearch/Extensions/EventFlowOptionsExtensions.cs

+6-21
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@
2323
using System;
2424
using System.Linq;
2525
using Elasticsearch.Net;
26-
using EventFlow.Aggregates;
27-
using EventFlow.Configuration;
28-
using EventFlow.Core;
2926
using EventFlow.Elasticsearch.ReadStores;
3027
using EventFlow.Extensions;
3128
using EventFlow.ReadStores;
29+
using Microsoft.Extensions.DependencyInjection;
3230
using Nest;
3331

3432
namespace EventFlow.Elasticsearch.Extensions
@@ -70,8 +68,8 @@ public static IEventFlowOptions ConfigureElasticsearch(
7068
{
7169
return eventFlowOptions.RegisterServices(sr =>
7270
{
73-
sr.Register(f => elasticClientFactory(), Lifetime.Singleton);
74-
sr.Register<IReadModelDescriptionProvider, ReadModelDescriptionProvider>(Lifetime.Singleton, true);
71+
sr.AddSingleton(_ => elasticClientFactory());
72+
sr.AddSingleton<IReadModelDescriptionProvider, ReadModelDescriptionProvider>();
7573
});
7674
}
7775

@@ -94,24 +92,11 @@ public static IEventFlowOptions UseElasticsearchReadModel<TReadModel, TReadModel
9492
.UseReadStoreFor<IElasticsearchReadModelStore<TReadModel>, TReadModel, TReadModelLocator>();
9593
}
9694

97-
[Obsolete("Use the simpler method UseElasticsearchReadModel<TReadModel> instead.")]
98-
public static IEventFlowOptions UseElasticsearchReadModelFor<TAggregate, TIdentity, TReadModel>(
99-
this IEventFlowOptions eventFlowOptions)
100-
where TAggregate : IAggregateRoot<TIdentity>
101-
where TIdentity : IIdentity
102-
where TReadModel : class, IReadModel
103-
{
104-
return eventFlowOptions
105-
.RegisterServices(RegisterElasticsearchReadStore<TReadModel>)
106-
.UseReadStoreFor<TAggregate, TIdentity, IElasticsearchReadModelStore<TReadModel>, TReadModel>();
107-
}
108-
109-
private static void RegisterElasticsearchReadStore<TReadModel>(
110-
IServiceRegistration serviceRegistration)
95+
private static void RegisterElasticsearchReadStore<TReadModel>(IServiceCollection collection)
11196
where TReadModel : class, IReadModel
11297
{
113-
serviceRegistration.Register<IElasticsearchReadModelStore<TReadModel>, ElasticsearchReadModelStore<TReadModel>>();
114-
serviceRegistration.Register<IReadModelStore<TReadModel>>(r => r.Resolver.Resolve<IElasticsearchReadModelStore<TReadModel>>());
98+
collection.AddTransient<IElasticsearchReadModelStore<TReadModel>, ElasticsearchReadModelStore<TReadModel>>();
99+
collection.AddTransient<IReadModelStore<TReadModel>>(r => r.GetRequiredService<IElasticsearchReadModelStore<TReadModel>>());
115100
}
116101
}
117102
}

Source/EventFlow.Elasticsearch/ReadStores/ElasticsearchReadModelStore.cs

+7-6
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
using EventFlow.Elasticsearch.ValueObjects;
3333
using EventFlow.Exceptions;
3434
using EventFlow.Extensions;
35-
using EventFlow.Logs;
3635
using EventFlow.ReadStores;
36+
using Microsoft.Extensions.Logging;
3737
using Nest;
3838

3939
namespace EventFlow.Elasticsearch.ReadStores
@@ -42,13 +42,13 @@ public class ElasticsearchReadModelStore<TReadModel> :
4242
IElasticsearchReadModelStore<TReadModel>
4343
where TReadModel : class, IReadModel
4444
{
45-
private readonly ILog _log;
45+
private readonly ILogger<ElasticsearchReadModelStore<TReadModel>> _log;
4646
private readonly IElasticClient _elasticClient;
4747
private readonly IReadModelDescriptionProvider _readModelDescriptionProvider;
4848
private readonly ITransientFaultHandler<IOptimisticConcurrencyRetryStrategy> _transientFaultHandler;
4949

5050
public ElasticsearchReadModelStore(
51-
ILog log,
51+
ILogger<ElasticsearchReadModelStore<TReadModel>> log,
5252
IElasticClient elasticClient,
5353
IReadModelDescriptionProvider readModelDescriptionProvider,
5454
ITransientFaultHandler<IOptimisticConcurrencyRetryStrategy> transientFaultHandler)
@@ -65,7 +65,7 @@ public async Task<ReadModelEnvelope<TReadModel>> GetAsync(
6565
{
6666
var readModelDescription = _readModelDescriptionProvider.GetReadModelDescription<TReadModel>();
6767

68-
_log.Verbose(() => $"Fetching read model '{typeof(TReadModel).PrettyPrint()}' with ID '{id}' from index '{readModelDescription.IndexName}'");
68+
_log.LogTrace("Fetching read model '{TReadModel}' with ID '{Id}' from index '{IndexName}'", typeof(TReadModel).PrettyPrint(), id, readModelDescription.IndexName);
6969

7070
var getResponse = await _elasticClient.GetAsync<TReadModel>(
7171
id,
@@ -108,9 +108,10 @@ public async Task DeleteAllAsync(
108108
{
109109
var readModelDescription = _readModelDescriptionProvider.GetReadModelDescription<TReadModel>();
110110

111-
_log.Information($"Deleting ALL '{typeof(TReadModel).PrettyPrint()}' by DELETING INDEX '{readModelDescription.IndexName}'!");
111+
_log.LogInformation("Deleting ALL '{TReadModel}' by DELETING INDEX '{IndexName}'!", typeof(TReadModel).PrettyPrint(), readModelDescription.IndexName);
112112

113-
var indices = _elasticClient.GetIndicesPointingToAlias(readModelDescription.IndexName.Value);
113+
var indices = await _elasticClient.GetIndicesPointingToAliasAsync(readModelDescription.IndexName.Value)
114+
.ConfigureAwait(false);
114115

115116
foreach (var indexKey in indices)
116117
{

0 commit comments

Comments
 (0)