Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
222 commits
Select commit Hold shift + click to select a range
42433fe
build: dockercontainer.json
bnayae May 8, 2023
f8caa56
rfc: cleanup
bnayae May 17, 2023
cd4a2c9
rfc: re-module pass tests
bnayae May 21, 2023
11c7dcd
ignore PR
bnayae May 21, 2023
a680924
rfc: re-model
bnayae May 21, 2023
28c221f
ci: clean release note
bnayae May 21, 2023
c7bb62f
Increment Version
bnayae May 21, 2023
4398618
Increment Version
May 21, 2023
6b1e76a
Merge branch 'rfc-partition-shard/2023-05-19'
bnayae May 21, 2023
5cbef79
rfc: remove warnings
bnayae May 21, 2023
39bb0e4
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 21, 2023
cfe32cc
Increment Version
bnayae May 21, 2023
3de2544
Increment Version
May 21, 2023
f7ec41f
rfc: api
bnayae May 21, 2023
a44fdff
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 21, 2023
2d98b48
Increment Version
bnayae May 21, 2023
54f3c6f
Increment Version
May 21, 2023
16a216e
rfc: builder init
bnayae May 23, 2023
fb63f56
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 23, 2023
d4b64e8
Increment Version
bnayae May 23, 2023
85a24f6
Increment Version
May 23, 2023
36dda2b
rfc: partition to rui
bnayae May 23, 2023
50432cc
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 23, 2023
790aa1a
Increment Version
bnayae May 23, 2023
d8f733e
Increment Version
May 23, 2023
5f460d9
rfc: EventSourcingException
bnayae May 23, 2023
15c1279
rfc: naming
bnayae May 23, 2023
84486d2
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 23, 2023
eaa4e72
Increment Version
bnayae May 23, 2023
a065394
Increment Version
May 23, 2023
734279d
Update README.md
bnayae May 23, 2023
cde0a37
Increment Version
bnayae May 23, 2023
998588f
Increment Version
May 23, 2023
fd97d85
doc: readme
bnayae May 23, 2023
04edda0
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 23, 2023
e475a7b
Increment Version
bnayae May 23, 2023
046a0d7
Increment Version
May 23, 2023
df8ebc2
rfc: GenerateEventSourceAttribute
bnayae May 23, 2023
a363516
rfc: EventsContract
bnayae May 23, 2023
f246242
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 23, 2023
b5b5bca
Increment Version
bnayae May 23, 2023
2f0bebe
Increment Version
May 23, 2023
4ef020f
ci: fix
bnayae May 23, 2023
8dcce2c
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 23, 2023
68ee2e2
Increment Version
bnayae May 23, 2023
c958381
Increment Version
May 23, 2023
9f6ceef
Increment Version
May 23, 2023
f6e38f9
Increment Version
May 23, 2023
1f22025
rfc: remove level of abstraction
bnayae May 24, 2023
86eb0b5
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 24, 2023
562bffa
Increment Version
bnayae May 24, 2023
84f3593
Increment Version
May 24, 2023
f72526b
rfc: cleanup
bnayae May 24, 2023
2efea2b
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 24, 2023
ca783b0
Increment Version
bnayae May 24, 2023
8877b15
Increment Version
May 24, 2023
b909bde
Increment Version
May 24, 2023
fe56f73
Increment Version
May 24, 2023
7845b49
build: fix
bnayae May 24, 2023
83b9285
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 24, 2023
da75cf5
Increment Version
bnayae May 24, 2023
36c3868
Increment Version
May 24, 2023
913200b
ci: fix
bnayae May 24, 2023
54b159b
Increment Version
bnayae May 24, 2023
7990ad6
Increment Version
May 24, 2023
005c48b
Increment Version
May 24, 2023
451b01f
feat: less sleeping
bnayae May 24, 2023
debff45
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 24, 2023
dc7bb1b
Increment Version
bnayae May 24, 2023
6518101
Increment Version
May 24, 2023
3a6cc09
feat: recovery
bnayae May 24, 2023
e3f2723
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 24, 2023
2b91edf
Increment Version
bnayae May 24, 2023
8e939b3
Increment Version
May 24, 2023
cf87fc8
feat: default consumer group
bnayae May 24, 2023
72a6f13
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 24, 2023
0d95b7f
Increment Version
bnayae May 24, 2023
692e8ad
Increment Version
May 24, 2023
da0da4b
test: remove group
bnayae May 24, 2023
1c96495
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 24, 2023
ca3b53d
Increment Version
bnayae May 24, 2023
eea2150
Increment Version
May 24, 2023
614754b
fix: namespace generation bug
bnayae May 28, 2023
f93e098
Increment Version
bnayae May 28, 2023
fe4538f
Increment Version
May 28, 2023
999415e
fix: generation of namespace & using
bnayae May 28, 2023
5b8373e
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 28, 2023
37c6822
Increment Version
bnayae May 28, 2023
7ca834c
Increment Version
May 28, 2023
b51ed32
fix: iterative on empty when continue to listen
bnayae May 28, 2023
7ba9257
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 28, 2023
057ace3
Increment Version
bnayae May 28, 2023
28cfdd1
Increment Version
May 28, 2023
40ff731
build: nuget update
bnayae May 28, 2023
af4799f
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 28, 2023
431f693
Increment Version
bnayae May 28, 2023
8e95f72
Increment Version
May 28, 2023
c5818b3
feat: Async suffix convention
bnayae May 28, 2023
1a63e8c
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 28, 2023
42e395c
Increment Version
bnayae May 28, 2023
4caffa8
Increment Version
May 28, 2023
60fa7c0
rfc: clean-up dependencies
bnayae May 29, 2023
3bc98cf
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae May 29, 2023
b748bd6
Increment Version
bnayae May 29, 2023
21f6da1
Increment Version
May 29, 2023
1be14a2
feat: enable more S3 creation options
bnayae May 31, 2023
0476dec
feat: use IAmazonS3
bnayae May 31, 2023
48766f3
feat: improve api
bnayae Jun 1, 2023
bef60ea
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 1, 2023
f4cc927
Increment Version
bnayae Jun 1, 2023
85e4c9f
Increment Version
Jun 1, 2023
2da5420
Create FUNDING.yml
bnayae Jun 1, 2023
c6ca2b1
Increment Version
bnayae Jun 1, 2023
bdefa7a
Increment Version
Jun 1, 2023
fdb51b7
rfc: cleanup
bnayae Jun 1, 2023
86e4d09
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 1, 2023
709b89c
Increment Version
bnayae Jun 1, 2023
8ea216d
Increment Version
Jun 1, 2023
662b941
rfc: s3 credentials and environment
bnayae Jun 2, 2023
d5a03aa
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 2, 2023
411e543
Increment Version
bnayae Jun 2, 2023
ec630c5
Increment Version
Jun 2, 2023
060340e
rfc: S3Strategy -> S3Storage
bnayae Jun 5, 2023
769638a
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 5, 2023
6ea6eae
Increment Version
bnayae Jun 5, 2023
685a0e4
build: add test project
bnayae Jun 5, 2023
1c16e73
Increment Version
Jun 5, 2023
ca63770
rfc: clean up
bnayae Jun 5, 2023
d2fe00e
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 5, 2023
04cd83f
Increment Version
bnayae Jun 5, 2023
9534e83
Increment Version
Jun 5, 2023
98b2994
Update README.md
bnayae Jun 5, 2023
47f3d57
Increment Version
bnayae Jun 5, 2023
9a20086
Increment Version
Jun 5, 2023
523c8a6
build: fix
bnayae Jun 5, 2023
dcc94b2
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 5, 2023
9ccea4b
Increment Version
bnayae Jun 5, 2023
d8c5263
Increment Version
Jun 5, 2023
70a1105
fix: S3Strategy -> S3Storage
bnayae Jun 5, 2023
de210d5
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 5, 2023
ac8da05
Increment Version
bnayae Jun 5, 2023
21c0a29
Increment Version
Jun 5, 2023
33cc806
rfc: comment
bnayae Jun 6, 2023
b966fb7
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 6, 2023
44765e3
Increment Version
bnayae Jun 6, 2023
001ab4f
Increment Version
Jun 6, 2023
de223e2
feat: Ack from consumer metadata
bnayae Jun 6, 2023
12cc222
feat: completion of consumer meta parameter
bnayae Jun 6, 2023
6eb5575
doc: releaseNote
bnayae Jun 6, 2023
9cb8c0a
feat: consumer metadata as first parameter on the consumer interface'…
bnayae Jun 6, 2023
e89d69f
Increment Version
bnayae Jun 6, 2023
3a89aef
Increment Version
Jun 6, 2023
9569d14
rfc: clean up
bnayae Jun 6, 2023
35ba9fa
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 6, 2023
55e276e
Increment Version
bnayae Jun 6, 2023
0aad52a
Increment Version
Jun 6, 2023
104d3c8
fix: release note
bnayae Jun 6, 2023
f672f4b
Increment Version
bnayae Jun 6, 2023
643ae05
Increment Version
Jun 6, 2023
62cbfbb
ci: fix version increment
bnayae Jun 6, 2023
1098984
Increment Version
bnayae Jun 6, 2023
d930b42
feat: generate modifiers
bnayae Jun 7, 2023
6fe862a
feat: meta Env
bnayae Jun 7, 2023
357fd65
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 7, 2023
a05bb42
Increment Version
bnayae Jun 7, 2023
021d908
fix: env equality and serialization
bnayae Jun 7, 2023
ed1f43c
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 7, 2023
5a0293d
Increment Version
bnayae Jun 7, 2023
7bec8e0
build: fix
bnayae Jun 7, 2023
3316667
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 7, 2023
eb8fa75
Increment Version
bnayae Jun 7, 2023
1fbbe0b
build: update nuget
bnayae Jun 7, 2023
18fa9fd
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 7, 2023
10182c3
Increment Version
bnayae Jun 7, 2023
c13d9db
build: fix generated naming
bnayae Jun 8, 2023
e0d3c27
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 8, 2023
0ee1cea
Increment Version
bnayae Jun 8, 2023
803fbce
feat: open telemetry extensions
bnayae Jun 8, 2023
bd1df59
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 8, 2023
d118130
Increment Version
bnayae Jun 8, 2023
5b9fb61
buid: fix generation naming
bnayae Jun 8, 2023
f62e9e2
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 8, 2023
76dc400
Increment Version
bnayae Jun 8, 2023
fe0e92a
test: add web test of product cycle
bnayae Jun 8, 2023
7af6b35
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 8, 2023
a86f87d
rfc: xml doc
bnayae Jun 8, 2023
90f8f66
Increment Version
bnayae Jun 8, 2023
e33086c
feat: fix redis sources (telemetry)
bnayae Jun 8, 2023
a689275
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 8, 2023
38cee94
Increment Version
bnayae Jun 8, 2023
7613920
feat: telemetry filter
bnayae Jun 11, 2023
7635bad
Increment Version
bnayae Jun 11, 2023
a425a21
build: nuget update
bnayae Jun 11, 2023
a63651f
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 11, 2023
c01c5eb
Increment Version
bnayae Jun 11, 2023
8d5efc2
feat: tolerate s3 setting
bnayae Jun 12, 2023
91bd3d8
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 12, 2023
238259d
Increment Version
bnayae Jun 12, 2023
1d8ee11
feat: re-module telemetry registration (move features to the template)
bnayae Jun 13, 2023
292254a
Increment Version
bnayae Jun 13, 2023
ae347c9
ci: fix build
bnayae Jun 13, 2023
311ad99
Merge branch 'main' of https://github.com/bnayae/Event-Sourcing-Backbone
bnayae Jun 13, 2023
7f95f7a
Increment Version
bnayae Jun 13, 2023
f896b6a
rfc: remove unused dependencies
bnayae Jun 14, 2023
db5dcd8
Increment Version
bnayae Jun 14, 2023
00f2b42
rfc: clean up
bnayae Jun 18, 2023
e56f316
test: base class
bnayae Jun 19, 2023
3de1c7e
test: console test
bnayae Jun 19, 2023
e6da818
rfc: add overload (internal)
bnayae Jun 19, 2023
efcf712
test: add logging
bnayae Jun 19, 2023
7873ae9
feat: di into testing console
bnayae Jun 19, 2023
20e2e18
feat: di into testing console
bnayae Jun 19, 2023
24b4dde
feat: pass cancellation token
bnayae Jun 20, 2023
81a1249
rfc: const separation
bnayae Jun 20, 2023
9b064d7
feat: telemetry
bnayae Jun 21, 2023
bc2e6e0
feat: telemetry
bnayae Jun 22, 2023
bcd52aa
feat: telemetry
bnayae Jun 22, 2023
0ee6cfb
rfc: telemetry
bnayae Jun 25, 2023
3d820cd
bug: dispose fix crash
bnayae Jun 25, 2023
c74c3ce
test: config
bnayae Jun 25, 2023
e8f9be8
rfc: tracing prefix
bnayae Jun 25, 2023
b047c0b
buid: nuget upd
bnayae Jun 25, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"image":"mcr.microsoft.com/devcontainers/universal:2"}
19 changes: 17 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,19 @@
[*.cs]

# IDE0008: Use explicit type
csharp_style_var_elsewhere = true
# HAA0101: Array allocation for params parameter
dotnet_diagnostic.HAA0101.severity = none

# HAA0601: Value type to reference type conversion causing boxing allocation
dotnet_diagnostic.HAA0601.severity = none

# HAA0603: Delegate allocation from a method group
dotnet_diagnostic.HAA0603.severity = none

# HAA0301: Closure Allocation Source
dotnet_diagnostic.HAA0301.severity = none

# HAA0302: Display class allocation to capture closure
dotnet_diagnostic.HAA0302.severity = none

# HAA0401: Possible allocation of reference type enumerator
dotnet_diagnostic.HAA0401.severity = none
13 changes: 13 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# These are supported funding model platforms

github: [bnayae]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
27 changes: 2 additions & 25 deletions .github/workflows/build-publish-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Increment Version
run: |
perl -pi -e 's/([0-9]+)\.([0-9]+)\.([0-9]+)/"$1.$2.${\( $3+1 )}"/eg' Directory.Build.props
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
author_name: CI/CD
author_email: bnaya@weknow.network.com
message: 'Increment Version'
add: 'Directory.Build.props'
- uses: actions/checkout@v2

- name: Setup .NET
uses: actions/setup-dotnet@v1
Expand All @@ -50,7 +39,7 @@ jobs:
- name: Build
run: dotnet build --configuration ${{ env.BUILD_CONFIG }} --no-restore
- name: Test
run: dotnet test Tests/Weknow.EventSource.Backbone.UnitTests --configuration ${{ env.BUILD_CONFIG }} --no-restore --no-build --verbosity normal
run: dotnet test Tests/EventSourcing.Backbone.UnitTests --configuration ${{ env.BUILD_CONFIG }} --no-restore --no-build --verbosity normal

- name: Push generated package to GitHub registry
run: dotnet nuget push ./**/*.nupkg -k ${{ secrets.NUGET_PUBLISH }} -s https://api.nuget.org/v3/index.json --skip-duplicate
Expand All @@ -68,18 +57,6 @@ jobs:
with:
dotnet-version: ${{ env.DOTNET_VER }}
include-prerelease: ${{ env.INCLUDE_PRERELEASE }}

#- name: Increment Version
# run: |
# perl -pi -e 's/([0-9]+)\.([0-9]+)\.([0-9]+)/"$1.$2.${\( $3+1 )}"/eg' Directory.Build.props
# shell: bash
#- name: Commit changes
# uses: EndBug/add-and-commit@v7
# with:
# author_name: CI/CD
# author_email: ${{ inputs.author-email }}
# message: "Increment Version"
# add: "Directory.Build.props"

- name: Restore dependencies
run: dotnet restore /property:Configuration=Gen
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/prepare-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ name: Prepare
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
# pull_request:
# branches: [ main ]
workflow_dispatch:
inputs:
logLevel:
Expand All @@ -20,6 +20,6 @@ on:
jobs:

version_increment:
uses: weknow-network/weknow-workflows/.github/workflows/dotnet-increment-version.yml@main
uses: bnayae/open-workflows/.github/workflows/dotnet-increment-version.yml@main


Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace EventSourcing.Backbone.Channels;

/// <summary>
/// Constants
/// </summary>
internal static class ConsumerChannelConstants
{
/// <summary>
/// The name of redis consumer channel source
/// </summary>
public const string REDIS_CHANNEL_SOURCE = "evt-src-redis-consumer-channel";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
<None Include="..\..\..\README.md">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
</ItemGroup>

<ItemGroup>
<None Remove="EventSourcing.Backbone.Channels.RedisConsumerProviderr.xml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Consumers\EventSourcing.Backbone.Consumers\EventSourcing.Backbone.Consumers.csproj" />
<ProjectReference Include="..\..\..\EventSourcing.Backbone.Abstractions\EventSourcing.Backbone.Abstractions.csproj" />
<ProjectReference Include="..\EventSourcing.Backbone.Channels.RedisProvider.Common\EventSourcing.Backbone.Channels.RedisProvider.Common.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="StackExchange.Redis" Version="2.6.116" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="1.1.1" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
using EventSourcing.Backbone.Building;
using EventSourcing.Backbone.Channels.RedisProvider;

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;

using StackExchange.Redis;

namespace EventSourcing.Backbone;

public static class RedisConsumerBuilder
{
/// <summary>
/// Create REDIS consumer builder.
/// </summary>
/// <param name="endpoint">The raw endpoint (not an environment variable).</param>
/// <param name="password">The password (not an environment variable).</param>
/// <param name="configurationHook">The configuration hook.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder Create(
string endpoint,
string? password = null,
Action<ConfigurationOptions>? configurationHook = null)
{
var configuration = RedisClientFactory.CreateConfigurationOptions(endpoint, password, configurationHook);
return configuration.CreateRedisConsumerBuilder();
}
/// <summary>
/// Create REDIS consumer builder.
/// </summary>
/// <param name="configurationHook">The configuration hook.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder Create(
Action<ConfigurationOptions>? configurationHook = null)
{
var configuration = RedisClientFactory.CreateConfigurationOptions(configurationHook);
return configuration.CreateRedisConsumerBuilder();
}

/// <summary>
/// Create REDIS consumer builder.
/// </summary>
/// <param name="options">The redis configuration.</param>
/// <param name="setting">The setting.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder CreateRedisConsumerBuilder(
this ConfigurationOptions options,
RedisConsumerChannelSetting? setting = null)
{
var stg = setting ?? RedisConsumerChannelSetting.Default;
var builder = ConsumerBuilder.Empty;
var channelBuilder = builder.UseChannel(LocalCreate);
return channelBuilder;

IConsumerChannelProvider LocalCreate(ILogger logger)
{
var channel = new RedisConsumerChannel(
logger,
options,
stg);
return channel;
}
}

/// <summary>
/// Create REDIS consumer builder.
/// </summary>
/// <param name="setting">The setting.</param>
/// <param name="configurationHook">The configuration hook.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder CreateRedisConsumerBuilder(
this RedisConsumerChannelSetting setting,
Action<ConfigurationOptions>? configurationHook = null)
{
var configuration = RedisClientFactory.CreateConfigurationOptions(configurationHook);
return configuration.CreateRedisConsumerBuilder(setting);
}

/// <summary>
/// Create REDIS consumer builder.
/// </summary>
/// <param name="setting">The setting.</param>
/// <param name="endpoint">The raw endpoint (not an environment variable).</param>
/// <param name="password">The password (not an environment variable).</param>
/// <param name="configurationHook">The configuration hook.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder CreateRedisConsumerBuilder(
this RedisConsumerChannelSetting setting,
string endpoint,
string? password = null,
Action<ConfigurationOptions>? configurationHook = null)
{
var configuration = RedisClientFactory.CreateConfigurationOptions(endpoint, password, configurationHook);
return configuration.CreateRedisConsumerBuilder(setting);
}


/// <summary>
/// Create REDIS consumer builder.
/// </summary>
/// <param name="credentialsKeys">The credentials keys.</param>
/// <param name="setting">The setting.</param>
/// <param name="configurationHook">The configuration hook.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder CreateRedisConsumerBuilder(
this RedisCredentialsEnvKeys credentialsKeys,
RedisConsumerChannelSetting? setting = null,
Action<ConfigurationOptions>? configurationHook = null)
{
var configuration = credentialsKeys.CreateConfigurationOptions(configurationHook);
return configuration.CreateRedisConsumerBuilder(setting);
}

/// <summary>
/// Uses REDIS consumer channel.
/// </summary>
/// <param name="builder">The builder.</param>
/// <param name="setting">The setting.</param>
/// <param name="redisConfiguration">The redis configuration.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder UseRedisChannel(
this IConsumerBuilder builder,
RedisConsumerChannelSetting? setting = null,
ConfigurationOptions? redisConfiguration = null)
{
var stg = setting ?? RedisConsumerChannelSetting.Default;
var channelBuilder = builder.UseChannel(LocalCreate);
return channelBuilder;

IConsumerChannelProvider LocalCreate(ILogger logger)
{
var channel = new RedisConsumerChannel(
logger,
redisConfiguration,
stg);
return channel;
}
}

/// <summary>
/// Uses REDIS consumer channel.
/// </summary>
/// <param name="builder">The builder.</param>
/// <param name="credentialsKeys">Environment keys of the credentials</param>
/// <param name="setting">The setting.</param>
/// <returns></returns>
public static IConsumerStoreStrategyBuilder UseRedisChannel(
this IConsumerBuilder builder,
RedisCredentialsEnvKeys credentialsKeys,
RedisConsumerChannelSetting? setting = null)
{
var channelBuilder = builder.UseChannel(LocalCreate);
return channelBuilder;

IConsumerChannelProvider LocalCreate(ILogger logger)
{
var channel = new RedisConsumerChannel(
logger,
credentialsKeys,
setting);
return channel;
}
}

/// <summary>
/// Uses REDIS consumer channel.
/// </summary>
/// <param name="builder">The builder.</param>
/// <param name="redisClientFactory">The redis client factory.</param>
/// <param name="setting">The setting.</param>
/// <returns></returns>
internal static IConsumerStoreStrategyBuilder UseRedisChannel(
this IConsumerBuilder builder,
IEventSourceRedisConnectionFactory redisClientFactory,
RedisConsumerChannelSetting? setting = null)
{
var channelBuilder = builder.UseChannel(LocalCreate);
return channelBuilder;

IConsumerChannelProvider LocalCreate(ILogger logger)
{
var channel = new RedisConsumerChannel(
redisClientFactory,
logger,
setting);
return channel;
}
}

/// <summary>
/// Uses REDIS consumer channel.
/// </summary>
/// <param name="builder">The builder.</param>
/// <param name="serviceProvider">The service provider.</param>
/// <param name="setting">The setting.</param>
/// <returns></returns>
/// <exception cref="System.ArgumentNullException">redisClient</exception>
public static IConsumerIocStoreStrategyBuilder ResolveRedisConsumerChannel(
this IConsumerBuilder builder,
IServiceProvider serviceProvider,
RedisConsumerChannelSetting? setting = null)
{
var channelBuilder = builder.UseChannel(serviceProvider, LocalCreate);
return channelBuilder;

IConsumerChannelProvider LocalCreate(ILogger logger)
{
var connFactory = serviceProvider.GetService<IEventSourceRedisConnectionFactory>();
if (connFactory == null)
throw new RedisConnectionException(ConnectionFailureType.None, $"{nameof(IEventSourceRedisConnectionFactory)} is not registered, use services.{nameof(RedisDiExtensions.AddEventSourceRedisConnection)} in order to register it at Setup stage.");
var channel = new RedisConsumerChannel(
connFactory,
logger,
setting);
return channel;
}
}

/// <summary>
/// Uses REDIS consumer channel.
/// </summary>
/// <param name="serviceProvider">The service provider.</param>
/// <param name="setting">The setting.</param>
/// <returns></returns>
/// <exception cref="System.ArgumentNullException">redisClient</exception>
public static IConsumerIocStoreStrategyBuilder ResolveRedisConsumerChannel(
this IServiceProvider serviceProvider,
RedisConsumerChannelSetting? setting = null)
{
var result = ConsumerBuilder.Empty.ResolveRedisConsumerChannel(serviceProvider, setting);
return result;
}
}
Loading